IOT平台的后端管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1 lines
1.3 MiB

{"version":3,"sources":["webpack://chartmix/webpack/universalModuleDefinition","webpack://chartmix/webpack/bootstrap","webpack://chartmix/./node_modules/lodash/_getRawTag.js","webpack://chartmix/./node_modules/lodash/_baseKeys.js","webpack://chartmix/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://chartmix/./node_modules/lodash/cloneDeep.js","webpack://chartmix/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://chartmix/./node_modules/lodash/stubFalse.js","webpack://chartmix/./node_modules/core-js/internals/length-of-array-like.js","webpack://chartmix/./node_modules/lodash/_arrayPush.js","webpack://chartmix/./node_modules/lodash/_getNative.js","webpack://chartmix/./node_modules/core-js/internals/ie8-dom-define.js","webpack://chartmix/./node_modules/lodash/isBuffer.js","webpack://chartmix/./node_modules/core-js/internals/try-to-string.js","webpack://chartmix/./node_modules/lodash/_baseAssignIn.js","webpack://chartmix/./node_modules/lodash/_baseRest.js","webpack://chartmix/./node_modules/lodash/_copySymbolsIn.js","webpack://chartmix/./node_modules/jquery/dist/jquery.js","webpack://chartmix/./node_modules/lodash/_isKeyable.js","webpack://chartmix/./node_modules/lodash/isObjectLike.js","webpack://chartmix/./node_modules/lodash/_isMasked.js","webpack://chartmix/./node_modules/core-js/internals/make-built-in.js","webpack://chartmix/./node_modules/core-js/modules/es.array.push.js","webpack://chartmix/./node_modules/core-js/internals/is-callable.js","webpack://chartmix/external \"echarts\"","webpack://chartmix/./node_modules/core-js/internals/has-own-property.js","webpack://chartmix/./node_modules/lodash/_baseIsMap.js","webpack://chartmix/./node_modules/lodash/isObject.js","webpack://chartmix/./node_modules/lodash/_getAllKeysIn.js","webpack://chartmix/./node_modules/lodash/_equalByTag.js","webpack://chartmix/./node_modules/lodash/_Promise.js","webpack://chartmix/./node_modules/core-js/internals/require-object-coercible.js","webpack://chartmix/./node_modules/lodash/_hashDelete.js","webpack://chartmix/./node_modules/lodash/_mapCacheSet.js","webpack://chartmix/./node_modules/lodash/_overRest.js","webpack://chartmix/./node_modules/core-js/internals/to-absolute-index.js","webpack://chartmix/./node_modules/core-js/internals/export.js","webpack://chartmix/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://chartmix/./node_modules/lodash/_Uint8Array.js","webpack://chartmix/./node_modules/lodash/_mapCacheGet.js","webpack://chartmix/./node_modules/lodash/_hashSet.js","webpack://chartmix/./node_modules/lodash/_baseIsArguments.js","webpack://chartmix/./node_modules/lodash/_listCacheClear.js","webpack://chartmix/./node_modules/lodash/_objectToString.js","webpack://chartmix/./node_modules/lodash/_root.js","webpack://chartmix/./node_modules/core-js/internals/engine-v8-version.js","webpack://chartmix/./node_modules/lodash/_arrayFilter.js","webpack://chartmix/./node_modules/lodash/_getPrototype.js","webpack://chartmix/./node_modules/lodash/_createAssigner.js","webpack://chartmix/./node_modules/lodash/_stackDelete.js","webpack://chartmix/./node_modules/lodash/isArrayLike.js","webpack://chartmix/./node_modules/lodash/_assignValue.js","webpack://chartmix/./node_modules/lodash/_getSymbols.js","webpack://chartmix/./node_modules/core-js/internals/engine-user-agent.js","webpack://chartmix/./node_modules/lodash/_baseIsNative.js","webpack://chartmix/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://chartmix/./node_modules/lodash/_getValue.js","webpack://chartmix/./node_modules/lodash/_baseGetTag.js","webpack://chartmix/./node_modules/lodash/_baseClone.js","webpack://chartmix/./node_modules/lodash/_WeakMap.js","webpack://chartmix/./node_modules/core-js/internals/array-set-length.js","webpack://chartmix/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://chartmix/./node_modules/lodash/_defineProperty.js","webpack://chartmix/./node_modules/core-js/internals/function-bind-native.js","webpack://chartmix/./node_modules/lodash/_baseKeysIn.js","webpack://chartmix/./node_modules/lodash/_getMapData.js","webpack://chartmix/./node_modules/lodash/merge.js","webpack://chartmix/./node_modules/lodash/_arraySome.js","webpack://chartmix/./node_modules/lodash/_getTag.js","webpack://chartmix/./node_modules/lodash/_copyArray.js","webpack://chartmix/./node_modules/core-js/internals/indexed-object.js","webpack://chartmix/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://chartmix/./node_modules/lodash/_hashClear.js","webpack://chartmix/./node_modules/core-js/internals/array-includes.js","webpack://chartmix/./node_modules/color-name/index.js","webpack://chartmix/./node_modules/lodash/_baseMergeDeep.js","webpack://chartmix/./node_modules/core-js/internals/to-length.js","webpack://chartmix/./node_modules/lodash/_baseTimes.js","webpack://chartmix/./node_modules/lodash/_copySymbols.js","webpack://chartmix/./node_modules/lodash/_stackHas.js","webpack://chartmix/./node_modules/core-js/internals/shared.js","webpack://chartmix/./node_modules/core-js/internals/own-keys.js","webpack://chartmix/./node_modules/lodash/_nativeKeys.js","webpack://chartmix/./node_modules/lodash/_freeGlobal.js","webpack://chartmix/external \"Vuex\"","webpack://chartmix/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://chartmix/./node_modules/core-js/internals/a-callable.js","webpack://chartmix/./node_modules/lodash/_baseAssign.js","webpack://chartmix/./node_modules/core-js/internals/create-property-descriptor.js","webpack://chartmix/./node_modules/lodash/_cloneDataView.js","webpack://chartmix/./node_modules/lodash/_ListCache.js","webpack://chartmix/./node_modules/core-js/internals/function-name.js","webpack://chartmix/./node_modules/lodash/_nativeCreate.js","webpack://chartmix/./node_modules/lodash/isPlainObject.js","webpack://chartmix/(webpack)/buildin/module.js","webpack://chartmix/./node_modules/core-js/internals/define-global-property.js","webpack://chartmix/./node_modules/lodash/isEqual.js","webpack://chartmix/./node_modules/lodash/isArray.js","webpack://chartmix/./node_modules/lodash/_listCacheSet.js","webpack://chartmix/./node_modules/lodash/_listCacheDelete.js","webpack://chartmix/./node_modules/core-js/internals/internal-state.js","webpack://chartmix/./node_modules/lodash/_cloneRegExp.js","webpack://chartmix/./node_modules/lodash/_arrayLikeKeys.js","webpack://chartmix/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://chartmix/./node_modules/lodash/_baseFor.js","webpack://chartmix/./node_modules/lodash/constant.js","webpack://chartmix/./node_modules/lodash/isTypedArray.js","webpack://chartmix/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://chartmix/./node_modules/lodash/_baseIsTypedArray.js","webpack://chartmix/./node_modules/lodash/_baseCreate.js","webpack://chartmix/./src/packages/ChartMix/ChartSetting.vue?57c2","webpack://chartmix/./node_modules/core-js/internals/enum-bug-keys.js","webpack://chartmix/./node_modules/lodash/_Map.js","webpack://chartmix/./node_modules/lodash/_hashHas.js","webpack://chartmix/./node_modules/core-js/internals/to-object.js","webpack://chartmix/./node_modules/lodash/_MapCache.js","webpack://chartmix/./node_modules/lodash/_baseIsEqualDeep.js","webpack://chartmix/./node_modules/lodash/_mapCacheClear.js","webpack://chartmix/./node_modules/lodash/_baseGetAllKeys.js","webpack://chartmix/./node_modules/lodash/_Stack.js","webpack://chartmix/./node_modules/lodash/_setCacheAdd.js","webpack://chartmix/./node_modules/lodash/_stackGet.js","webpack://chartmix/./node_modules/lodash/_arrayEach.js","webpack://chartmix/./node_modules/core-js/internals/an-object.js","webpack://chartmix/./node_modules/core-js/internals/descriptors.js","webpack://chartmix/./node_modules/lodash/_apply.js","webpack://chartmix/./node_modules/core-js/internals/is-object.js","webpack://chartmix/./node_modules/lodash/_baseAssignValue.js","webpack://chartmix/./node_modules/core-js/internals/inspect-source.js","webpack://chartmix/./node_modules/lodash/_safeGet.js","webpack://chartmix/external \"Vue\"","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSlider.vue?58db","webpack://chartmix/./node_modules/lodash/toPlainObject.js","webpack://chartmix/./node_modules/core-js/internals/document-all.js","webpack://chartmix/./node_modules/lodash/_copyObject.js","webpack://chartmix/./node_modules/core-js/internals/uid.js","webpack://chartmix/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://chartmix/./node_modules/lodash/_overArg.js","webpack://chartmix/./node_modules/lodash/_mapCacheDelete.js","webpack://chartmix/./node_modules/core-js/internals/is-forced.js","webpack://chartmix/./node_modules/lodash/isFunction.js","webpack://chartmix/./node_modules/lodash/eq.js","webpack://chartmix/./node_modules/lodash/keysIn.js","webpack://chartmix/./node_modules/lodash/_createBaseFor.js","webpack://chartmix/./node_modules/lodash/_nodeUtil.js","webpack://chartmix/./node_modules/lodash/_isIterateeCall.js","webpack://chartmix/./node_modules/core-js/internals/object-define-property.js","webpack://chartmix/./node_modules/lodash/_Symbol.js","webpack://chartmix/./node_modules/lodash/_getSymbolsIn.js","webpack://chartmix/./node_modules/core-js/internals/to-property-key.js","webpack://chartmix/./node_modules/lodash/_equalArrays.js","webpack://chartmix/./node_modules/lodash/_cloneSymbol.js","webpack://chartmix/./node_modules/lodash/_baseSetToString.js","webpack://chartmix/./node_modules/lodash/_mapCacheHas.js","webpack://chartmix/./node_modules/lodash/_getAllKeys.js","webpack://chartmix/./node_modules/lodash/_setToArray.js","webpack://chartmix/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://chartmix/./node_modules/lodash/_baseUnary.js","webpack://chartmix/./node_modules/lodash/_equalObjects.js","webpack://chartmix/./node_modules/lodash/isLength.js","webpack://chartmix/./node_modules/core-js/internals/math-trunc.js","webpack://chartmix/./node_modules/lodash/_listCacheGet.js","webpack://chartmix/./node_modules/lodash/_DataView.js","webpack://chartmix/./node_modules/core-js/internals/well-known-symbol.js","webpack://chartmix/./node_modules/lodash/_assignMergeValue.js","webpack://chartmix/./node_modules/lodash/_hashGet.js","webpack://chartmix/./node_modules/core-js/internals/to-primitive.js","webpack://chartmix/./node_modules/lodash/_baseIsEqual.js","webpack://chartmix/./node_modules/lodash/_isIndex.js","webpack://chartmix/./node_modules/lodash/_setToString.js","webpack://chartmix/./node_modules/lodash/_initCloneByTag.js","webpack://chartmix/./node_modules/lodash/_baseIsSet.js","webpack://chartmix/./node_modules/core-js/internals/is-pure.js","webpack://chartmix/./node_modules/lodash/_cacheHas.js","webpack://chartmix/./node_modules/core-js/internals/function-call.js","webpack://chartmix/./node_modules/core-js/internals/classof-raw.js","webpack://chartmix/./node_modules/core-js/internals/shared-store.js","webpack://chartmix/./node_modules/lodash/_Set.js","webpack://chartmix/./node_modules/lodash/_initCloneArray.js","webpack://chartmix/(webpack)/buildin/global.js","webpack://chartmix/./node_modules/lodash/_cloneTypedArray.js","webpack://chartmix/./node_modules/core-js/internals/object-keys-internal.js","webpack://chartmix/./node_modules/core-js/internals/define-built-in.js","webpack://chartmix/./node_modules/lodash/_assocIndexOf.js","webpack://chartmix/./node_modules/core-js/internals/document-create-element.js","webpack://chartmix/./node_modules/lodash/isMap.js","webpack://chartmix/./node_modules/lodash/identity.js","webpack://chartmix/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://chartmix/./node_modules/core-js/internals/hidden-keys.js","webpack://chartmix/./node_modules/lodash/_stackSet.js","webpack://chartmix/./node_modules/core-js/internals/fails.js","webpack://chartmix/./node_modules/core-js/internals/get-built-in.js","webpack://chartmix/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://chartmix/./node_modules/lodash/stubArray.js","webpack://chartmix/./node_modules/lodash/isArguments.js","webpack://chartmix/./node_modules/lodash/_SetCache.js","webpack://chartmix/./node_modules/lodash/isSet.js","webpack://chartmix/./src/packages/ChartMix/ChartList.vue?81b1","webpack://chartmix/./node_modules/core-js/internals/is-symbol.js","webpack://chartmix/./node_modules/lodash/_coreJsData.js","webpack://chartmix/./node_modules/core-js/internals/global.js","webpack://chartmix/./node_modules/lodash/_setCacheHas.js","webpack://chartmix/./node_modules/core-js/internals/get-method.js","webpack://chartmix/./node_modules/lodash/_toSource.js","webpack://chartmix/./node_modules/lodash/isArrayLikeObject.js","webpack://chartmix/./node_modules/lodash/_Hash.js","webpack://chartmix/./node_modules/core-js/internals/function-uncurry-this.js","webpack://chartmix/./node_modules/lodash/_cloneBuffer.js","webpack://chartmix/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://chartmix/./node_modules/core-js/internals/is-array.js","webpack://chartmix/./node_modules/lodash/_isPrototype.js","webpack://chartmix/./node_modules/lodash/keys.js","webpack://chartmix/./node_modules/lodash/_nativeKeysIn.js","webpack://chartmix/./node_modules/lodash/_mapToArray.js","webpack://chartmix/./node_modules/lodash/_stackClear.js","webpack://chartmix/./node_modules/lodash/_shortOut.js","webpack://chartmix/./node_modules/core-js/internals/shared-key.js","webpack://chartmix/./node_modules/lodash/_cloneArrayBuffer.js","webpack://chartmix/./node_modules/lodash/_baseMerge.js","webpack://chartmix/./node_modules/lodash/_initCloneObject.js","webpack://chartmix/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://chartmix/./src/packages/ChartMix/ChartSetting.vue","webpack://chartmix/./src/packages/ChartMix/ChartList.vue","webpack://chartmix/./src/data/chartJson.js","webpack://chartmix/./src/utils/util.js","webpack://chartmix/./src/utils/echartsEngine/transformTitle.js","webpack://chartmix/./src/utils/echartsEngine/transformLegend.js","webpack://chartmix/./src/utils/echartsEngine/transformTooltip.js","webpack://chartmix/./src/utils/echartsEngine/transformAxis.js","webpack://chartmix/./src/utils/echartsEngine/index.js","webpack://chartmix/./src/store/modules/rect/mutation-types.js","webpack://chartmix/./src/store/modules/rect/actions.js","webpack://chartmix/./src/store/modules/rect/getters.js","webpack://chartmix/./src/store/modules/rect/mutations.js","webpack://chartmix/./src/store/modules/rect/state.js","webpack://chartmix/./src/store/modules/rect/index.js","webpack://chartmix/./src/store/modules/chartRender.js","webpack://chartmix/./src/store/modules/chartSetting/mutation-types.js","webpack://chartmix/./src/store/modules/chartSetting/actions.js","webpack://chartmix/./src/store/modules/chartSetting/getters.js","webpack://chartmix/./src/store/modules/chartSetting/mutations.js","webpack://chartmix/./src/store/modules/chartSetting/state.js","webpack://chartmix/./src/store/modules/chartSetting/index.js","webpack://chartmix/./src/store/index.js","webpack://chartmix/./src/utils/chartUtil.js","webpack://chartmix/./src/data/cn.js","webpack://chartmix/./src/data/en.js","webpack://chartmix/src/packages/ChartMix/ChartList.vue","webpack://chartmix/./src/packages/ChartMix/ChartList.vue?f7af","webpack://chartmix/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://chartmix/./src/packages/ChartMix/ChartList.vue?02e0","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartTitle.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseLabel.vue","webpack://chartmix/src/packages/ChartMix/chartChips/base/ChartBaseLabel.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseLabel.vue?3060","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseLabel.vue?fba9","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSwitch.vue","webpack://chartmix/src/packages/ChartMix/chartChips/base/ChartBaseSwitch.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSwitch.vue?b3a8","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSwitch.vue?b019","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseInput.vue","webpack://chartmix/src/packages/ChartMix/chartChips/base/ChartBaseInput.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseInput.vue?20e7","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseInput.vue?fcd8","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSelect.vue","webpack://chartmix/src/packages/ChartMix/chartChips/base/ChartBaseSelect.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSelect.vue?da35","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSelect.vue?9aaa","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSlider.vue","webpack://chartmix/src/packages/ChartMix/chartChips/base/ChartBaseSlider.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSlider.vue?dbc7","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseSlider.vue?81cc","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseBox.vue","webpack://chartmix/src/packages/ChartMix/chartChips/base/ChartBaseBox.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseBox.vue?5317","webpack://chartmix/./src/packages/ChartMix/chartChips/base/ChartBaseBox.vue?463c","webpack://chartmix/./src/utils/importUtil.js","webpack://chartmix/src/packages/ChartMix/chartChips/chart/ChartTitle.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartTitle.vue?3ba4","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartTitle.vue?2529","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartSubTitle.vue","webpack://chartmix/src/packages/ChartMix/chartChips/chart/ChartSubTitle.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartSubTitle.vue?bf82","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartSubTitle.vue?ee05","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartCursor.vue","webpack://chartmix/src/packages/ChartMix/chartChips/chart/ChartCursor.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartCursor.vue?9f7b","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartCursor.vue?d7e3","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartLegend.vue","webpack://chartmix/src/packages/ChartMix/chartChips/chart/ChartLegend.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartLegend.vue?3100","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartLegend.vue?3e70","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartAxis.vue","webpack://chartmix/src/packages/ChartMix/chartChips/chart/ChartAxis.vue","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartAxis.vue?5c0a","webpack://chartmix/./src/packages/ChartMix/chartChips/chart/ChartAxis.vue?fa6c","webpack://chartmix/src/packages/ChartMix/ChartSetting.vue","webpack://chartmix/./src/packages/ChartMix/ChartSetting.vue?63ac","webpack://chartmix/./src/packages/ChartMix/ChartSetting.vue?4969","webpack://chartmix/./src/packages/ChartMix/ChartRender.vue","webpack://chartmix/src/packages/ChartMix/ChartRender.vue","webpack://chartmix/./src/packages/ChartMix/ChartRender.vue?d341","webpack://chartmix/./src/packages/ChartMix/ChartRender.vue?1397","webpack://chartmix/./src/utils/exportUtil.js","webpack://chartmix/./src/packages/index.js","webpack://chartmix/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://chartmix/./node_modules/lodash/_listCacheHas.js","webpack://chartmix/./node_modules/core-js/internals/to-indexed-object.js","webpack://chartmix/./node_modules/core-js/internals/use-symbol-as-uid.js"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__164e__","__WEBPACK_EXTERNAL_MODULE__5880__","__WEBPACK_EXTERNAL_MODULE__8bbf__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","objectProto","nativeObjectToString","toString","symToStringTag","undefined","getRawTag","isOwn","tag","unmasked","e","result","isPrototype","nativeKeys","baseKeys","push","V8_VERSION","fails","global","$String","String","getOwnPropertySymbols","symbol","sham","baseClone","CLONE_DEEP_FLAG","CLONE_SYMBOLS_FLAG","cloneDeep","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","f","O","P","error","stubFalse","toLength","obj","length","arrayPush","array","values","index","offset","baseIsNative","getValue","getNative","createElement","a","freeExports","nodeType","freeModule","moduleExports","Buffer","nativeIsBuffer","isBuffer","argument","copyObject","keysIn","baseAssignIn","source","identity","overRest","setToString","baseRest","func","start","getSymbolsIn","copySymbolsIn","document","w","Error","window","noGlobal","arr","getProto","getPrototypeOf","slice","flat","concat","apply","indexOf","class2type","fnToString","ObjectFunctionString","support","isFunction","item","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","val","script","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","rhtmlSuffix","jQuery","selector","context","fn","init","isArrayLike","nodeName","elem","toLowerCase","jquery","constructor","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","expando","Math","random","replace","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","textContent","nodeValue","makeArray","results","inArray","isXMLDoc","namespace","namespaceURI","docElem","ownerDocument","documentElement","test","second","invert","callbackInverse","matches","callbackExpect","arg","guid","iterator","split","_i","pop","whitespace","rtrimCSS","RegExp","contains","b","bup","compareDocumentPosition","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","identifier","attributes","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","dir","next","safeActiveElement","activeElement","err","childNodes","els","find","seed","nid","match","groups","newSelector","newContext","exec","getElementById","id","getElementsByTagName","getElementsByClassName","testContext","scope","tokenize","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","el","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","defaultView","top","addEventListener","getById","getElementsByName","disconnectedMatch","cssHas","querySelector","filter","attrId","getAttributeNode","className","input","innerHTML","compare","sortDetached","expr","elements","matchesSelector","attr","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","outerCache","nodeIndex","parent","useCache","diff","firstChild","lastChild","pseudo","args","setFilters","idx","matched","not","matcher","compile","unmatched","has","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","nextSibling","header","button","_matchIndexes","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","filters","unique","getText","isXML","selectors","until","truncate","is","siblings","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","cur","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","_","flag","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","firing","memory","fired","locked","list","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","rejectWith","getErrorHook","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","asyncError","console","warn","message","stack","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","attrs","dequeue","startLength","hooks","_queueHooks","unshift","stop","setter","clearQueue","tmp","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","hide","toggle","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","div","checkClone","cloneNode","noCloneChecked","defaultValue","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","rhtml","buildFragment","scripts","selection","ignored","wrap","attached","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","on","types","one","origFn","event","off","leverageNative","isSetup","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","isImmediatePropagationStopped","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","focusMappedHandler","documentMode","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","marginDelta","ceil","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","isKeyable","isObjectLike","coreJsData","maskSrcKey","IE_PROTO","isMasked","uncurryThis","isCallable","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","stringSlice","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","arity","Function","toObject","lengthOfArrayLike","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","FORCED","forced","argCount","$documentAll","documentAll","all","IS_HTMLDDA","it","getTag","mapTag","baseIsMap","isObject","baseGetAllKeys","getAllKeysIn","Uint8Array","equalArrays","mapToArray","setToArray","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","boolTag","dateTag","errorTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","symbolValueOf","valueOf","equalByTag","other","bitmask","customizer","equalFunc","byteLength","byteOffset","buffer","convert","isPartial","size","stacked","Promise","isNullOrUndefined","$TypeError","hashDelete","__data__","getMapData","mapCacheSet","nativeMax","transform","otherArgs","toIntegerOrInfinity","min","integer","createNonEnumerableProperty","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","internalObjectKeys","enumBugKeys","hiddenKeys","getOwnPropertyNames","mapCacheGet","nativeCreate","HASH_UNDEFINED","hashSet","baseGetTag","argsTag","baseIsArguments","listCacheClear","objectToString","freeGlobal","freeSelf","userAgent","Deno","versions","v8","arrayFilter","predicate","resIndex","overArg","getPrototype","isIterateeCall","createAssigner","assigner","sources","guard","stackDelete","isLength","baseAssignValue","assignValue","objValue","stubArray","propertyIsEnumerable","nativeGetSymbols","getSymbols","navigator","toSource","reRegExpChar","reIsHostCtor","funcProto","funcToString","reIsNative","MAX_SAFE_INTEGER","nullTag","undefinedTag","Stack","arrayEach","baseAssign","cloneBuffer","copyArray","copySymbols","getAllKeys","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","CLONE_FLAT_FLAG","arrayTag","funcTag","genTag","objectTag","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","cloneableTags","isDeep","isFlat","isFull","isArr","isFunc","forEach","subValue","keysFunc","WeakMap","SILENT_ON_NON_WRITABLE_LENGTH_SET","isPrototypeOf","nativeKeysIn","baseKeysIn","isProto","baseMerge","srcIndex","arraySome","DataView","Map","Set","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","classof","$Object","pref","hashClear","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","assignMergeValue","cloneTypedArray","isArguments","isArrayLikeObject","isTypedArray","safeGet","toPlainObject","baseMergeDeep","mergeFunc","srcValue","newValue","isCommon","isBuff","isTyped","baseTimes","iteratee","stackHas","IS_PURE","store","copyright","license","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","trunc","number","tryToString","bitmap","cloneArrayBuffer","cloneDataView","dataView","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","clear","entry","FunctionPrototype","getDescriptor","EXISTS","PROPER","objectCtorString","webpackPolyfill","deprecate","paths","baseIsEqual","isEqual","assocIndexOf","arrayProto","lastIndex","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","getterFor","TYPE","metadata","facade","STATE","reFlags","cloneRegExp","regexp","isIndex","arrayLikeKeys","inherited","isArg","isType","skipIndexes","createBaseFor","baseFor","constant","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","objectCreate","baseCreate","hashHas","requireObjectCoercible","mapCacheClear","mapCacheDelete","mapCacheHas","MapCache","equalObjects","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","Hash","symbolsFunc","stackClear","stackGet","stackSet","setCacheAdd","thisArg","functionToString","isNew","postfix","definePropertyModule","replacement","feature","detection","normalize","POLYFILL","NATIVE","asyncTag","proxyTag","fromRight","iterable","freeProcess","binding","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","WRITABLE","Attributes","toPrimitive","isSymbol","SetCache","cacheHas","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","cloneSymbol","baseSetToString","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","floor","x","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","hashGet","getMethod","ordinaryToPrimitive","wellKnownSymbol","TO_PRIMITIVE","exoticToPrim","reIsUint","shortOut","baseIsSet","NATIVE_BIND","SHARED","g","typedArray","names","unsafe","nonConfigurable","nonWritable","nodeIsMap","LARGE_ARRAY_SIZE","pairs","aFunction","$propertyIsEnumerable","NASHORN_BUG","1","V","setCacheHas","nodeIsSet","$Symbol","globalThis","aCallable","uncurryThisWithBind","allocUnsafe","ownKeys","getOwnPropertyDescriptorModule","exceptions","HOT_COUNT","HOT_SPAN","nativeNow","lastCalled","stamp","arrayBuffer","currentScript","render","_vm","_c","_self","staticClass","staticStyle","currentChartType","showList","$event","handleClick","model","activeName","$$v","expression","slot","_v","_s","setItem","chartType","class","chartTypeTxt","chartXYSeriesList","_l","title","field","_e","change","handleSeriseCommand","ditem","series","checkBoxChange","currentRangeConfigCheck","transpose","checkRowDisabled","currentRangeRowCheck","exits","$set","row1","getColRowCheckTxt","row2","checkColDisabled","currentRangeColCheck","column1","column2","titleOption","subTitleOption","cursorOption","legendOption","axisOption","staticRenderFns","zindex","bottom","background","$emit","close","currentPro","config","currentConfig","quickMenu","icon","quickListScroll","chartItem","changeChartType","img","baseComponent","label","fontSize","color","fontFamily","fontGroup","cusFontSize","formatter","ratio","digit","borderColor","borderType","borderWidth","lineStyle","chartComponent","deepCopy","subtitle","distance","cusGap","grid","legend","selectMode","seriesName","isShow","direction","cusSize","itemGap","tooltip","backgroundColor","triggerOn","triggerType","axisPointer","format","axis","axisType","xAxisUp","showTitle","nameGap","rotate","fzPosition","inverse","tickLine","tickLabel","optimize","netLine","cusNumber","netArea","colorOne","colorTwo","axisLine","onZero","xAxisDown","yAxisLeft","yAxisRight","positionOption","distanceOption","fontSizeOption","lineStyleOption","lineWeightOption","posOption","ratioOption","digitOption","sizeOption","intervalOption","fontSizeList","fontStyleIBV","bold","des","italic","vertical","fontStyleIB","chartModelData","chartOptions","chartAllType","defaultOption","chartData","cloneObj","copyVal","HTMLElement","generateRandomKey","mid","getTime","isdatetime","checkDateTime","str","reg1","reg2","year","$1","month","$2","day","$3","getDate","isRealNum","hasChinaword","patrn","isdatatype","dataTranspose","getdata","dataChangeOrder","dataChangeOrderTwo","getObjType","getRowColCheck","r_cal","c_cal","cell","fa","rowcheck","range","colcheck","getRangeSplitArray","rangeArray","rangeColCheck","rangeRowCheck","rangeSplitArray","row","column","rowtitle","coltitle","getChartCellData","getChartDataCache","product","rangeConfigCheck","rangeSA","rtitle","rtitleData","substr","xAxis","ctitle","ctitleData","contentData","series_tpye","getChartDataSeriesOrder","addDataToOption","defaultOptionIni","chartDataCache","chartDataSeriesOrder","chartPro","chartStyle","seriesData","legendData","transformPie","transformCommon","initCommon","editCommon","itemStyle","markPoint","markLine","markArea","actions","initLine","initArea","initBar","initColumn","smooth","areaStyle","normal","editLine","editArea","editBar","editColumn","textStyle","initPie","editPie","seriesObj","radius","dataLabels","seLabel","seLine","labelLine","roseType","selectedOffset","avoidLabelOverlap","emphasis","y","k","transformTitle","chartAllTypeArray","resultTitle","fontStyle","subtextStyle","subtext","transTextStyle","transformLegend","resLegend","orient","itemWidth","itemHeight","transformTooltip","resTooltip","transformAxis","nameTextStyle","nameLocation","nameRotate","axisTick","inside","axisLabel","splitLine","splitArea","transAxis","res","ori","origin","transLineStyle","floatTool","multiply","toFixed","transCustom","echartsEngine","tooltipOption","yAxis","ENABLE_ACTIVE","DISABLE_ACTIVE","ENABLE_DRAGGABLE","DISABLE_DRAGGABLE","ENABLE_RESIZABLE","DISABLE_RESIZABLE","ENABLE_PARENT_LIMITATION","DISABLE_PARENT_LIMITATION","ENABLE_SNAP_TO_GRID","DISABLE_SNAP_TO_GRID","ENABLE_ASPECT","DISABLE_ASPECT","ENABLE_X_AXIS","ENABLE_Y_AXIS","ENABLE_BOTH_AXIS","ENABLE_NONE_AXIS","CHANGE_ZINDEX","CHANGE_MINW","CHANGE_MINH","CHANGE_WIDTH","CHANGE_HEIGHT","CHANGE_TOP","CHANGE_LEFT","setActive","commit","rects","unsetActive","toggleDraggable","draggable","toggleResizable","resizable","toggleParentLimitation","parentLim","toggleSnapToGrid","snapToGrid","setAspect","unsetAspect","setWidth","setHeight","setTop","setLeft","changeXLock","changeYLock","changeZToBottom","changeZToTop","setMinWidth","minw","setMinHeight","minh","getActive","payload","namespaced","getters","mutations","chartRender","UPDATE_CHART_ITEM","UPDATE_CHART_ITEM_CHARTLIST","UPDATE_CHART_ITEM_ONE","UPDATE_CHART_ITEM_CHARTLIST_ONE","chartLists","updateChartItem","updateObj","updateChartItemChartlist","updateChartItemOne","updateChartItemChartlistOne","chartList","currentChartIndex","router","currentChartOptions","setChartOptionsByRouter","findIndex","chart_id","Vue","use","Vuex","Store","debug","chartSetting","strict","echarts","routerArray","deepFind","curObj","assign","renderChart","renderChartObj","ele","chart","getInstanceByDom","setOption","getInstanceById","resize","attr1","fontGroupList","element","isInteger","toInteger","floatNum","times","strfi","dotPos","pow","intNum","operation","op","o1","o2","n1","n2","t1","t2","r1","r2","divide","changeChangeAllType","chart_json","chartID","updateJson","checkCurrentBoxChange","changeSeriesOrder","changeChartRange","rangeTxt","rowColCheck","changeChartCellData","line","default","area","bar","pie","ring","modalName","placeholder","offsetL","offsetT","gap","align","intenval","content1","content2","showLine","content3","lineWidth","lineColor","showTick","content4","tickLength","content5","tickWidth","tickColor","showLabel","content6","content7","content8","content9","content10","showNet","content11","netWidth","netType","netColor","netInterval","content12","showArea","areaInterval","area1","area2","contentH","contentV","contentWidth","contentHeight","contentGap","lineType","Boolean","Number","list_scroll_direction","echartsCN","echartsEN","mounted","chooseConfig","mapState","watch","methods","chartreuse","_this","$t","$obj","$scroll","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","component","positionData","_t","baseLabelOptionData","fontStyleObj","changeStyle","baseLabelOption","components","newVal","immediate","oldVal","changeSwitch","switchData","switchValue","hideCol","changeInput","inputValue","changeSelect","selectOption","selectValue","handlerChange","baseSliderData","baseSliderOption","boxValue","checkboxOption","boxData","importComp","ChartBaseLabel","ChartBaseInput","ChartBaseSwitch","ChartBaseSlider","ChartBaseSelect","transEN","transCN","isChange","changeTitle","subTitle","cursor","triggerMethodArr","triggerTypeArr","axisPointerArr","seriesOption","changeCursor","directives","rawName","dirOptions","changeLegend","axisGroup","fzPosOption","formatRotation","changeAxis","ChartList","ChartTitle","ChartSubTitle","ChartCursor","ChartLegend","ChartAxis","chartOption","oldV","chart_pro","chart_type","chart_style","main","currentChartDataCache","valueType","date","trueIndex","currentChartDataSeriesOrder","mapActions","tab","isRow","txt","command","newOrder","newid","newTrueIndex","exchangeid","exchangeTrueIndex","renderCharts","$nextTick","$el","ChartSetting","initChart","outDom","dom","template","createChart","chart_Id","insertNewChart","renderDom","chartJson","chartTheme","highlightChart","resizeChart","deleteChart","getChartJson","insertToStore","ChartRender","install","componentInstalled","storeRegistered","registerModule","IndexedObject"],"mappings":"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,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,IAGd,CACI,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,IAGd,CACI,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,KAIlB,WAAc,CACV,CACI,IAAO,CACH,GACA,IAEJ,OAAU,CACN,EACA,IAEJ,UAAa,GACb,aAAgB,EAChB,KAAQ,KACR,MAAS,IACT,IAAO,IACP,OAAU,GACV,UAAa,KACb,WAAc,IACd,SAAY,IACZ,YAAe,KAGvB,SAAY,UACZ,cAAiB,CACb,OAAS,EACT,MAAS,CACL,EACA,IAGR,cAAiB,CACb,OAAS,EACT,MAAS,CACL,EACA,IAGR,kBAAoB,EACpB,gBAAmB,CACf,MAAS,CACL,IAAO,CACH,EACA,GAEJ,OAAU,CACN,EACA,IAGR,SAAY,CACR,IAAO,CACH,EACA,GAEJ,OAAU,CACN,EACA,IAGR,SAAY,CACR,IAAO,CACH,EACA,GAEJ,OAAU,CACN,EACA,IAGR,QAAW,CACP,IAAO,CACH,EACA,GAEJ,OAAU,CACN,EACA,IAGR,KAAQ,SACR,MAAS,CACL,IAAO,CACH,GACA,IAEJ,OAAU,CACN,EACA,IAEJ,UAAa,GACb,aAAgB,EAChB,KAAQ,KACR,MAAS,IACT,IAAO,IACP,OAAU,GACV,UAAa,KACb,WAAc,IACd,SAAY,IACZ,YAAe,KAGvB,eAAkB,CACd,MAAS,CACL,KACA,QAEJ,MAAS,CACL,KACA,KACA,MAEJ,OAAU,CACN,CACI,EACA,GAEJ,CACI,EACA,GAEJ,CACI,EACA,IAGR,YAAe,CACX,EAAK,MACL,EAAK,QAGb,qBAAwB,CACpB,EAAK,EACL,EAAK,EACL,OAAU,GAEd,cAAiB,CACb,MAAS,CACL,MAAQ,EACR,KAAQ,OACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,SAAY,CACR,MAAS,WACT,QAAW,GACX,QAAW,KAGnB,SAAY,CACR,MAAQ,EACR,KAAQ,GACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,SAAY,CACR,MAAS,OACT,OAAU,KAGlB,OAAU,CACN,MAAS,cACT,WAAc,aACd,KAAQ,CACJ,MAAS,SACT,IAAO,EACP,KAAQ,GACR,MAAS,GACT,OAAU,KAGlB,OAAU,CACN,MAAQ,EACR,WAAc,WACd,SAAY,CACR,CACI,WAAc,KACd,QAAU,GAEd,CACI,WAAc,KACd,QAAU,GAEd,CACI,WAAc,KACd,QAAU,IAGlB,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,SAAY,CACR,MAAS,WACT,QAAW,GACX,QAAW,GACX,UAAa,cAEjB,MAAS,CACL,MAAS,OACT,QAAW,IAEf,OAAU,CACN,MAAS,OACT,QAAW,IAEf,SAAY,CACR,MAAS,OACT,OAAU,IAEd,QAAW,GACX,KAAQ,CACJ,KACA,SAGR,QAAW,CACP,MAAQ,EACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,gBAAmB,qBACnB,UAAa,YACb,YAAe,OACf,YAAe,CACX,KAAQ,OACR,MAAS,CACL,MAAS,OACT,MAAS,SACT,KAAQ,UAGhB,OAAU,CACN,CACI,WAAc,KACd,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,QAEb,CACI,WAAc,KACd,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,QAEb,CACI,WAAc,KACd,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,SAGjB,SAAY,QAEhB,KAAQ,CACJ,SAAY,YACZ,QAAW,CACP,MAAQ,EACR,MAAS,CACL,WAAa,EACb,KAAQ,GACR,QAAW,GACX,OAAU,EACV,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,WAAc,OAElB,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MAAQ,EACR,MAAS,EACT,MAAS,QAEb,KAAQ,CACJ,MAAQ,EACR,SAAY,UACZ,OAAU,EACV,MAAS,EACT,MAAS,QAEb,UAAa,CACT,MAAQ,EACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,OAAU,EACV,OAAU,GACV,OAAU,GACV,SAAY,EACZ,SAAY,EACZ,IAAO,OACP,IAAO,OACP,MAAS,EACT,MAAS,QAEb,QAAW,CACP,MAAQ,EACR,MAAS,EACT,KAAQ,QACR,MAAS,OACT,SAAY,CACR,MAAS,OACT,UAAa,IAGrB,QAAW,CACP,MAAQ,EACR,SAAY,CACR,MAAS,OACT,UAAa,GAEjB,SAAY,OACZ,SAAY,QAEhB,SAAY,CACR,QAAU,IAGlB,UAAa,CACT,MAAQ,EACR,MAAS,CACL,WAAa,EACb,KAAQ,GACR,QAAW,GACX,OAAU,EACV,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,WAAc,OAElB,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MAAQ,EACR,MAAS,EACT,MAAS,QAEb,KAAQ,CACJ,MAAQ,EACR,SAAY,UACZ,OAAU,EACV,MAAS,EACT,MAAS,QAEb,UAAa,CACT,MAAQ,EACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,OAAU,EACV,OAAU,GACV,OAAU,GACV,SAAY,EACZ,SAAY,EACZ,IAAO,KACP,IAAO,KACP,MAAS,EACT,MAAS,QAEb,QAAW,CACP,MAAQ,EACR,MAAS,EACT,KAAQ,QACR,MAAS,OACT,SAAY,CACR,MAAS,OACT,UAAa,IAGrB,QAAW,CACP,MAAQ,EACR,SAAY,CACR,MAAS,OACT,UAAa,GAEjB,SAAY,OACZ,SAAY,QAEhB,KAAQ,CACJ,KACA,KACA,MAEJ,KAAQ,YAEZ,UAAa,CACT,MAAQ,EACR,MAAS,CACL,WAAa,EACb,KAAQ,GACR,QAAW,GACX,OAAU,EACV,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,WAAc,OAElB,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MAAQ,EACR,MAAS,EACT,MAAS,QAEb,KAAQ,CACJ,MAAQ,EACR,SAAY,UACZ,OAAU,EACV,MAAS,EACT,MAAS,QAEb,UAAa,CACT,MAAQ,EACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,OAAU,EACV,UAAa,CACT,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,QAEb,MAAS,EACT,IAAO,KACP,IAAO,KACP,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,OACT,SAAY,GAEhB,QAAW,CACP,MAAQ,EACR,MAAS,EACT,KAAQ,QACR,MAAS,OACT,SAAY,CACR,MAAS,OACT,UAAa,IAGrB,QAAW,CACP,MAAQ,EACR,SAAY,CACR,MAAS,OACT,UAAa,GAEjB,SAAY,OACZ,SAAY,QAEhB,KAAQ,SAEZ,WAAc,CACV,MAAQ,EACR,MAAS,CACL,WAAa,EACb,KAAQ,GACR,QAAW,GACX,OAAU,EACV,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,WAAc,OAElB,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MAAQ,EACR,MAAS,EACT,MAAS,QAEb,KAAQ,CACJ,MAAQ,EACR,SAAY,UACZ,OAAU,EACV,MAAS,EACT,MAAS,QAEb,UAAa,CACT,MAAQ,EACR,MAAS,CACL,SAAY,GACZ,MAAS,OACT,WAAc,aACd,UAAa,GACb,YAAe,IAEnB,OAAU,EACV,UAAa,CACT,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,QAEb,MAAS,EACT,IAAO,KACP,IAAO,KACP,OAAU,GACV,OAAU,GACV,MAAS,EACT,MAAS,OACT,SAAY,GAEhB,QAAW,CACP,MAAQ,EACR,MAAS,EACT,KAAQ,QACR,MAAS,OACT,SAAY,CACR,MAAS,OACT,UAAa,IAGrB,QAAW,CACP,MAAQ,EACR,SAAY,CACR,MAAS,OACT,UAAa,GAEjB,SAAY,OACZ,SAAY,UAIxB,OAAU,CACN,CACI,UAAa,CACT,MAAS,KACT,YAAe,OACf,WAAc,QACd,YAAe,GAEnB,UAAa,CACT,MAAS,KACT,MAAS,EACT,KAAQ,SAEZ,KAAQ,CACJ,EACA,EACA,GAEJ,KAAQ,OACR,KAAQ,KACR,UAAa,CACT,KAAQ,IAEZ,SAAY,CACR,KAAQ,IAEZ,SAAY,CACR,KAAQ,KAGhB,CACI,UAAa,CACT,MAAS,KACT,YAAe,OACf,WAAc,QACd,YAAe,GAEnB,UAAa,CACT,MAAS,KACT,MAAS,EACT,KAAQ,SAEZ,KAAQ,CACJ,EACA,EACA,GAEJ,KAAQ,OACR,KAAQ,OACR,UAAa,CACT,KAAQ,IAEZ,SAAY,CACR,KAAQ,IAEZ,SAAY,CACR,KAAQ,MAIpB,WAAc,CACV,CACI,EACA,EACA,GAEJ,CACI,EACA,EACA,OAKjB,CACC,SAAY,mCACZ,QAAU,EACV,aAAgB,CACZ,SAAY,mCACZ,aAAgB,uBAChB,SAAY,UACZ,UAAa,OACb,WAAc,UACd,UAAa,CACT,CACI,CACI,EAAK,OACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,OACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,OACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,OACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,IAGd,CACI,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,IAGd,CACI,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,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,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,IAGd,CACI,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,IAGd,CACI,CACI,EAAK,KACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,KACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,GAEV,CACI,EAAK,EACL,GAAM,CACF,GAAM,UACN,EAAK,KAET,EAAK,IACL,GAAM,oBACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,eACN,GAAM,EACN,GAAM,KAIlB,WAAc,CACV,CACI,IAAO,CACH,GACA,IAEJ,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UACAulB,KAAA,KAGAmnC,cAAA,GACAF,WAAA,KACAkF,aAAA,GACAyT,uBAAA,IAEAC,UAAA,CACA,CACA59D,KAAA,OACAxH,KAAA,MACA4sD,KAAA,uBACArnC,KAAA,CACA,CACA/d,KAAA,uBACAxH,KAAA,MACAgtD,IACA,8vTAEA,CACAxlD,KAAA,sBACAxH,KAAA,QACAgtD,IACA,8oLAEA,CACAxlD,KAAA,qBACAxH,KAAA,UACAgtD,IACA,ojJAIA,CACAxlD,KAAA,OACAxH,KAAA,MACA4sD,KAAA,iCACArnC,KAAA,CACA,CACA/d,KAAA,uBACAxH,KAAA,MACAgtD,IACA,8sLAEA,CACAxlD,KAAA,qBACAxH,KAAA,QACAgtD,IACA,w3OAIA,CACAxlD,KAAA,SACAxH,KAAA,MACA4sD,KAAA,aACArnC,KAAA,CACA,CACA/d,KAAA,yBACAxH,KAAA,MACAgtD,IACA,8oCAEA,CACAxlD,KAAA,uBACAxH,KAAA,QACAgtD,IACA,guCAIA,CACAxlD,KAAA,MACAxH,KAAA,MACA4sD,KAAA,qCACArnC,KAAA,CACA,CACA/d,KAAA,sBACAxH,KAAA,MACAgtD,IACA,03CAEA,CACAxlD,KAAA,oBACAxH,KAAA,QACAgtD,IACA,w8BAIA,CACAxlD,KAAA,MACAxH,KAAA,MACA4sD,KAAA,mCACArnC,KAAA,CACA,CACA/d,KAAA,sBACAxH,KAAA,MACAgtD,IACA,8/FAEA,CACAxlD,KAAA,oBACAxH,KAAA,QACAgtD,IACA,83GAEA,CACAxlD,KAAA,mBACAxH,KAAA,OACAgtD,IACA,ywHAMAqY,UAAA,CACA,CACA79D,KAAA,OACAxH,KAAA,aACA4sD,KAAA,uBACArnC,KAAA,CACA,CACA/d,KAAA,uBACAxH,KAAA,mBACAgtD,IACA,8vTAEA,CACAxlD,KAAA,sBACAxH,KAAA,sBACAgtD,IACA,8oLAEA,CACAxlD,KAAA,qBACAxH,KAAA,mBACAgtD,IACA,ojJAIA,CACAxlD,KAAA,OACAxH,KAAA,aACA4sD,KAAA,iCACArnC,KAAA,CACA,CACA/d,KAAA,uBACAxH,KAAA,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","file":"chartmix.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"echarts\"), require(\"Vuex\"), require(\"Vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"echarts\", \"Vuex\", \"Vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"chartmix\"] = factory(require(\"echarts\"), require(\"Vuex\"), require(\"Vue\"));\n\telse\n\t\troot[\"chartmix\"] = factory(root[\"echarts\"], root[\"Vuex\"], root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__164e__, __WEBPACK_EXTERNAL_MODULE__5880__, __WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","/*!\n * jQuery JavaScript Library v3.7.0\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-05-11T18:29Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.0\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (see trac-13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" +\n\t\t\t\"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" +\n\t\t\t\"<option selected=''></option></select>\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented\n// as part of Sizzle so let's maintain them in the 3.x line\n// for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__164e__;","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__5880__;","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartSetting.vue?vue&type=style&index=0&id=dc2be93c&prod&lang=scss&\"","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSlider.vue?vue&type=style&index=0&id=d0824222&prod&lang=css&\"","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","module.exports = false;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","module.exports = {};\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartList.vue?vue&type=style&index=0&id=d01548cc&prod&lang=css&\"","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chartSetting\"},[_c('div',{staticStyle:{\"overflow\":\"hidden\",\"height\":\"100%\"}},[_c('chart-list',{attrs:{\"chartAllType\":_vm.currentChartType,\"showList\":_vm.showList,\"lang\":_vm.lang},on:{\"closeChartShowList\":function($event){_vm.showList=false}}}),_c('div',[_c('el-tabs',{attrs:{\"type\":\"card\"},on:{\"tab-click\":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"name\":\"data\"}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_c('i',{staticClass:\"el-icon-date\"}),_vm._v(\" \"+_vm._s(_vm.setItem.data)+\" \")]),_c('el-row',[_c('el-col',{attrs:{\"span\":2}},[_c('div',[_vm._v(\" \")])]),_c('el-col',{attrs:{\"span\":22}},[_c('div',{staticStyle:{\"margin-top\":\"1px\"}},[_vm._v(_vm._s(_vm.setItem.chartType))]),_c('div',{staticStyle:{\"margin-top\":\"10px\"}},[_c('el-button',{staticStyle:{\"width\":\"100%\"},attrs:{\"size\":\"small\"},on:{\"click\":function($event){_vm.showList = !_vm.showList}}},[_c('i',{staticClass:\"iconfont\",class:_vm.chartTypeTxt[0],staticStyle:{\"float\":\"left\"}}),_vm._v(\" \"+_vm._s(_vm.chartTypeTxt[1])+\" \"),_c('i',{staticClass:\"iconfont icon-jiantou\",staticStyle:{\"float\":\"right\"}})])],1),_c('div',{staticStyle:{\"margin-top\":\"25px\"}}),(_vm.chartXYSeriesList)?_c('div',_vm._l((_vm.chartXYSeriesList.fix),function(item){return _c('div',{key:item.title,staticStyle:{\"margin-top\":\"10px\"}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{staticStyle:{\"line-height\":\"28px\",\"text-align\":\"right\"},attrs:{\"span\":4}},[_vm._v(_vm._s(item.title)+\":\")]),_c('el-col',{attrs:{\"span\":20}},[_c('el-tag',{staticStyle:{\"width\":\"100%\",\"text-align\":\"center\"},attrs:{\"size\":\"medium\"}},[_c('i',{staticClass:\"iconfont\",class:item.type,staticStyle:{\"float\":\"left\"}}),_vm._v(\" \"+_vm._s(item.field)+\" \")])],1)],1)],1)}),0):_vm._e(),_c('div',{staticStyle:{\"margin-top\":\"25px\"}}),(_vm.chartXYSeriesList)?_c('div',_vm._l((_vm.chartXYSeriesList.change),function(item,index){return _c('div',{key:index,staticStyle:{\"margin-top\":\"10px\"}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{staticStyle:{\"line-height\":\"28px\",\"text-align\":\"right\"},attrs:{\"span\":4}},[_vm._v(_vm._s(item.title)+\":\")]),_c('el-col',{attrs:{\"span\":20}},[_c('el-dropdown',{staticStyle:{\"width\":\"100%\"},attrs:{\"size\":\"medium\",\"trigger\":\"click\"},on:{\"command\":_vm.handleSeriseCommand}},[_c('el-button',{staticStyle:{\"width\":\"100%\"},attrs:{\"size\":\"mini\"}},[_c('i',{staticClass:\"iconfont\",class:item.type,staticStyle:{\"float\":\"left\",\"font-size\":\"16px\"}}),_vm._v(\" \"+_vm._s(item.field)+\" \"),_c('i',{staticClass:\"iconfont icon-jiantou\",staticStyle:{\"float\":\"right\"}})]),_c('el-dropdown-menu',{staticStyle:{\"min-width\":\"306px\"},attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},_vm._l((_vm.chartXYSeriesList.option),function(ditem,index){return _c('el-dropdown-item',{key:`A-${index}`,attrs:{\"command\":{series:item, option:ditem}}},[_vm._v(\" \"+_vm._s(ditem.field)+\" \"),(item.id==ditem.id)?_c('i',{staticClass:\"iconfont icon-dagou\",staticStyle:{\"float\":\"right\"}}):_vm._e()])}),1)],1)],1)],1)],1)}),0):_vm._e(),_c('div',{staticStyle:{\"margin-top\":\"25px\"}}),_c('el-row',[_c('div',{staticStyle:{\"margin\":\"25px 0\"}}),_c('el-checkbox',{on:{\"change\":_vm.checkBoxChange},model:{value:(_vm.currentRangeConfigCheck),callback:function ($$v) {_vm.currentRangeConfigCheck=$$v},expression:\"currentRangeConfigCheck\"}},[_vm._v(_vm._s(_vm.setItem.transpose))]),_c('div',{staticStyle:{\"margin\":\"15px 0\"}}),_c('el-checkbox',{attrs:{\"disabled\":_vm.checkRowDisabled},on:{\"change\":_vm.checkBoxChange},model:{value:(_vm.currentRangeRowCheck.exits),callback:function ($$v) {_vm.$set(_vm.currentRangeRowCheck, \"exits\", $$v)},expression:\"currentRangeRowCheck.exits\"}},[_vm._v(_vm._s(_vm.setItem.row1)+\" \"+_vm._s(_vm.getColRowCheckTxt(true))+\" \"+_vm._s(_vm.setItem.row2))]),_c('div',{staticStyle:{\"margin\":\"15px 0\"}}),_c('el-checkbox',{attrs:{\"disabled\":_vm.checkColDisabled},on:{\"change\":_vm.checkBoxChange},model:{value:(_vm.currentRangeColCheck.exits),callback:function ($$v) {_vm.$set(_vm.currentRangeColCheck, \"exits\", $$v)},expression:\"currentRangeColCheck.exits\"}},[_vm._v(_vm._s(_vm.setItem.column1)+\" \"+_vm._s(_vm.getColRowCheckTxt())+\" \"+_vm._s(_vm.setItem.column2))])],1)],1)],1)],1),_c('el-tab-pane',[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_c('i',{staticClass:\"el-icon-s-data\"}),_vm._v(\" \"+_vm._s(_vm.setItem.style)+\" \")]),_c('el-row',[_c('el-col',{attrs:{\"span\":1}},[_c('div',[_vm._v(\" \")])]),_c('el-col',{attrs:{\"span\":22}},[_c('el-collapse',[_c('chart-title',{attrs:{\"router\":'title',\"chartAllType\":_vm.currentChartType,\"titleOption\":_vm.titleOption,\"lang\":_vm.lang}}),_c('chart-sub-title',{attrs:{\"router\":'subtitle',\"chartAllType\":_vm.currentChartType,\"subTitleOption\":_vm.subTitleOption,\"lang\":_vm.lang}}),_c('chart-cursor',{attrs:{\"router\":'tooltip',\"chartAllType\":_vm.currentChartType,\"cursorOption\":_vm.cursorOption,\"lang\":_vm.lang}}),_c('chart-legend',{attrs:{\"router\":'legend',\"chartAllType\":_vm.currentChartType,\"legendOption\":_vm.legendOption,\"lang\":_vm.lang}}),(_vm.currentChartType.split('|')[1]!='pie')?_c('chart-axis',{attrs:{\"router\":'axis',\"axisOption\":_vm.axisOption,\"chartAllType\":_vm.currentChartType,\"lang\":_vm.lang}}):_vm._e()],1)],1),_c('el-col',{attrs:{\"span\":1}},[_c('div',[_vm._v(\" \")])])],1)],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showList)?_c('div',{staticClass:\"luckysheet-datavisual-quick-m\",style:({position: 'absolute',zIndex: _vm.zindex,bottom: '0px',left: '0px',right: '0px',background: '#fff'})},[_c('el-button',{staticStyle:{\"width\":\"100%\",\"margin\":\"2px 4px 8px 4px\"},attrs:{\"plain\":\"\",\"round\":\"\",\"size\":\"small\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.$emit('closeChartShowList')}}},[_c('i',{staticClass:\"iconfont icon-guanbi\",staticStyle:{\"float\":\"left\"}}),_vm._v(\" \"+_vm._s(_vm.close)+\" \")]),_c('el-radio-group',{staticStyle:{\"display\":\"block\",\"text-align\":\"center\"},attrs:{\"size\":\"mini\"},model:{value:(_vm.currentPro),callback:function ($$v) {_vm.currentPro=$$v},expression:\"currentPro\"}},_vm._l((_vm.config),function(item,index){return _c('el-radio-button',{key:index,attrs:{\"label\":item.type}},[_vm._v(_vm._s(item.name))])}),1),_c('div',{staticClass:\"luckysheet-datavisual-quick-menu\",attrs:{\"id\":\"luckysheet-datavisual-quick-menu\"}},_vm._l((_vm.currentConfig.data),function(item,index){return _c('div',{key:index,attrs:{\"data-type\":item.type,\"id\":'luckysheet-datavisual-chart-menu-' + item.type},on:{\"click\":_vm.quickMenu}},[_c('i',{staticClass:\"iconfont\",class:item.icon,attrs:{\"aria-hidden\":\"true\"}}),_c('span',[_vm._v(_vm._s(item.name))])])}),0),_c('div',{staticClass:\"luckysheet-datavisual-quick-list luckysheet-scrollbars\",attrs:{\"id\":\"luckysheet-datavisual-quick-list\"},on:{\"scroll\":_vm.quickListScroll}},[_vm._l((_vm.currentConfig.data),function(item,index){return [_c('div',{key:index,staticClass:\"luckysheet-datavisual-quick-list-title\"},[_c('a',{attrs:{\"data-type\":item.type,\"id\":'luckysheet-datavisual-chart-listtitle-'+item.type}},[_c('i',{staticClass:\"iconfont\",class:item.icon,attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"+_vm._s(item.name)+\" \")])]),_c('div',{staticClass:\"luckysheet-datavisual-quick-list-ul\"},_vm._l((item.data),function(chartItem,index){return _c('el-tooltip',{key:index,attrs:{\"content\":chartItem.name,\"open-delay\":500,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('div',{staticClass:\"luckysheet-datavisual-quick-list-item\",class:chartItem.type==_vm.currentChartType? 'luckysheet-datavisual-quick-list-item-active':'',attrs:{\"chartAllType\":chartItem.type,\"data-style\":chartItem.type.split('-')[2],\"data-type\":chartItem.type.split('-')[1]},on:{\"click\":function($event){return _vm.changeChartType(chartItem.type)}}},[_c('img',{attrs:{\"src\":chartItem.img.length==0?'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQyIiBoZWlnaHQ9IjIwMCIgdmlld0JveD0iMCAwIDI0MiAyMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxkZWZzLz48cmVjdCB3aWR0aD0iMjQyIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI0VFRUVFRSIvPjxnPjx0ZXh0IHg9IjkzIiB5PSIxMDAiIHN0eWxlPSJmaWxsOiNBQUFBQUE7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LWZhbWlseTpBcmlhbCwgSGVsdmV0aWNhLCBPcGVuIFNhbnMsIHNhbnMtc2VyaWYsIG1vbm9zcGFjZTtmb250LXNpemU6MTFwdDtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsIj4yNDJ4MjAwPC90ZXh0PjwvZz48L3N2Zz4=':chartItem.img,\"alt\":\"图片\"}})])])}),1)]})],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\r\n * 图表的样式结构: 为chartOptions.defaultOption下的所有属性,应该是所有图表类型的并集\r\n * DOM的结构与此对应: DOM操作后修改此处参数,直接存储后台, 渲染图表时候经过一层引擎转换才能使用各个图表插件渲染; 后台拿到此参数,可对应绑定到DOM上\r\n *\r\n * 设计细节:\r\n * 1. 各个图表类型之间的设置项不同,有交集和并集,此处设置统一存储并集参数\r\n * 2. 切换图表类型时,亦应保留所具有的设置参数,为切换回上一个图表类型保留设置\r\n */\r\nimport { deepCopy } from '../utils/util';\r\nconst baseComponent = {\r\n label: {\r\n fontSize: 12, //字体大小 //fontSize为'custom'时,取cusFontSize的值\r\n color: '#333', //颜色\r\n fontFamily: 'sans-serif', //字体\r\n fontGroup: [], //字体, 加粗:选中:'bold',无:'normal'; 斜体: 选中:'italic',无:'normal';方向:选中:'vertical',无:'horizen'\r\n cusFontSize: 12, //自定义文字大小\r\n },\r\n formatter: {\r\n prefix: '', //前缀\r\n suffix: '', //后缀\r\n ratio: 1, //数值比例\r\n digit: 'auto', //小数位数\r\n },\r\n item: {\r\n color: null,\r\n borderColor: '#000',\r\n borderType: 'solid',\r\n borderWidth: 1\r\n },\r\n lineStyle: {\r\n color: null,\r\n width: 1,\r\n type: 'solid'\r\n }\r\n};\r\nconst chartComponent = {\r\n //标题设置\r\n title: {\r\n show: false, //是否显示\r\n text: '默认标题', //标题内容\r\n label: deepCopy(baseComponent.label),\r\n position: {\r\n value: 'left-top', //custom:自定义 //left-top 为custom的时候,取offsetX, offsetY\r\n offsetX: 40, //自定义的X位置,单位百分比\r\n offsetY: 50, //自定义的Y位置,单位百分比\r\n },\r\n },\r\n //副标题\r\n subtitle: {\r\n show: false, //是否显示\r\n text: '', //标题内容\r\n label: deepCopy(baseComponent.label),\r\n distance: {\r\n value: 'auto', //'auto': 默认, 'far': 远 // 'normal': 一般 'close':近 custom :取cusGap作为距离\r\n cusGap: 40, //自定义距离\r\n },\r\n },\r\n // 图表设置\r\n config: {\r\n color: 'transparent', //默认颜色//'#333'\r\n fontFamily: 'Sans-serif',\r\n grid: {\r\n value: 'normal', //''normal':正常 'wide':宽 // 'narrow':窄 // 'slender':瘦长 'flat':扁平\r\n top: 5,\r\n left: 10,\r\n right: 20,\r\n bottom: 10,\r\n },\r\n },\r\n //图例设置\r\n legend: {\r\n show: true,\r\n selectMode: 'multiple', //'single':单选 //'多选':multiple //'禁用':'disable'\r\n selected: [\r\n //图例显示选择 //动态数据渲染 //分:初始化图表+后台加载使用数据结构中数据 /编辑时根据系列实时变化\r\n {\r\n seriesName: '衣服', //\r\n isShow: true,\r\n },\r\n {\r\n seriesName: '食材', //\r\n isShow: true,\r\n },\r\n {\r\n seriesName: '图书', //\r\n isShow: true,\r\n },\r\n ],\r\n label: deepCopy(baseComponent.label), //图例文字样式\r\n position: {\r\n value: 'left-top', //custom:自定义 //left-top 为custom的时候,取offsetX, offsetY\r\n offsetX: 40, //自定义的X位置,单位百分比\r\n offsetY: 50, //自定义的Y位置,单位百分比\r\n direction: 'horizontal', //图例位置水平或者垂直 horizontal(水平)/vertical(垂直)\r\n },\r\n width: {\r\n //图例图标大小\r\n value: 'auto', //'auto':默认/ 'big':大/'medium':中/'small':小/'custom':自定义\r\n cusSize: 25, //图例自定义宽度 ,单位px\r\n },\r\n height: {\r\n //图例图标大小\r\n value: 'auto', //'auto':默认/ 'big':大/'medium':中/'small':小/'custom':自定义\r\n cusSize: 14, //图例自定义宽度 ,单位px\r\n },\r\n distance: {\r\n value: 'auto', //'auto':默认 /far':远 / 'general':一般 / 'near':近 /'custom':自定义\r\n cusGap: 10, //自定义距离\r\n },\r\n itemGap: 10,\r\n },\r\n //提示设置\r\n tooltip: {\r\n show: true, //鼠标提示显示\r\n label: deepCopy(baseComponent.label), //文字样式\r\n backgroundColor: 'rgba(50,50,50,0.7)', // 鼠标提示框背景色\r\n triggerOn: 'mousemove', // 'mousemove':鼠标滑过 click':单击 触发条件\r\n triggerType: 'item', //触发类型 //'axis':坐标轴触发 'item':数据项图形触发\r\n axisPointer: {\r\n // 指示器配置\r\n type: 'line', // 'line':默认直线指示器 //'cross': 十字指示器配置 //'shadow': 阴影指示器配置\r\n style: {\r\n // 指示器样式\r\n color: '#555',\r\n width: 'normal', //宽度:'normal':正常 'bold': 粗 'bolder':加粗\r\n type: 'solid', //'solid': 实线 'dash': 虚线 'dot':点线\r\n },\r\n },\r\n format: [\r\n //鼠标提示后缀\r\n {\r\n seriesName: '衣服',\r\n prefix: '', //前缀\r\n suffix: '', //后缀 (自定义单位)\r\n ratio: 1, //除以的数 // 1为默认, 0.1 /0.001 /...\r\n digit: 'auto', //小数位数 'auto' :不处理 // 数值:0 , 1 ,2 ...\r\n },\r\n {\r\n seriesName: '食材',\r\n prefix: '', //前缀\r\n suffix: '', //后缀\r\n ratio: 1,\r\n digit: 'auto',\r\n },\r\n {\r\n seriesName: '图书',\r\n prefix: '', //前缀\r\n suffix: '', //后缀\r\n ratio: 1,\r\n digit: 'auto',\r\n },\r\n ],\r\n position: 'auto', // 鼠标提示位置 //'inside':中心位置 //'left'/'top'/'right'/'top'\r\n },\r\n // XY轴\r\n axis: {\r\n axisType: 'xAxisDown', //要显示的坐标轴类型\r\n xAxisUp: {\r\n show: false, //显示X轴\r\n title: {\r\n showTitle: false, //显示X轴\r\n text: '', //标题内容\r\n nameGap: 15, //标题与轴线距离\r\n rotate: 0, //标题倾斜角度\r\n label: deepCopy(baseComponent.label),\r\n fzPosition: 'end', //标题对齐方式,end: 尾部, middle: 中间\r\n },\r\n name: '显示X轴',\r\n inverse: false, //反向坐标轴 (echarts有)\r\n //刻度线\r\n tickLine: {\r\n show: true, //显示刻度线\r\n width: 1, //刻度线宽度\r\n color: 'auto', //刻度线颜色\r\n },\r\n //刻度\r\n tick: {\r\n show: true, //显示刻度\r\n position: 'outside', //刻度位置,默认: outside朝外 / inside: 朝内\r\n length: 5, //刻度长度\r\n width: 1, //刻度宽度\r\n color: 'auto', //刻度颜色\r\n },\r\n //标签\r\n tickLabel: {\r\n show: true, //显示刻度标签\r\n label: deepCopy(baseComponent.label),\r\n rotate: 0, //倾斜标签角度\r\n prefix: '', //标签前缀\r\n suffix: '', //标签后缀\r\n optimize: 0,\r\n distance: 0, //标签与轴线距离\r\n min: 'auto', //最小值\r\n max: 'auto', //最大值\r\n ratio: 1,\r\n digit: 'auto',\r\n },\r\n //网格线\r\n netLine: {\r\n show: false, //显示网格线\r\n width: 1, //网格线宽度\r\n type: 'solid', //网格线类型\r\n color: 'auto', //网格线颜色\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n },\r\n //网格区域\r\n netArea: {\r\n show: false, //显示网格区域\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n colorOne: 'auto', //网格第一颜色\r\n colorTwo: 'auto', //网格第二颜色\r\n },\r\n axisLine: {\r\n //第二根X轴必需\r\n onZero: false,\r\n },\r\n },\r\n xAxisDown: {\r\n show: true, //显示X轴\r\n title: {\r\n showTitle: false, //显示X轴\r\n text: '', //标题内容\r\n nameGap: 15, //标题与轴线距离\r\n rotate: 0, //标题倾斜角度\r\n label: deepCopy(baseComponent.label),\r\n fzPosition: 'end', //标题对齐方式,end: 尾部, middle: 中间\r\n },\r\n name: '显示X轴',\r\n inverse: false, //反向坐标轴 (echarts有)\r\n //刻度线\r\n tickLine: {\r\n show: true, //显示刻度线\r\n width: 1, //刻度线宽度\r\n color: 'auto', //刻度线颜色\r\n },\r\n //刻度\r\n tick: {\r\n show: true, //显示刻度\r\n position: 'outside', //刻度位置,默认: outside朝外 / inside: 朝内\r\n length: 5, //刻度长度\r\n width: 1, //刻度宽度\r\n color: 'auto', //刻度颜色\r\n },\r\n //标签\r\n tickLabel: {\r\n show: true, //显示刻度标签\r\n label: deepCopy(baseComponent.label),\r\n rotate: 0, //倾斜标签角度\r\n prefix: '', //标签前缀\r\n suffix: '', //标签后缀\r\n optimize: 0, //标签间隔个数\r\n distance: 0, //标签与轴线距离\r\n min: null, //最小值\r\n max: null, //最大值\r\n ratio: 1,\r\n digit: 'auto',\r\n },\r\n //网格线\r\n netLine: {\r\n show: false, //显示网格线\r\n width: 1, //网格线宽度\r\n type: 'solid', //网格线类型\r\n color: 'auto', //网格线颜色\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n },\r\n //网格区域\r\n netArea: {\r\n show: false, //显示网格区域\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n colorOne: 'auto', //网格第一颜色\r\n colorTwo: 'auto', //网格第二颜色\r\n },\r\n },\r\n yAxisLeft: {\r\n show: true, //显示X轴\r\n title: {\r\n showTitle: false, //显示X轴\r\n text: '', //标题内容\r\n nameGap: 15, //标题与轴线距离\r\n rotate: 0, //标题倾斜角度\r\n label: deepCopy(baseComponent.label),\r\n fzPosition: 'end', //标题对齐方式,end: 尾部, middle: 中间\r\n },\r\n name: '显示Y轴',\r\n inverse: false, //反向坐标轴 (echarts有)\r\n //刻度线\r\n tickLine: {\r\n show: true, //显示刻度线\r\n width: 1, //刻度线宽度\r\n color: 'auto', //刻度线颜色\r\n },\r\n //刻度\r\n tick: {\r\n show: true, //显示刻度\r\n position: 'outside', //刻度位置,默认: outside朝外 / inside: 朝内\r\n length: 5, //刻度长度\r\n width: 1, //刻度宽度\r\n color: 'auto', //刻度颜色\r\n },\r\n //标签\r\n tickLabel: {\r\n show: true, //显示刻度标签\r\n label: deepCopy(baseComponent.label),\r\n rotate: 0, //倾斜标签角度\r\n formatter: deepCopy(baseComponent.formatter),\r\n split: 5, //分割段数\r\n min: null, //最小值\r\n max: null, //最大值\r\n prefix: '', //标签前缀\r\n suffix: '', //标签后缀\r\n ratio: 1,\r\n digit: 'auto',\r\n distance: 0, //标签与轴线距离\r\n },\r\n //网格线\r\n netLine: {\r\n show: false, //显示网格线\r\n width: 1, //网格线宽度\r\n type: 'solid', //网格线类型\r\n color: 'auto', //网格线颜色\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n },\r\n //网格区域\r\n netArea: {\r\n show: false, //显示网格区域\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n colorOne: 'auto', //网格第一颜色\r\n colorTwo: 'auto', //网格第二颜色\r\n },\r\n },\r\n yAxisRight: {\r\n show: false, //显示X轴\r\n title: {\r\n showTitle: false, //显示X轴\r\n text: '', //标题内容\r\n nameGap: 15, //标题与轴线距离\r\n rotate: 0, //标题倾斜角度\r\n label: deepCopy(baseComponent.label),\r\n fzPosition: 'end', //标题对齐方式,end: 尾部, middle: 中间\r\n },\r\n name: '显示Y轴',\r\n inverse: false, //反向坐标轴 (echarts有)\r\n //刻度线\r\n tickLine: {\r\n show: true, //显示刻度线\r\n width: 1, //刻度线宽度\r\n color: 'auto', //刻度线颜色\r\n },\r\n //刻度\r\n tick: {\r\n show: true, //显示刻度\r\n position: 'outside', //刻度位置,默认: outside朝外 / inside: 朝内\r\n length: 5, //刻度长度\r\n width: 1, //刻度宽度\r\n color: 'auto', //刻度颜色\r\n },\r\n //标签\r\n tickLabel: {\r\n show: true, //显示刻度标签\r\n label: deepCopy(baseComponent.label),\r\n rotate: 0, //倾斜标签角度\r\n formatter: deepCopy(baseComponent.formatter),\r\n split: 5, //分割段数\r\n min: null, //最小值\r\n max: null, //最大值\r\n prefix: '', //标签前缀\r\n suffix: '', //标签后缀\r\n ratio: 1,\r\n digit: 'auto',\r\n distance: 0, //标签与轴线距离\r\n },\r\n //网格线\r\n netLine: {\r\n show: false, //显示网格线\r\n width: 1, //网格线宽度\r\n type: 'solid', //网格线类型\r\n color: 'auto', //网格线颜色\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n },\r\n //网格区域\r\n netArea: {\r\n show: false, //显示网格区域\r\n interval: {\r\n //网格分割间隔数\r\n value: 'auto',\r\n cusNumber: 0,\r\n },\r\n colorOne: 'auto', //网格第一颜色\r\n colorTwo: 'auto', //网格第二颜色\r\n },\r\n },\r\n },\r\n};\r\n\r\n//此类数据抽出来作为模板数据,每次使用deepCopy一份即可\r\n//注: 若页面展示的是语义化的参数,则此处也只定义语义化的参数,具体数值在引擎里做转换\r\n//若界面选择的直接是用户期望的数值,则直接采用数值即可\r\n/**\r\n * 位置信息\r\n *\r\n */\r\nconst positionOption = [\r\n { value: 'left-top', label: '左上' },\r\n { value: 'left-middle', label: '左中' },\r\n { value: 'left-bottom', label: '左下' },\r\n { value: 'right-top', label: '右上' },\r\n { value: 'right-middle', label: '右中' },\r\n { value: 'right-bottom', label: '右下' },\r\n { value: 'center-top', label: '中上' },\r\n { value: 'center-middle', label: '居中' },\r\n { value: 'center-bottom', label: '中下' },\r\n { value: 'custom', label: '自定义' },\r\n];\r\n\r\n//距离\r\nconst distanceOption = [\r\n { value: 'auto', label: '默认' },\r\n { value: 'far', label: '远' },\r\n { value: 'normal', label: '一般' },\r\n { value: 'close', label: '近' },\r\n { value: 'custom', label: '自定义' },\r\n];\r\n\r\n// 字体大小集合\r\nconst fontSizeOption = [\r\n { value: 6, label: '6px' },\r\n { value: 8, label: '8px' },\r\n { value: 10, label: '10px' },\r\n { value: 12, label: '12px' },\r\n { value: 14, label: '14px' },\r\n { value: 16, label: '16px' },\r\n { value: 18, label: '18px' },\r\n { value: 20, label: '20px' },\r\n { value: 22, label: '22px' },\r\n { value: 24, label: '24px' },\r\n { value: 30, label: '30x' },\r\n { value: 36, label: '36px' },\r\n { value: 'custom', label: '自定义' },\r\n];\r\n\r\n// 线样式\r\nconst lineStyleOption = [\r\n { value: 'solid', label: '实线' },\r\n { value: 'dashed', label: '虚线' },\r\n { value: 'dotted', label: '点线' },\r\n];\r\n\r\n// 线宽度\r\nconst lineWeightOption = [\r\n { value: 'normal', label: '正常' },\r\n { value: 'bold', label: '粗' },\r\n { value: 'bolder', label: '加粗' },\r\n];\r\n\r\n// 普通位置集合\r\nconst posOption = [\r\n { value: 'auto', label: '默认' },\r\n { value: 'inside', label: '中心位置' },\r\n { value: 'top', label: '上侧' },\r\n { value: 'left', label: '左侧' },\r\n { value: 'right', label: '右侧' },\r\n { value: 'bottom', label: '底侧' },\r\n];\r\n\r\n// 数值比例集合\r\nconst ratioOption = [\r\n { value: 100, label: '乘以100' },\r\n { value: 10, label: '乘以10' },\r\n { value: 1, label: '默认' },\r\n { value: 0.1, label: '除以10' },\r\n { value: 0.01, label: '除以100' },\r\n { value: 0.001, label: '除以1000' },\r\n { value: 0.0001, label: '除以一万' },\r\n { value: 0.00001, label: '除以10万' },\r\n { value: 0.000001, label: '除以一百万' },\r\n { value: 0.0000001, label: '除以一千万' },\r\n { value: 0.00000001, label: '除以一亿' },\r\n { value: 0.000000001, label: '除以十亿' },\r\n];\r\n\r\n// 数值位数集合\r\nconst digitOption = [\r\n { value: 'auto', label: '自动显示' },\r\n { value: 0, label: '整数' },\r\n { value: 1, label: '1位小数' },\r\n { value: 2, label: '2位小数' },\r\n { value: 3, label: '3位小数' },\r\n { value: 4, label: '4位小数' },\r\n { value: 5, label: '5位小数' },\r\n { value: 6, label: '6位小数' },\r\n { value: 7, label: '7位小数' },\r\n { value: 8, label: '8位小数' },\r\n];\r\n\r\n// (图例)大小集合\r\nconst sizeOption = [\r\n { value: 'auto', label: '默认' },\r\n { value: 'big', label: '大' },\r\n { value: 'medium', label: '中' },\r\n { value: 'small', label: '小' },\r\n { value: 'custom', label: '自定义' },\r\n];\r\n\r\n// 间隔集合\r\nconst intervalOption = [\r\n { value: 'auto', label: '默认' },\r\n { value: 0, label: '每个刻度' },\r\n { value: 1, label: '间隔1个' },\r\n { value: 2, label: '间隔2个' },\r\n { value: 3, label: '间隔3个' },\r\n { value: 'custom', label: '自定义' },\r\n];\r\n\r\n//字体大小\r\nconst fontSizeList = [\r\n { label: '默认', value: 'auto' },\r\n { label: '6px', value: 6 },\r\n { label: '8px', value: 8 },\r\n { label: '10px', value: 10 },\r\n { label: '12px', value: 12 },\r\n { label: '14px', value: 14 },\r\n { label: '16px', value: 16 },\r\n { label: '18px', value: 18 },\r\n { label: '24px', value: 24 },\r\n { label: '28px', value: 28 },\r\n { label: '36px', value: 36 },\r\n { label: '自定义', value: 'custom' },\r\n];\r\n\r\n//label字体样式 1 // 'bold','italic','vertical'\r\nconst fontStyleIBV = {\r\n bold: {\r\n des: '加粗',\r\n text: 'B',\r\n },\r\n italic: {\r\n des: '斜体',\r\n text: 'I',\r\n },\r\n vertical: {\r\n des: '文字方向',\r\n text: '垂直',\r\n },\r\n};\r\n//label字体样式 2 // 'italic','bold'\r\nconst fontStyleIB = {\r\n bold: {\r\n des: '加粗',\r\n text: 'B',\r\n },\r\n italic: {\r\n des: '斜体',\r\n text: 'I',\r\n },\r\n};\r\n\r\n// model data\r\nconst chartModelData = [[\"地区\", \"衣服\", \"食材\", \"图书\"], [\"上海\", 134, 345, 51], [\"北京\", 345, 421, 234], [\"广州\", 453, 224, 156], [\"杭州\", 321, 634, 213], [\"南京\", 654, 542, 231]];\r\n\r\n// base chart option\r\nconst chartOptions = {\r\n //图表类型设置集合\r\n chartAllType: 'echarts|line|default',\r\n\r\n //图表配置\r\n defaultOption: deepCopy(chartComponent),\r\n\r\n //图表数据\r\n chartData: deepCopy(chartModelData),\r\n} //图表设置项\r\n\r\nexport {\r\n baseComponent,\r\n chartComponent,\r\n positionOption,\r\n distanceOption,\r\n fontSizeOption,\r\n lineStyleOption,\r\n lineWeightOption,\r\n posOption,\r\n ratioOption,\r\n digitOption,\r\n sizeOption,\r\n fontSizeList,\r\n intervalOption,\r\n fontStyleIBV,\r\n fontStyleIB,\r\n chartOptions\r\n};\r\n","import { baseComponent } from '@/data/chartJson'\r\n/**\r\n * 深度克隆数据,包括对象,数组,map\r\n * @param {*} obj 对象,数组,map\r\n */\r\nfunction deepCopy(obj) {\r\n if (!isObject(obj) && !isMap(obj)) {\r\n return obj;\r\n }\r\n\r\n let cloneObj;\r\n if (isMap(obj)) {\r\n cloneObj = new Map();\r\n for (let key of obj.keys()) {\r\n let value = obj.get(key);\r\n if (isMap(value) || isObject(value) || Array.isArray(obj)) {\r\n let copyVal = deepCopy(value);\r\n cloneObj.set(key, copyVal);\r\n } else {\r\n cloneObj.set(key, value);\r\n }\r\n }\r\n } else if (typeof obj === \"function\") {\r\n cloneObj = obj\r\n } else {\r\n cloneObj = Array.isArray(obj) ? [] : {};\r\n if (obj instanceof HTMLElement) {\r\n cloneObj = obj.cloneNode(true)\r\n } else {\r\n for (let key in obj) {\r\n // if (obj.hasOwnProperty(key)) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n cloneObj[key] =\r\n isMap(obj[key]) || isObject(obj[key])\r\n ? deepCopy(obj[key])\r\n : obj[key];\r\n }\r\n }\r\n\r\n }\r\n }\r\n return cloneObj;\r\n}\r\n\r\n/**\r\n * 判断参数是否是Object类型\r\n * @param {*} o \r\n */\r\nfunction isObject(o) {\r\n return (\r\n !isMap(o) &&\r\n (typeof o === 'object' || typeof o === 'function') &&\r\n o !== null\r\n );\r\n}\r\n\r\n/**\r\n * 判断参数是否是Map类型\r\n * @param {*} obj \r\n */\r\nfunction isMap(obj) {\r\n if (obj instanceof Map) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * 深拷贝\r\n * @param {*} obj 拷贝对象(object or array)\r\n * @param {*} cache 缓存数组\r\n */\r\nconst deepClone = function (obj, cache = []) {\r\n // typeof [] => 'object'\r\n // typeof {} => 'object'\r\n if (obj === null || typeof obj !== 'object') {\r\n return obj\r\n }\r\n // 如果传入的对象与缓存的相等, 则递归结束, 这样防止循环\r\n\t/**\r\n\t * 类似下面这种\r\n\t * var a = {b:1}\r\n\t * a.c = a\r\n\t * 资料: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value\r\n\t */\r\n const hit = cache.filter(c => c.original === obj)[0]\r\n if (hit) {\r\n return hit.copy\r\n }\r\n\r\n const copy = Array.isArray(obj) ? [] : {}\r\n // 将copy首先放入cache, 因为我们需要在递归deepCopy的时候引用它\r\n cache.push({\r\n original: obj,\r\n copy\r\n })\r\n Object.keys(obj).forEach(key => {\r\n copy[key] = deepClone(obj[key], cache)\r\n })\r\n\r\n return copy\r\n}\r\n\r\n//生成随机的图表id\r\nfunction generateRandomKey(prefix) {\r\n if (prefix == null) {\r\n prefix = 'chart'\r\n }\r\n\r\n var userAgent = window.navigator.userAgent\r\n .replace(/[^a-zA-Z0-9]/g, '')\r\n .split('')\r\n var mid = ''\r\n for (var i = 0; i < 12; i++) {\r\n mid += userAgent[Math.round(Math.random() * (userAgent.length - 1))]\r\n }\r\n var time = new Date().getTime()\r\n\r\n return prefix + '_' + mid + '_' + time\r\n}\r\n\r\nfunction isdatetime(s) {\r\n if (s == null || s.toString().length < 5) {\r\n return false;\r\n }\r\n else if (checkDateTime(s)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n function checkDateTime(str) {\r\n var reg1 = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})(\\s(\\d{1,2}):(\\d{1,2})(:(\\d{1,2}))?)?$/;\r\n var reg2 = /^(\\d{4})\\/(\\d{1,2})\\/(\\d{1,2})(\\s(\\d{1,2}):(\\d{1,2})(:(\\d{1,2}))?)?$/;\r\n\r\n if (!reg1.test(str) && !reg2.test(str)) {\r\n return false;\r\n }\r\n\r\n var year = RegExp.$1,\r\n month = RegExp.$2,\r\n day = RegExp.$3;\r\n\r\n if (year < 1900) {\r\n return false;\r\n }\r\n\r\n if (month > 12) {\r\n return false;\r\n }\r\n\r\n if (day > 31) {\r\n return false;\r\n }\r\n\r\n if (month == 2) {\r\n if (new Date(year, 1, 29).getDate() == 29 && day > 29) {\r\n return false;\r\n }\r\n else if (new Date(year, 1, 29).getDate() != 29 && day > 28) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nfunction isRealNum(val) {\r\n if (val === \"\" || val == null) {\r\n return false;\r\n }\r\n if (!isNaN(val)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nfunction hasChinaword(s) {\r\n var patrn = /[\\u4E00-\\u9FA5]|[\\uFE30-\\uFFA0]/gi;\r\n if (!patrn.exec(s)) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n}\r\n\r\nfunction isdatatype(s) {\r\n var type = \"string\";\r\n if (isdatetime(s)) {\r\n type = \"date\";\r\n }\r\n else if (!isNaN(parseFloat(s)) && !hasChinaword(s)) {\r\n type = \"num\";\r\n }\r\n return type;\r\n}\r\n\r\n\r\nfunction dataTranspose(getdata) {\r\n var arr = []\r\n for (var c = 0; c < getdata[0].length; c++) {\r\n var a = []\r\n for (var r = 0; r < getdata.length; r++) {\r\n var value = ''\r\n if (getdata[r] != null && getdata[r][c] != null) {\r\n value = getdata[r][c]\r\n }\r\n a.push(value)\r\n }\r\n arr.push(a)\r\n }\r\n return arr\r\n}\r\n\r\nfunction dataChangeOrder(data, order) {\r\n if (data.length == 0 || data.length != order.length) {\r\n return data\r\n }\r\n var ret = []\r\n for (var i = 0; i < data.length; i++) {\r\n ret[order[i]] = data[i]\r\n }\r\n return ret\r\n}\r\n\r\nfunction dataChangeOrderTwo(data, order) {\r\n var ret = []\r\n for (var r = 0; r < data.length; r++) {\r\n var d = data[r]\r\n ret.push(dataChangeOrder(d, order))\r\n }\r\n return ret\r\n}\r\n\r\nfunction getObjType(obj) {\r\n var toString = Object.prototype.toString;\r\n\r\n var map = {\r\n '[object Boolean]': 'boolean',\r\n '[object Number]': 'number',\r\n '[object String]': 'string',\r\n '[object Function]': 'function',\r\n '[object Array]': 'array',\r\n '[object Date]': 'date',\r\n '[object RegExp]': 'regExp',\r\n '[object Undefined]': 'undefined',\r\n '[object Null]': 'null',\r\n '[object Object]': 'object'\r\n }\r\n\r\n // if(obj instanceof Element){\r\n // return 'element';\r\n // }\r\n\r\n return map[toString.call(obj)];\r\n}\r\n\r\nfunction getRowColCheck(data) {\r\n //从右下角开始,按照斜角网上遍历,如果非数字格式则取得上一个斜角的行列值。然后分别按行和按列往左遍历,遇到非数字则记0-i为列头或行头\r\n var r = data.length - 1,\r\n c = data[0].length - 1\r\n var r_cal, c_cal\r\n while (r >= 0 && c >= 0) {\r\n var cell = data[r][c]\r\n //cell的可能值,都判断为同数字一样略过,不作为标题\r\n //1.cell = 3;\r\n //2.cell = {v:3}\r\n //3.cell = {}\r\n //4.cell = \"\"\r\n //5.cell.v = \"\"\r\n if (\r\n cell === null ||\r\n isRealNum(cell) ||\r\n (getObjType(cell) == 'object' && isRealNum(cell.v)) ||\r\n (getObjType(cell) == 'object' &&\r\n getObjType(cell.v) == 'undefined') ||\r\n cell === '' ||\r\n cell.v === ''\r\n ) {\r\n if (cell && cell.ct && cell.ct.fa == 'yyyy-MM-dd') {\r\n r_cal = r + 1\r\n c_cal = c + 1\r\n break\r\n } else {\r\n r_cal = r--\r\n c_cal = c--\r\n }\r\n } else {\r\n if (r == data.length - 1 && c == data[0].length - 1) {\r\n r_cal = r\r\n c_cal = c\r\n } else {\r\n r_cal = r + 1\r\n c_cal = c + 1\r\n }\r\n break\r\n }\r\n }\r\n\r\n var rowcheck = { exits: false, range: [0, 0] } //默认取第一行,让设计界面的check可以有值\r\n if (r_cal > 0) {\r\n for (var i = r_cal; i >= 0; i--) {\r\n var cell = data[i][c_cal]\r\n if (\r\n cell === null ||\r\n isRealNum(cell) ||\r\n (getObjType(cell) == 'object' && isRealNum(cell.v)) ||\r\n (getObjType(cell) == 'object' &&\r\n getObjType(cell.v) == 'undefined') ||\r\n cell === '' ||\r\n cell.v === ''\r\n ) {\r\n } else {\r\n rowcheck.exits = true\r\n rowcheck.range = [0, i]\r\n break\r\n }\r\n }\r\n }\r\n\r\n var colcheck = { exits: false, range: [0, 0] } //默认取第一列,让设计界面的check可以有值\r\n if (c_cal > 0) {\r\n for (var i = c_cal; i >= 0; i--) {\r\n var cell = data[r_cal][i]\r\n if (\r\n cell === null ||\r\n isRealNum(cell) ||\r\n (getObjType(cell) == 'object' && isRealNum(cell.v)) ||\r\n (getObjType(cell) == 'object' &&\r\n getObjType(cell.v) == 'undefined') ||\r\n cell === '' ||\r\n cell.v === ''\r\n ) {\r\n if (cell && cell.ct && cell.ct.fa == 'yyyy-MM-dd') {\r\n colcheck.exits = true\r\n colcheck.range = [0, i]\r\n break\r\n }\r\n } else {\r\n colcheck.exits = true\r\n colcheck.range = [0, i]\r\n break\r\n }\r\n }\r\n }\r\n\r\n //处理行标题和列标签为整个数据的时候,把标题去除,只用作内容\r\n if (rowcheck.range[1] + 1 == data.length) {\r\n rowcheck = { exits: false, range: [0, 0] }\r\n }\r\n if (colcheck.range[1] + 1 == data[0].length) {\r\n colcheck = { exits: false, range: [0, 0] }\r\n }\r\n // console.dir([rowcheck, colcheck])\r\n return [rowcheck, colcheck]\r\n}\r\n\r\nfunction getRangeSplitArray(\r\n chartData,\r\n rangeArray,\r\n rangeColCheck,\r\n rangeRowCheck\r\n) {\r\n var rangeSplitArray = {};\r\n //生成类似excel的图表选区\r\n if (rangeArray.length > 1) {\r\n //上左、上右、下左、下右\r\n rangeSplitArray = {\r\n title: { row: [0, 0], column: [0, 0] },\r\n rowtitle: { row: [0, 0], column: [1, chartData[0].length - 1] },\r\n coltitle: { row: [1, chartData.length - 1], column: [0, 0] },\r\n content: {\r\n row: [1, chartData.length - 1],\r\n column: [1, chartData[0].length - 1]\r\n },\r\n type: \"multi\",\r\n range: rangeArray\r\n };\r\n }\r\n\r\n //转置\r\n //处理规则:根据不转置的情况,变换取值范围,coltitle和rowtitle交换,内部row和column交换,content的row和column交换,最后在getChartDataCache中转置整个区域数据时候取值时候即可取到正确范围的数据\r\n // if(rangeConfigCheck){\r\n // \t//上左、上右、下左、下右\r\n // \tif (rangeColCheck.exits && rangeRowCheck.exits) {\r\n // \t\trangeSplitArray = {\r\n // \t\t\t\"title\": { column: rangeRowCheck.range, row: rangeColCheck.range },\r\n // \t\t\t\"coltitle\": { column: rangeRowCheck.range, row: [rangeColCheck.range[1] + 1, chartData[0].length - 1] },\r\n // \t\t\t\"rowtitle\": { column: [rangeRowCheck.range[1] + 1, chartData.length - 1], row: rangeColCheck.range },\r\n // \t\t\t\"content\": { column: [rangeRowCheck.range[1] + 1, chartData.length - 1], row: [rangeColCheck.range[1] + 1, chartData[0].length - 1] }, type: \"normal\", range: rangeArray[0]\r\n // \t\t};\r\n // \t}\r\n // \t//左、右,没有行标题\r\n // \telse if (rangeColCheck.exits) {\r\n // \t\trangeSplitArray = {\r\n // \t\t\t\"title\": null,\r\n // \t\t\t\"coltitle\": null,\r\n // \t\t\t\"rowtitle\": { row: [0, chartData.length - 1], column: rangeColCheck.range },\r\n // \t\t\t\"content\": { row: [0, chartData.length - 1], column: [rangeColCheck.range[1] + 1, chartData[0].length - 1] }, type: \"leftright\", range: rangeArray[0] };\r\n // \t}\r\n // \t//上、下,没有列标题\r\n // \telse if (rangeRowCheck.exits) {\r\n // \t\trangeSplitArray = {\r\n // \t\t\t\"title\": null,\r\n // \t\t\t\"coltitle\": { row: rangeRowCheck.range, column: [0, chartData[0].length - 1] },\r\n // \t\t\t\"rowtitle\": null,\r\n // \t\t\t\"content\": { row: [rangeRowCheck.range[1] + 1, chartData.length - 1], column: [0, chartData[0].length - 1] }, type: \"topbottom\", range: rangeArray[0] };\r\n // \t}\r\n // \t//无标题,纯数据没有标题\r\n // \telse {\r\n // \t\trangeSplitArray = {\r\n // \t\t\t\"title\": null,\r\n // \t\t\t\"coltitle\": null,\r\n // \t\t\t\"rowtitle\": null,\r\n // \t\t\t\"content\": { row: [0, chartData.length - 1], column: [0, chartData[0].length - 1] }, type: \"contentonly\", range: rangeArray[0] };\r\n // \t}\r\n // }else{ //不转置\r\n //上左、上右、下左、下右\r\n if (rangeColCheck.exits && rangeRowCheck.exits) {\r\n rangeSplitArray = {\r\n title: { row: rangeRowCheck.range, column: rangeColCheck.range },\r\n rowtitle: {\r\n row: rangeRowCheck.range,\r\n column: [rangeColCheck.range[1] + 1, chartData[0].length - 1]\r\n },\r\n coltitle: {\r\n row: [rangeRowCheck.range[1] + 1, chartData.length - 1],\r\n column: rangeColCheck.range\r\n },\r\n content: {\r\n row: [rangeRowCheck.range[1] + 1, chartData.length - 1],\r\n column: [rangeColCheck.range[1] + 1, chartData[0].length - 1]\r\n },\r\n type: \"normal\",\r\n range: rangeArray[0]\r\n };\r\n }\r\n //左、右,没有行标题\r\n else if (rangeColCheck.exits) {\r\n //处理\"content\":如果列标题的列数等于整个数据的列数,则没有内容\r\n rangeSplitArray = {\r\n title: null,\r\n rowtitle: null,\r\n coltitle: {\r\n row: [0, chartData.length - 1],\r\n column: rangeColCheck.range\r\n },\r\n content: {\r\n row: [0, chartData.length - 1],\r\n column: [rangeColCheck.range[1] + 1, chartData[0].length - 1]\r\n },\r\n type: \"leftright\",\r\n range: rangeArray[0]\r\n };\r\n }\r\n //上、下,没有列标题\r\n else if (rangeRowCheck.exits) {\r\n //处理\"content\":如果行标题的行数等于整个数据的行数,则没有内容\r\n rangeSplitArray = {\r\n title: null,\r\n rowtitle: {\r\n row: rangeRowCheck.range,\r\n column: [0, chartData[0].length - 1]\r\n },\r\n coltitle: null,\r\n content: {\r\n row: [rangeRowCheck.range[1] + 1, chartData.length - 1],\r\n column: [0, chartData[0].length - 1]\r\n },\r\n type: \"topbottom\",\r\n range: rangeArray[0]\r\n };\r\n }\r\n //无标题,纯数据没有标题\r\n else {\r\n rangeSplitArray = {\r\n title: null,\r\n rowtitle: null,\r\n coltitle: null,\r\n content: {\r\n row: [0, chartData.length - 1],\r\n column: [0, chartData[0].length - 1]\r\n },\r\n type: \"contentonly\",\r\n range: rangeArray[0]\r\n };\r\n }\r\n // }\r\n // console.dir(rangeSplitArray)\r\n return rangeSplitArray;\r\n}\r\n\r\n//处理qk格式的数据返回原始值,###########需要完善日期获取############。\r\nfunction getChartCellData(r, c, d) {\r\n var value = null\r\n // if (luckysheet != null && luckysheet.getcellvalue != null) {\r\n // value = luckysheet.getcellvalue(r, c, d)\r\n // } else {\r\n var cell = d[r][c]\r\n if (cell != null) {\r\n if (cell.v != null) {\r\n value = cell.v\r\n } else {\r\n value = cell\r\n }\r\n }\r\n // }\r\n //处理undefined\r\n if (value == undefined) {\r\n value = ''\r\n }\r\n return value\r\n}\r\n\r\nfunction getChartDataCache(\r\n chartData,\r\n rangeSplitArray,\r\n product,\r\n type,\r\n style,\r\n rangeConfigCheck\r\n) {\r\n var ret = {}\r\n if (\r\n type == 'line' ||\r\n type == 'column' ||\r\n type == 'area' ||\r\n type == 'scatter' ||\r\n type == 'bar' ||\r\n type == 'pie' ||\r\n type == 'radar' ||\r\n type == 'funnel' ||\r\n type == 'gauge' ||\r\n type == 'map'\r\n ) {\r\n //转置\r\n if (rangeConfigCheck) {\r\n if (rangeSplitArray.type == 'normal') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //取原数据标签及列标题 用作X轴\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle != null) {\r\n ret.title = {\r\n //标题不变\r\n text: getChartCellData(\r\n rangeSA.title.row[0],\r\n rangeSA.title.column[0],\r\n chartData\r\n )\r\n }\r\n\r\n for (var c = rtitle.column[0]; c <= rtitle.column[1]; c++) {\r\n var value = ''\r\n for (var r = rtitle.row[0]; r <= rtitle.row[1]; r++) {\r\n value += '\\n' + getChartCellData(r, c, chartData) //使用X轴处理方式\r\n }\r\n value = value.substr(1, value.length)\r\n if (product == 'highcharts') {\r\n value = value.replace(/\\n/g, '<br/>')\r\n }\r\n rtitleData.push(value)\r\n }\r\n ret.xAxis = rtitleData\r\n }\r\n\r\n //取x轴以及行标题 用作数据标签\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle != null) {\r\n for (var r = ctitle.row[0]; r <= ctitle.row[1]; r++) {\r\n var value = ''\r\n for (var c = ctitle.column[0]; c <= ctitle.column[1]; c++) {\r\n value += ' ' + getChartCellData(r, c, chartData)\r\n }\r\n ctitleData.push(value.substr(1, value.length))\r\n }\r\n ret.label = ctitleData\r\n }\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var row = []\r\n var i = 0\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (c == content.column[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n }\r\n //左、右,行标题用系列1、系列2、系列3 等样式表示\r\n else if (rangeSplitArray.type == 'leftright') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //取x轴以及行标题 用作数据标签\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle != null) {\r\n for (var r = ctitle.row[0]; r <= ctitle.row[1]; r++) {\r\n var value = ''\r\n for (var c = ctitle.column[0]; c <= ctitle.column[1]; c++) {\r\n value += ' ' + getChartCellData(r, c, chartData)\r\n }\r\n ctitleData.push(value.substr(1, value.length))\r\n }\r\n ret.label = ctitleData\r\n }\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var row = []\r\n var i = 0\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (c == content.column[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n\r\n //取原数据标签及列标题 用作X轴\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle == null) {\r\n ret.title = {\r\n //标题不变\r\n text: '图表标题' //标题直接使用 \"图表标题\"\r\n }\r\n\r\n for (var c = 0; c <= content.column[1] - content.column[0]; c++) {\r\n rtitleData.push(c + 1) //列标题用1、2、3 表示\r\n }\r\n ret.xAxis = rtitleData\r\n }\r\n }\r\n //上、下,列标题用1、2、3等样式表示\r\n else if (rangeSplitArray.type == 'topbottom') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //取原数据标签及列标题 用作X轴\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle != null) {\r\n ret.title = {\r\n //标题不变\r\n text: '图表标题' //标题直接使用 \"图表标题\"\r\n }\r\n\r\n for (var c = rtitle.column[0]; c <= rtitle.column[1]; c++) {\r\n var value = ''\r\n for (var r = rtitle.row[0]; r <= rtitle.row[1]; r++) {\r\n value += '\\n' + getChartCellData(r, c, chartData) //使用X轴处理方式\r\n }\r\n value = value.substr(1, value.length)\r\n if (product == 'highcharts') {\r\n value = value.replace(/\\n/g, '<br/>')\r\n }\r\n rtitleData.push(value)\r\n }\r\n ret.xAxis = rtitleData\r\n }\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var row = []\r\n var i = 0\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (c == content.column[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n\r\n //取x轴以及行标题 用作数据标签\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle == null) {\r\n for (var r = 0; r <= content.row[1] - content.row[0]; r++) {\r\n ctitleData.push('系列' + (r + 1)) //用系列1、系列2、系列3 样式表示\r\n }\r\n ret.label = ctitleData\r\n }\r\n }\r\n //无标题,行标题用系列1、系列2、系列3样式表示,列标题用1、2、3 样式表示\r\n else if (rangeSplitArray.type == 'contentonly') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var row = []\r\n var i = 0\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (c == content.column[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n\r\n //取原数据标签及列标题 用作X轴\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle == null) {\r\n ret.title = {\r\n //标题不变\r\n text: '图表标题' //标题直接使用 \"图表标题\"\r\n }\r\n\r\n for (var c = 0; c <= content.column[1] - content.column[0]; c++) {\r\n rtitleData.push(c + 1) //列标题用1、2、3 表示\r\n }\r\n ret.xAxis = rtitleData\r\n }\r\n\r\n //取x轴以及行标题 用作数据标签\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle == null) {\r\n for (var r = 0; r <= content.row[1] - content.row[0]; r++) {\r\n ctitleData.push('系列' + (r + 1)) //用系列1、系列2、系列3 样式表示\r\n }\r\n ret.label = ctitleData\r\n }\r\n }\r\n } else {\r\n //不转置\r\n if (rangeSplitArray.type == 'normal') {\r\n var rangeSA = rangeSplitArray\r\n //数据标签及列标题\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n\r\n if (rtitle != null) {\r\n for (var c = rtitle.column[0]; c <= rtitle.column[1]; c++) {\r\n var value = ''\r\n for (var r = rtitle.row[0]; r <= rtitle.row[1]; r++) {\r\n value += ' ' + getChartCellData(r, c, chartData)\r\n }\r\n rtitleData.push(value.substr(1, value.length))\r\n }\r\n ret.label = rtitleData\r\n }\r\n\r\n //x轴以及行标题\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle != null) {\r\n for (var r = ctitle.row[0]; r <= ctitle.row[1]; r++) {\r\n var value = ''\r\n for (var c = ctitle.column[0]; c <= ctitle.column[1]; c++) {\r\n value += '\\n' + getChartCellData(r, c, chartData)\r\n }\r\n value = value.substr(1, value.length)\r\n if (product == 'highcharts') {\r\n value = value.replace(/\\n/g, '<br/>')\r\n }\r\n ctitleData.push(value)\r\n }\r\n // 饼图x轴数据,散点图X轴数据不一样\r\n // if (type != 'pie') {\r\n ret.xAxis = ctitleData\r\n // } else if (type == 'pie') {\r\n // ret.pieName = ctitleData\r\n // }\r\n }\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var row = []\r\n var i = 0\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (r == content.row[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n }\r\n //左、右,行标题用系列1、系列2、系列3 等样式表示\r\n else if (rangeSplitArray.type == 'leftright') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //x轴以及行标题\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle != null) {\r\n for (var r = ctitle.row[0]; r <= ctitle.row[1]; r++) {\r\n var value = ''\r\n for (var c = ctitle.column[0]; c <= ctitle.column[1]; c++) {\r\n value += '\\n' + getChartCellData(r, c, chartData)\r\n }\r\n value = value.substr(1, value.length)\r\n if (product == 'highcharts') {\r\n value = value.replace(/\\n/g, '<br/>')\r\n }\r\n ctitleData.push(value)\r\n }\r\n ret.xAxis = ctitleData\r\n }\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var row = []\r\n var i = 0\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (r == content.row[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n\r\n //数据标签及列标题\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle == null) {\r\n ret.title = {\r\n text: '图表标题' //标题直接使用 \"图表标题\"\r\n }\r\n\r\n for (var c = 0; c <= content.column[1] - content.column[0]; c++) {\r\n rtitleData.push('系列' + (c + 1)) //行标题用系列1、系列2、系列3 样式表示\r\n }\r\n ret.label = rtitleData\r\n }\r\n }\r\n //上、下,列标题用1、2、3等样式表示\r\n else if (rangeSplitArray.type == 'topbottom') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //数据标签及列标题\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle != null) {\r\n ret.title = {\r\n text: '图表标题' //标题直接使用 \"图表标题\"\r\n }\r\n\r\n for (var c = rtitle.column[0]; c <= rtitle.column[1]; c++) {\r\n var value = ''\r\n for (var r = rtitle.row[0]; r <= rtitle.row[1]; r++) {\r\n value += ' ' + getChartCellData(r, c, chartData)\r\n }\r\n rtitleData.push(value.substr(1, value.length))\r\n }\r\n ret.label = rtitleData\r\n }\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var row = []\r\n var i = 0\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (r == content.row[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n\r\n //x轴以及行标题\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle == null) {\r\n for (var r = 0; r <= content.row[1] - content.row[0]; r++) {\r\n ctitleData.push(r + 1) //列标题用1、2、3 表示\r\n }\r\n ret.xAxis = ctitleData\r\n }\r\n }\r\n //无标题,行标题用系列1、系列2、系列3样式表示,列标题用1、2、3 样式表示\r\n else if (rangeSplitArray.type == 'contentonly') {\r\n var rangeSA = rangeSplitArray\r\n\r\n //系列series的数据\r\n var content = rangeSA.content,\r\n contentData = []\r\n if (content != null) {\r\n var series_tpye = {}\r\n for (var r = content.row[0]; r <= content.row[1]; r++) {\r\n var row = []\r\n var i = 0\r\n for (var c = content.column[0]; c <= content.column[1]; c++) {\r\n var value = getChartCellData(r, c, chartData)\r\n row.push(value)\r\n //######需要再细化时间、数字、字符的判断#####\r\n if (r == content.row[0]) {\r\n series_tpye[i++] = isdatatype(value)\r\n }\r\n }\r\n contentData.push(row)\r\n }\r\n ret.series = contentData\r\n //用于在界面上显示系列的格式符号\r\n ret.series_tpye = series_tpye\r\n }\r\n\r\n //数据标签及列标题\r\n var rtitle = rangeSA.rowtitle,\r\n rtitleData = []\r\n if (rtitle == null) {\r\n ret.title = {\r\n text: '图表标题' //标题直接使用 \"图表标题\"\r\n }\r\n\r\n for (var c = 0; c <= content.column[1] - content.column[0]; c++) {\r\n rtitleData.push('系列' + (c + 1)) //用系列1、系列2、系列3 样式表示\r\n }\r\n ret.label = rtitleData\r\n }\r\n\r\n //x轴以及行标题\r\n var ctitle = rangeSA.coltitle,\r\n ctitleData = []\r\n if (ctitle == null) {\r\n for (var r = 0; r <= content.row[1] - content.row[0]; r++) {\r\n ctitleData.push(r + 1) //列标题用1、2、3 表示\r\n }\r\n ret.xAxis = ctitleData\r\n }\r\n }\r\n }\r\n }\r\n\r\n return ret\r\n}\r\n\r\nfunction getChartDataSeriesOrder(len) {\r\n var ret = {}\r\n ret.length = len\r\n for (var i = 0; i < len; i++) {\r\n ret[i] = i\r\n }\r\n return ret\r\n}\r\n\r\nfunction addDataToOption(\r\n defaultOptionIni,\r\n chartDataCache,\r\n chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n chartData\r\n) {\r\n\r\n if (\r\n !!chartDataCache.xAxis && chartType != 'bar'\r\n ) {\r\n //由于配置可能来自已经让用户配置过的项,所以为了不丢失选项,更新数据的时候需要进行判断。如果是象限数据为空、象限数据与需要更新的数据大小不一致,则全量更新。否则深入到每一项进行更新。以下同\r\n if (\r\n defaultOptionIni.axis.xAxisDown.data == null ||\r\n defaultOptionIni.axis.xAxisDown.data.length == 0 ||\r\n defaultOptionIni.axis.xAxisDown.data.length != chartDataCache.xAxis.length\r\n ) {\r\n defaultOptionIni.axis.xAxisDown.data = chartDataCache.xAxis\r\n\r\n } else {\r\n for (var i = 0; i < defaultOptionIni.axis.xAxisDown.data.length; i++) {\r\n var cell = defaultOptionIni.axis.xAxisDown.data[i]\r\n if (cell instanceof Object) {\r\n cell.value = chartDataCache.xAxis[i]\r\n } else {\r\n defaultOptionIni.axis.xAxisDown.data[i] = chartDataCache.xAxis[i]\r\n }\r\n }\r\n }\r\n defaultOptionIni.axis.xAxisDown.type = 'category'\r\n defaultOptionIni.axis.yAxisLeft.type = 'value'\r\n }\r\n\r\n if (\r\n chartPro == 'echarts' && chartType == 'bar'\r\n ) {\r\n if (\r\n defaultOptionIni.axis.yAxisLeft.data == null ||\r\n defaultOptionIni.axis.yAxisLeft.data.length == 0 ||\r\n defaultOptionIni.axis.yAxisLeft.data.length != chartDataCache.xAxis.length\r\n ) {\r\n defaultOptionIni.axis.yAxisLeft.data = chartDataCache.xAxis\r\n } else {\r\n for (var i = 0; i < defaultOptionIni.axis.yAxisLeft.data.length; i++) {\r\n var cell = defaultOptionIni.axis.yAxisLeft.data[i]\r\n if (cell instanceof Object) {\r\n cell.value = chartDataCache.xAxis[i]\r\n } else {\r\n defaultOptionIni.axis.yAxisLeft.data[i] = chartDataCache.xAxis[i]\r\n }\r\n }\r\n }\r\n defaultOptionIni.axis.yAxisLeft.type = 'category'\r\n defaultOptionIni.axis.xAxisDown.type = 'value'\r\n }\r\n\r\n if (!!chartDataCache.series) {\r\n\r\n // console.dir(chartDataCache)\r\n var seriesData = dataTranspose(\r\n dataChangeOrderTwo(chartDataCache.series, chartDataSeriesOrder)\r\n )\r\n\r\n var legendData = dataChangeOrder(\r\n chartDataCache.label,\r\n chartDataSeriesOrder\r\n )\r\n defaultOptionIni.legend.data = legendData\r\n defaultOptionIni.seriesData = seriesData\r\n\r\n // echarts默认所需初始数据格式\r\n if (chartType == 'pie') {\r\n transformPie(defaultOptionIni, chartDataCache, seriesData, legendData, chartPro, chartType, chartStyle)\r\n\r\n\r\n\r\n\r\n // console.dir(defaultOptionIni)\r\n } else if (chartType == 'line' || chartType == 'area' || chartType == 'bar' || chartType == 'column') {\r\n transformCommon(defaultOptionIni, seriesData, legendData, chartPro, chartType, chartStyle)\r\n }\r\n }\r\n\r\n return defaultOptionIni\r\n}\r\n\r\n// transform common chart\r\nfunction transformCommon(defaultOptionIni, seriesData, legendData, chartPro, chartType, chartStyle) {\r\n if (defaultOptionIni.series.length != seriesData.length) {\r\n defaultOptionIni.series = []\r\n }\r\n\r\n for (var i = 0; i < seriesData.length; i++) {\r\n if (defaultOptionIni.series[i] == null) {\r\n defaultOptionIni.series[i] = initCommon(defaultOptionIni.series[i], seriesData[i], legendData[i], chartPro, chartType, chartStyle)\r\n } else {\r\n defaultOptionIni.series[i] = editCommon(defaultOptionIni.series[i], seriesData[i], legendData[i], chartPro, chartType, chartStyle)\r\n }\r\n }\r\n\r\n}\r\n\r\n// 初始化图表\r\nfunction initCommon(series, data, legendData, product, type, style) {\r\n series = {\r\n itemStyle: deepCopy(baseComponent.item),\r\n lineStyle: deepCopy(baseComponent.lineStyle),\r\n data,\r\n type,\r\n name: legendData,\r\n markPoint: {\r\n data: []\r\n },\r\n markLine: {\r\n data: []\r\n },\r\n markArea: {\r\n data: []\r\n }\r\n }\r\n let actions = new Map([\r\n ['line', initLine],\r\n ['area', initArea],\r\n ['bar', initBar],\r\n ['column', initColumn]\r\n ])\r\n return actions.get(type)(series, data, legendData, product, type, style)\r\n}\r\n\r\n// 初始化折现图series\r\nfunction initLine(series, data, legendData, product, type, style) {\r\n if (style == 'smooth') {\r\n series.smooth = true\r\n }\r\n if (style == 'label') {\r\n series.label = {\r\n show: true,\r\n formatter: '{c}',\r\n fontSize: 10,\r\n distance: 1\r\n }\r\n }\r\n return series\r\n}\r\n\r\n// 初始化面积图\r\nfunction initArea(series, data, legendData, product, type, style) {\r\n series.type = 'line'\r\n series.areaStyle = {\r\n normal: {}\r\n }\r\n if (style == 'stack') {\r\n series.stack = '示例'\r\n }\r\n return series\r\n}\r\n\r\n// 初始化柱状图\r\nfunction initColumn(series, data, legendData, product, type, style) {\r\n series.type = 'bar'\r\n if (style == 'stack') {\r\n series.stack = '示例'\r\n }\r\n return series\r\n}\r\n\r\n// 初始化条形图\r\nfunction initBar(series, data, legendData, product, type, style) {\r\n if (style == 'stack') {\r\n series.stack = '示例'\r\n }\r\n return series\r\n}\r\n\r\n// 编辑图表\r\nfunction editCommon(series, data, legendData, product, type, style) {\r\n if (\r\n series.data == null ||\r\n series.data.length == 0 ||\r\n series.data.length != data.length\r\n ) {\r\n series.data = data\r\n series.name = legendData\r\n series.type = type\r\n } else {\r\n for (var a = 0; a < series.data.length; a++) {\r\n var cell = series.data[a]\r\n if (cell instanceof Object) {\r\n cell.value = data[a]\r\n } else {\r\n series.data[a] = data[a]\r\n }\r\n }\r\n series.name = legendData\r\n series.type = type\r\n }\r\n let actions = new Map([\r\n ['line', editLine],\r\n ['area', editArea],\r\n ['bar', editBar],\r\n ['column', editColumn]\r\n ])\r\n return actions.get(type)(series, data, legendData, product, type, style)\r\n}\r\n\r\n// 编辑折线图\r\nfunction editLine(series, data, legendData, product, type, style) {\r\n return series\r\n}\r\n\r\nfunction editArea(series, data, legendData, product, type, style) {\r\n series.type = 'line'\r\n return series\r\n}\r\n\r\nfunction editBar(series, data, legendData, product, type, style) {\r\n return series\r\n}\r\n\r\nfunction editColumn(series, data, legendData, product, type, style) {\r\n series.type = 'bar'\r\n return series\r\n}\r\n\r\n// 饼图series\r\nfunction transformPie(defaultOptionIni, chartDataCache, seriesData, legendData, chartPro, chartType, chartStyle) {\r\n defaultOptionIni.legend.data = []\r\n // 图例data结构改动,变为对象形式\r\n for (var i = 0; i < chartDataCache.xAxis.length; i++) {\r\n defaultOptionIni.legend.data.push({\r\n name: chartDataCache.xAxis[i],\r\n textStyle: { color: null },\r\n value: seriesData[0][i]\r\n })\r\n }\r\n\r\n for (var i = 0; i < seriesData.length; i++) {\r\n if (i > 0) {\r\n return\r\n }\r\n if (defaultOptionIni.series[i] == null) {\r\n defaultOptionIni.series[i] = initPie(defaultOptionIni.series[i], chartDataCache, seriesData[i], legendData[i], chartPro, chartType, chartStyle)\r\n } else {\r\n defaultOptionIni.series[i] = editPie(defaultOptionIni.series[i], chartDataCache, seriesData[i], legendData[i], chartPro, chartType, chartStyle)\r\n }\r\n }\r\n}\r\n\r\n// 初始化饼图\r\nfunction initPie(series, chartDataCache, seriesData, legendData, product, type, style) {\r\n let seriesObj = {\r\n name: legendData,\r\n type: 'pie',\r\n radius: ['0%', '75%'],\r\n data: [],\r\n dataLabels: {},\r\n seLabel: {},\r\n seLine: {}\r\n }\r\n\r\n for (let j = 0; j < seriesData.length; j++) {\r\n let value\r\n let name\r\n if (seriesData[j] > 0) {\r\n value = seriesData[j]\r\n name = chartDataCache.xAxis[j]\r\n } else if (seriesData[j] <= 0) {\r\n value = ''\r\n name = ''\r\n }\r\n seriesObj.data.push({\r\n value: value,\r\n name: name,\r\n label: {},\r\n labelLine: {\r\n lineStyle: {}\r\n },\r\n itemStyle: {}\r\n })\r\n }\r\n series = seriesObj\r\n series.roseType = false\r\n\r\n // 分离型饼图\r\n if (style == 'split') {\r\n for (var j = 0; j < series.data.length; j++) {\r\n series.data[j].selected = 'true'\r\n series.data[j].selectedOffset = 5\r\n }\r\n }\r\n // 圆环饼图\r\n if (style == 'ring') {\r\n series.radius = ['50%', '85%']\r\n series.avoidLabelOverlap = false\r\n series.label = {\r\n normal: {\r\n show: true,\r\n position: 'outside'\r\n },\r\n emphasis: {\r\n show: true,\r\n textStyle: {\r\n fontSize: '16',\r\n fontWeight: 'bold'\r\n }\r\n }\r\n }\r\n }\r\n return series\r\n}\r\n\r\n// 编辑饼图\r\nfunction editPie(series, chartDataCache, seriesData, legendData, chartPro, chartType, chartStyle) {\r\n series.name = legendData\r\n\r\n for (let j = 0; j < seriesData.length; j++) {\r\n let value\r\n let name\r\n if (seriesData[j] > 0) {\r\n value = +seriesData[j]\r\n name = chartDataCache.xAxis[j]\r\n } else if (seriesData[j] <= 0) {\r\n value = ''\r\n name = ''\r\n }\r\n\r\n series.data[j].name = name\r\n series.data[j].value = value\r\n series.data[j].y = value\r\n\r\n // 如果原来的数据长度小于所选的数据长度\r\n if (series.data.length < seriesData.length) {\r\n for (let k = series.data.length; k < seriesData.length; k++) {\r\n series.data.push({\r\n value,\r\n name,\r\n y: value\r\n })\r\n }\r\n }\r\n // 如果原来的数据长度大于所选的数据长度,多余的部分数据为0,name为空\r\n if (series.data.length > seriesData.length) {\r\n for (let i = seriesData.length; i < series.data.length; i++) {\r\n series.data[i].value = ''\r\n series.data[i].y = ''\r\n series.data[i].name = ''\r\n }\r\n }\r\n }\r\n return series\r\n}\r\n\r\nexport {\r\n deepCopy,\r\n deepClone,\r\n generateRandomKey,\r\n getRowColCheck,\r\n getRangeSplitArray,\r\n getChartDataCache,\r\n getChartDataSeriesOrder,\r\n addDataToOption,\r\n transformCommon\r\n}","import { transTextStyle } from '@/utils/chartUtil'\r\n/**\r\n * echarts title transform\r\n * \r\n */\r\nconst transformTitle = function (chartAllTypeArray, title, subtitle) {\r\n const chartPro = chartAllTypeArray[0];\r\n const chartType = chartAllTypeArray[1];\r\n const chartStyle = chartAllTypeArray[2];\r\n\r\n // init object\r\n let resultTitle = {\r\n show: true,\r\n text: '',\r\n left: 'auto',\r\n top: 'auto',\r\n textStyle: {\r\n fontSize: 12,\r\n color: '#333',\r\n fontFamily: 'sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#aaa',\r\n fontFamily: 'sans-serif',\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n },\r\n subtext: '',\r\n itemGap: 10\r\n };\r\n\r\n // title.show\r\n resultTitle.show = title.show;\r\n\r\n // title.text\r\n resultTitle.text = title.text;\r\n resultTitle.subtext = subtitle.text\r\n\r\n // textstyle\r\n transTextStyle(title , resultTitle , 'textStyle' , 'text')\r\n transTextStyle(subtitle , resultTitle , 'subtextStyle' , 'subtext')\r\n\r\n // title.position\r\n if (title.position.value === 'custom') {\r\n resultTitle.left = title.position.offsetX + '%'\r\n resultTitle.top = title.position.offsetY + '%'\r\n } else {\r\n resultTitle.left = title.position.value.split('-')[0]\r\n resultTitle.top = title.position.value.split('-')[1]\r\n }\r\n\r\n // title.itemgap\r\n let actions = new Map([\r\n ['auto' , 10],\r\n ['far' , 30],\r\n ['close' , 5],\r\n ['normal' , 20],\r\n ['custom' , subtitle.distance.cusGap]\r\n ])\r\n resultTitle.itemGap = actions.get(subtitle.distance.value)\r\n\r\n return resultTitle\r\n}\r\n\r\nexport default transformTitle","/**\r\n * legend转换\r\n */\r\nimport { transTextStyle } from '@/utils/chartUtil'\r\nconst transformLegend = function(chartAllTypeArray , legend){\r\n let resLegend = {\r\n show: true,\r\n textStyle: {\r\n color: '#333',\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n fontSize: 12\r\n },\r\n left: 'auto',\r\n top: 'auto',\r\n orient: 'horizontal',\r\n itemWidth: 25,\r\n itemGap: 10\r\n }\r\n // legend.show\r\n resLegend.show = legend.show\r\n // legend.textStyle\r\n transTextStyle(legend , resLegend , 'textStyle')\r\n // legend.position\r\n if (legend.position.value === 'custom') {\r\n resLegend.left = legend.position.offsetX \r\n resLegend.top = legend.position.offsetY \r\n } else {\r\n resLegend.left = legend.position.value.split('-')[0]\r\n resLegend.top = legend.position.value.split('-')[1]\r\n }\r\n // legend.orient\r\n resLegend.orient = legend.position.direction\r\n // legend.itemWidth\r\n let width = new Map([\r\n ['auto' , 25],\r\n ['big' , 45],\r\n ['medium' , 18],\r\n ['small' , 10],\r\n ['custom' , legend.width.cusSize]\r\n ])\r\n let height = new Map([\r\n ['auto' , 14],\r\n ['big' , 30],\r\n ['medium' , 20],\r\n ['small' , 10],\r\n ['custom' , legend.height.cusSize]\r\n ])\r\n resLegend.itemWidth = width.get(legend.width.value)\r\n resLegend.itemHeight = height.get(legend.height.value)\r\n // legend.itemGap\r\n let distance = new Map([\r\n ['auto' , 10],\r\n ['far' , 20],\r\n ['near' , 5],\r\n ['general' , 15],\r\n ['custom' , legend.distance.cusGap]\r\n ])\r\n resLegend.itemGap = distance.get(legend.distance.value) \r\n\r\n return resLegend\r\n}\r\n\r\nexport default transformLegend","/**\r\n * 鼠标提示转换\r\n */\r\nimport { transTextStyle , floatTool} from '@/utils/chartUtil'\r\nconst transformTooltip = function (chartAllTypeArray, tooltip) {\r\n const resTooltip = {\r\n show: true,\r\n trigger: 'item',\r\n textStyle: {\r\n color: '#fff',\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n fontSize: 14\r\n },\r\n backgroundColor: 'rgba(50,50,50,0.7)',\r\n triggerOn: 'mousemove|click',\r\n axisPointer: {\r\n type: 'line',\r\n lineStyle: {\r\n type: 'solid',\r\n width: 1,\r\n color: '#555'\r\n }\r\n },\r\n position: 'right'\r\n }\r\n // tooltip.show\r\n resTooltip.show = tooltip.show\r\n // 触发类型\r\n resTooltip.trigger = tooltip.triggerType\r\n // 触发条件\r\n resTooltip.triggerOn = tooltip.triggerOn\r\n // 文字样式\r\n transTextStyle(tooltip, resTooltip, 'textStyle')\r\n // 背景色\r\n resTooltip.backgroundColor = tooltip.backgroundColor\r\n // 指示器配置\r\n resTooltip.axisPointer.lineStyle = tooltip.axisPointer.style\r\n resTooltip.axisPointer.type = tooltip.axisPointer.type\r\n // 提示框位置\r\n resTooltip.position = tooltip.position == 'auto' ? null : tooltip.position\r\n // 提示formatter\r\n let format = tooltip.format\r\n let formatter1 = function (params) {\r\n console.dir(params)\r\n let str = params[0].name + \"<br>\"\r\n for (var i = 0; i < params.length; i++) {\r\n if(format[params[i].seriesIndex].digit == 'auto'){\r\n params[i].value = floatTool.multiply(+params[i].value,format[params[i].seriesIndex].ratio) + format[params[i].seriesIndex].suffix\r\n }else{\r\n params[i].value = floatTool.multiply(+params[i].value,format[params[i].seriesIndex].ratio).toFixed(format[params[i].seriesIndex].digit) + format[params[i].seriesIndex].suffix\r\n }\r\n\r\n str += \"<div style='border-radius: 50%;display: inline-block;width: 10px; height: 10px; background-color:\" + params[i].color + \"'></div>&nbsp;\" + params[i].seriesName + \":&nbsp;&nbsp;\" + params[i].value + \"<br>\";\r\n }\r\n return str\r\n }\r\n\r\n // let formatter2 = function (params) {\r\n // if(format[params.seriesIndex].digit == 'auto'){\r\n // params.value = floatTool.multiply(+params.value, format[params.seriesIndex].ratio) + format[params.seriesIndex].suffix\r\n // }else{\r\n // params.value = floatTool.multiply(+params.value, format[params.seriesIndex].ratio).toFixed(format[params.seriesIndex].digit) + format[params.seriesIndex].suffix\r\n // }\r\n // let str = params.seriesName + \"<br>&nbsp;&nbsp;&nbsp;&nbsp;\" + params.name + \":&nbsp;&nbsp;\" + params.value;\r\n // return str\r\n // }\r\n\r\n // let actions = new Map([\r\n // ['item' , formatter2],\r\n // ['axis' , formatter1]\r\n // ]) \r\n // resTooltip.formatter = actions.get(resTooltip.trigger)\r\n\r\n return resTooltip\r\n}\r\n\r\nexport default transformTooltip","/**\r\n * 坐标轴转换\r\n */\r\nimport $ from 'jquery'\r\nimport { transTextStyle , transLineStyle , floatTool ,transCustom } from '@/utils/chartUtil'\r\nimport { deepCopy } from '@/utils/util'\r\nconst transformAxis = function(chartAllTypeArray , axis){\r\n let chartType = chartAllTypeArray[1]\r\n let option = {\r\n show: true,\r\n name: '',\r\n nameTextStyle: {\r\n color: '#333',\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n fontSize: 12\r\n },\r\n nameLocation: 'end',\r\n inverse: false,\r\n interval: null,\r\n nameGap: 15,\r\n nameRotate: null,\r\n axisLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#333',\r\n width: 1\r\n }\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid',\r\n color: null\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n rotate: 0,\r\n formatter: null\r\n },\r\n min: null,\r\n max: null,\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#ccc',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n interval: 'auto'\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']\r\n }\r\n }\r\n }\r\n\r\n let transAxis = function(res , ori){\r\n let origin = deepCopy(axis[ori])\r\n res = $.extend(res , origin)\r\n // axis.show\r\n res.show = origin.show\r\n // axis.name\r\n res.name = origin.title.text\r\n // axis.label\r\n transTextStyle(origin.title , res , 'nameTextStyle')\r\n res.nameLocation = origin.title.fzPosition\r\n // 反向坐标轴\r\n res.inverse = origin.inverse\r\n // 坐标轴间隔个数\r\n if(res.type != 'value'){\r\n res.interval = origin.tickLabel.optimize\r\n }\r\n // 标题与轴线距离\r\n res.nameGap = origin.title.rotate\r\n // 刻度线设置\r\n res.axisLine.show = origin.tickLine.show\r\n res.axisLine.lineStyle = transLineStyle(origin.tickLine.width , origin.tickLine.color)\r\n // 刻度设置\r\n res.axisTick.show = origin.tick.show\r\n res.axisTick.lineStyle = transLineStyle(origin.tick.width , origin.tick.color)\r\n res.axisTick.inside = origin.tick.position == 'inside' ? true : false\r\n res.axisTick.length = origin.tick.length\r\n // 刻度标签\r\n res.axisLabel.show = origin.tickLabel.show\r\n res.axisLabel.rotate = origin.tickLabel.rotate\r\n // 标签formatter\r\n if((chartType == 'bar' && ori.slice(0,1) == 'x') || (chartType != 'bar' && ori.slice(0,1) == 'y')){\r\n res.min = origin.tickLabel.min\r\n res.max = origin.tickLabel.max\r\n res.axisLabel.formatter = function(params){\r\n if(origin.tickLabel.digit == 'auto'){\r\n return origin.tickLabel.prefix + floatTool.multiply(+params , origin.tickLabel.ratio) + origin.tickLabel.suffix\r\n }else{\r\n return origin.tickLabel.prefix + floatTool.multiply(+params , origin.tickLabel.ratio).toFixed(origin.tickLabel.digit) + origin.tickLabel.suffix\r\n }\r\n }\r\n }else{\r\n res.axisLabel.formatter = function(params){\r\n return origin.tickLabel.prefix + params + origin.tickLabel.suffix\r\n }\r\n }\r\n // 网格线\r\n res.splitLine.show = origin.netLine.show\r\n res.splitLine.lineStyle = transLineStyle(origin.netLine.width , origin.netLine.color , origin.netLine.type)\r\n res.splitLine.interval = transCustom(origin.netLine.interval.value , origin.netLine.interval.cusNumber)\r\n // 网格区域\r\n res.splitArea.show = origin.netArea.show\r\n res.splitArea.interval = transCustom(origin.netArea.interval.value , origin.netArea.interval.cusNumber)\r\n res.splitArea.areaStyle.color = [origin.netArea.colorOne == 'auto' ? 'rgba(250,250,250,0.3)' : origin.netArea.colorOne , origin.netArea.colorTwo == 'auto' ? 'rgba(200,200,200,0.3)' : origin.netArea.colorTwo]\r\n\r\n return res\r\n }\r\n\r\n return {\r\n xAxisUp: transAxis(deepCopy(option) , 'xAxisUp'),\r\n xAxisDown: transAxis(deepCopy(option) , 'xAxisDown'),\r\n yAxisLeft: transAxis(deepCopy(option) , 'yAxisLeft'),\r\n yAxisRight: transAxis(deepCopy(option) , 'yAxisRight')\r\n }\r\n}\r\n\r\nexport default transformAxis","/**\r\n * echarts转换引擎\r\n */\r\n\r\nimport transformTitle from './transformTitle'\r\nimport transformLegend from './transformLegend'\r\nimport transformTooltip from './transformTooltip'\r\nimport transformAxis from './transformAxis'\r\n\r\nconst echartsEngine = function (chartOptions) {\r\n //TODO: chartOptions 转换后导出\r\n\r\n const chartAllTypeArray = chartOptions.chartAllType.split('|');\r\n const chartPro = chartAllTypeArray[0];\r\n const chartType = chartAllTypeArray[1];\r\n const chartStyle = chartAllTypeArray[2];\r\n\r\n const titleOption = transformTitle(chartAllTypeArray , chartOptions.defaultOption.title,chartOptions.defaultOption.subtitle)\r\n // const configOption = transformConfig(chartOptions.defaultOption.config);\r\n const legendOption = transformLegend(chartAllTypeArray , chartOptions.defaultOption.legend)\r\n const tooltipOption = transformTooltip(chartAllTypeArray , chartOptions.defaultOption.tooltip)\r\n const axisOption = transformAxis(chartAllTypeArray , chartOptions.defaultOption.axis)\r\n axisOption.xAxisDown.data = chartOptions.defaultOption.axis.xAxisDown.data\r\n\r\n const option = {\r\n title:{...titleOption},\r\n tooltip: {\r\n ...tooltipOption\r\n },\r\n legend: {\r\n ...legendOption\r\n },\r\n xAxis: [{\r\n ...axisOption.xAxisDown\r\n },{\r\n ...axisOption.xAxisUp\r\n }],\r\n yAxis: [\r\n axisOption.yAxisLeft,\r\n axisOption.yAxisRight\r\n ],\r\n series: chartOptions.defaultOption.series ? chartOptions.defaultOption.series : [{\r\n name: '销量',\r\n type: 'bar',\r\n data: [5, 20, 36, 10, 10, 20]\r\n }]\r\n };\r\n // 饼图去掉XY轴\r\n if(chartType == 'pie'){\r\n delete option.xAxis\r\n delete option.yAxis\r\n }\r\n\r\n console.dir(option)\r\n console.dir(JSON.stringify(option))\r\n return option;\r\n}\r\n\r\nexport default echartsEngine","export const ENABLE_ACTIVE = 'ENABLE_ACTIVE';\r\nexport const DISABLE_ACTIVE = 'DISABLE_ACTIVE';\r\n\r\nexport const ENABLE_DRAGGABLE = 'ENABLE_DRAGGABLE';\r\nexport const DISABLE_DRAGGABLE = 'DISABLE_DRAGGABLE';\r\n\r\nexport const ENABLE_RESIZABLE = 'ENABLE_RESIZABLE';\r\nexport const DISABLE_RESIZABLE = 'DISABLE_RESIZABLE';\r\n\r\nexport const ENABLE_PARENT_LIMITATION = 'ENABLE_PARENT_LIMITATION';\r\nexport const DISABLE_PARENT_LIMITATION = 'DISABLE_PARENT_LIMITATION';\r\n\r\nexport const ENABLE_SNAP_TO_GRID = 'ENABLE_SNAP_TO_GRID';\r\nexport const DISABLE_SNAP_TO_GRID = 'DISABLE_SNAP_TO_GRID';\r\n\r\nexport const ENABLE_ASPECT = 'ENABLE_ASPECT';\r\nexport const DISABLE_ASPECT = 'DISABLE_ASPECT';\r\n\r\nexport const ENABLE_X_AXIS = 'ENABLE_X_AXIS';\r\nexport const ENABLE_Y_AXIS = 'ENABLE_Y_AXIS';\r\nexport const ENABLE_BOTH_AXIS = 'ENABLE_BOTH_AXIS';\r\nexport const ENABLE_NONE_AXIS = 'ENABLE_NONE_AXIS';\r\n\r\nexport const CHANGE_ZINDEX = 'CHANGE_ZINDEX';\r\n\r\nexport const CHANGE_MINW = 'CHANGE_MINW';\r\nexport const CHANGE_MINH = 'CHANGE_MINH';\r\n\r\nexport const CHANGE_WIDTH = 'CHANGE_WIDTH';\r\nexport const CHANGE_HEIGHT = 'CHANGE_HEIGHT';\r\nexport const CHANGE_TOP = 'CHANGE_TOP';\r\nexport const CHANGE_LEFT = 'CHANGE_LEFT';\r\n\r\nexport default {\r\n ENABLE_ACTIVE,\r\n DISABLE_ACTIVE,\r\n ENABLE_DRAGGABLE,\r\n DISABLE_DRAGGABLE,\r\n ENABLE_RESIZABLE,\r\n DISABLE_RESIZABLE,\r\n ENABLE_PARENT_LIMITATION,\r\n DISABLE_PARENT_LIMITATION,\r\n ENABLE_SNAP_TO_GRID,\r\n DISABLE_SNAP_TO_GRID,\r\n ENABLE_ASPECT,\r\n DISABLE_ASPECT,\r\n ENABLE_X_AXIS,\r\n ENABLE_Y_AXIS,\r\n ENABLE_NONE_AXIS,\r\n ENABLE_BOTH_AXIS,\r\n CHANGE_ZINDEX,\r\n CHANGE_MINW,\r\n CHANGE_MINH,\r\n CHANGE_WIDTH,\r\n CHANGE_HEIGHT,\r\n CHANGE_TOP,\r\n CHANGE_LEFT\r\n}","import types, {CHANGE_ZINDEX} from './mutation-types';\r\n\r\nexport default {\r\n setActive({commit, state}, {id}) {\r\n for (let i = 0, l = state.rects.length; i < l; i++) {\r\n if (i === id) {\r\n commit(types.ENABLE_ACTIVE, i);\r\n continue;\r\n }\r\n\r\n commit(types.DISABLE_ACTIVE, i);\r\n }\r\n },\r\n unsetActive({commit}, {id}) {\r\n commit(types.DISABLE_ACTIVE, id);\r\n },\r\n\r\n toggleDraggable({commit, state}, {id}) {\r\n if (!state.rects[id].draggable) {\r\n commit(types.ENABLE_DRAGGABLE, id);\r\n } else {\r\n commit(types.DISABLE_DRAGGABLE, id);\r\n }\r\n },\r\n\r\n toggleResizable({commit, state}, {id}) {\r\n if (!state.rects[id].resizable) {\r\n commit(types.ENABLE_RESIZABLE, id);\r\n } else {\r\n commit(types.DISABLE_RESIZABLE, id);\r\n }\r\n },\r\n\r\n toggleParentLimitation({commit, state}, {id}) {\r\n if (!state.rects[id].parentLim) {\r\n commit(types.ENABLE_PARENT_LIMITATION, id);\r\n } else {\r\n commit(types.DISABLE_PARENT_LIMITATION, id);\r\n }\r\n },\r\n\r\n toggleSnapToGrid({commit, state}, {id}) {\r\n if (!state.rects[id].snapToGrid) {\r\n commit(types.ENABLE_SNAP_TO_GRID, id);\r\n } else {\r\n commit(types.DISABLE_SNAP_TO_GRID, id);\r\n }\r\n },\r\n\r\n setAspect({commit}, {id}) {\r\n commit(types.ENABLE_ASPECT, id);\r\n },\r\n unsetAspect({commit}, {id}) {\r\n commit(types.DISABLE_ASPECT, id);\r\n },\r\n\r\n setWidth({commit}, {id, width}) {\r\n commit(types.CHANGE_WIDTH, {id, width});\r\n },\r\n\r\n setHeight({commit}, {id, height}) {\r\n commit(types.CHANGE_HEIGHT, {id, height});\r\n },\r\n\r\n setTop({commit}, {id, top}) {\r\n commit(types.CHANGE_TOP, {id, top});\r\n },\r\n\r\n setLeft({commit}, {id, left}) {\r\n commit(types.CHANGE_LEFT, {id, left});\r\n },\r\n\r\n changeXLock({commit, state}, {id}) {\r\n switch (state.rects[id].axis) {\r\n case 'both':\r\n commit(types.ENABLE_Y_AXIS, id);\r\n break;\r\n case 'x':\r\n commit(types.ENABLE_NONE_AXIS, id);\r\n break;\r\n case 'y':\r\n commit(types.ENABLE_BOTH_AXIS, id);\r\n break;\r\n case 'none':\r\n commit(types.ENABLE_X_AXIS, id);\r\n break;\r\n }\r\n },\r\n\r\n changeYLock({commit, state}, {id}) {\r\n switch (state.rects[id].axis) {\r\n case 'both':\r\n commit(types.ENABLE_X_AXIS, id);\r\n break;\r\n case 'x':\r\n commit(types.ENABLE_BOTH_AXIS, id);\r\n break;\r\n case 'y':\r\n commit(types.ENABLE_NONE_AXIS, id);\r\n break;\r\n case 'none':\r\n commit(types.ENABLE_Y_AXIS, id);\r\n break;\r\n }\r\n },\r\n\r\n changeZToBottom({commit, state}, {id}) {\r\n if (state.rects[id].zIndex === 1) {\r\n return\r\n }\r\n\r\n commit(types.CHANGE_ZINDEX, {id, zIndex: 1});\r\n\r\n for (let i = 0, l = state.rects.length; i < l; i++) {\r\n if (i !== id) {\r\n if(state.rects[i].zIndex === state.rects.length){\r\n continue\r\n }\r\n commit(types.CHANGE_ZINDEX, {id: i, zIndex: state.rects[i].zIndex + 1});\r\n }\r\n }\r\n },\r\n\r\n changeZToTop({commit, state}, {id}) {\r\n if (state.rects[id].zIndex === state.rects.length) {\r\n return\r\n }\r\n\r\n commit(types.CHANGE_ZINDEX, {id, zIndex: state.rects.length});\r\n\r\n for (let i = 0, l = state.rects.length; i < l; i++) {\r\n if (i !== id) {\r\n if(state.rects[i].zIndex === 1){\r\n continue\r\n }\r\n commit(types.CHANGE_ZINDEX, {id: i, zIndex: state.rects[i].zIndex - 1});\r\n }\r\n }\r\n },\r\n\r\n setMinWidth({commit}, {id, width}) {\r\n commit(types.CHANGE_MINW, {id, minw:width});\r\n },\r\n\r\n setMinHeight({commit}, {id, height}) {\r\n commit(types.CHANGE_MINH, {id, minh:height});\r\n }\r\n};\r\n","export default {\r\n getActive: state => {\r\n for (let i = 0, l = state.rects.length; i < l; i++) {\r\n let rect = state.rects[i];\r\n\r\n if (rect.active) {\r\n return i;\r\n }\r\n }\r\n return null;\r\n }\r\n}","import {\r\n ENABLE_ACTIVE,\r\n DISABLE_ACTIVE,\r\n ENABLE_ASPECT,\r\n DISABLE_ASPECT,\r\n ENABLE_DRAGGABLE,\r\n DISABLE_DRAGGABLE,\r\n ENABLE_RESIZABLE,\r\n DISABLE_RESIZABLE,\r\n ENABLE_PARENT_LIMITATION,\r\n DISABLE_PARENT_LIMITATION,\r\n ENABLE_SNAP_TO_GRID,\r\n DISABLE_SNAP_TO_GRID,\r\n CHANGE_ZINDEX,\r\n ENABLE_BOTH_AXIS,\r\n ENABLE_X_AXIS,\r\n ENABLE_Y_AXIS,\r\n ENABLE_NONE_AXIS,\r\n CHANGE_HEIGHT,\r\n CHANGE_LEFT,\r\n CHANGE_MINH,\r\n CHANGE_MINW,\r\n CHANGE_TOP,\r\n CHANGE_WIDTH\r\n} from './mutation-types';\r\n\r\nexport default {\r\n [ENABLE_ACTIVE](state, id) {\r\n state.rects[id].active = true;\r\n },\r\n [DISABLE_ACTIVE](state, id) {\r\n state.rects[id].active = false;\r\n },\r\n\r\n [ENABLE_ASPECT](state, id) {\r\n state.rects[id].aspectRatio = true;\r\n },\r\n [DISABLE_ASPECT](state, id) {\r\n state.rects[id].aspectRatio = false;\r\n },\r\n\r\n [ENABLE_DRAGGABLE](state, id) {\r\n state.rects[id].draggable = true;\r\n },\r\n [DISABLE_DRAGGABLE](state, id) {\r\n state.rects[id].draggable = false;\r\n },\r\n\r\n [ENABLE_RESIZABLE](state, id) {\r\n state.rects[id].resizable = true;\r\n },\r\n [DISABLE_RESIZABLE](state, id) {\r\n state.rects[id].resizable = false;\r\n },\r\n\r\n [ENABLE_SNAP_TO_GRID](state, id) {\r\n state.rects[id].snapToGrid = true;\r\n },\r\n [DISABLE_SNAP_TO_GRID](state, id) {\r\n state.rects[id].snapToGrid = false;\r\n },\r\n\r\n [ENABLE_BOTH_AXIS](state, id) {\r\n state.rects[id].axis = 'both';\r\n },\r\n [ENABLE_NONE_AXIS](state, id) {\r\n state.rects[id].axis = 'none';\r\n },\r\n [ENABLE_X_AXIS](state, id) {\r\n state.rects[id].axis = 'x';\r\n },\r\n [ENABLE_Y_AXIS](state, id) {\r\n state.rects[id].axis = 'y';\r\n },\r\n\r\n [ENABLE_PARENT_LIMITATION](state, id) {\r\n state.rects[id].parentLim = true;\r\n },\r\n [DISABLE_PARENT_LIMITATION](state, id) {\r\n state.rects[id].parentLim = false;\r\n },\r\n\r\n [CHANGE_ZINDEX](state, payload) {\r\n state.rects[payload.id].zIndex = payload.zIndex;\r\n },\r\n\r\n [CHANGE_HEIGHT](state, payload) {\r\n state.rects[payload.id].height = payload.height;\r\n },\r\n\r\n [CHANGE_WIDTH](state, payload) {\r\n state.rects[payload.id].width = payload.width;\r\n },\r\n\r\n [CHANGE_TOP](state, payload) {\r\n state.rects[payload.id].top = payload.top;\r\n },\r\n\r\n [CHANGE_LEFT](state, payload) {\r\n state.rects[payload.id].left = payload.left;\r\n },\r\n\r\n [CHANGE_MINH](state, payload) {\r\n\r\n state.rects[payload.id].minh = payload.minh;\r\n },\r\n\r\n [CHANGE_MINW](state, payload) {\r\n state.rects[payload.id].minw = payload.minw;\r\n }\r\n};","export default {\r\n 'rects': [\r\n {\r\n 'width': 200,\r\n 'height': 150,\r\n 'top': 10,\r\n 'left': 10,\r\n 'draggable': true,\r\n 'resizable': true,\r\n 'minw': 10,\r\n 'minh': 10,\r\n 'axis': 'both',\r\n 'parentLim': true,\r\n 'snapToGrid': false,\r\n 'aspectRatio': false,\r\n 'zIndex': 1,\r\n 'color': '#EF9A9A',\r\n 'active': false,\r\n 'chart_id': 'chart_5erpeWc1eWal_1596092336315',\r\n },\r\n {\r\n 'width': 200,\r\n 'height': 150,\r\n 'top': 10,\r\n 'left': 220,\r\n 'draggable': true,\r\n 'resizable': true,\r\n 'minw': 10,\r\n 'minh': 10,\r\n 'axis': 'both',\r\n 'parentLim': true,\r\n 'snapToGrid': false,\r\n 'aspectRatio': false,\r\n 'zIndex': 2,\r\n 'color': '#AED581',\r\n 'active': false,\r\n 'chart_id': 'chart_5erpeWc1eWal_15960973336319',\r\n },\r\n {\r\n 'width': 200,\r\n 'height': 150,\r\n 'top': 170,\r\n 'left': 10,\r\n 'draggable': true,\r\n 'resizable': true,\r\n 'minw': 10,\r\n 'minh': 10,\r\n 'axis': 'both',\r\n 'parentLim': true,\r\n 'snapToGrid': false,\r\n 'aspectRatio': false,\r\n 'zIndex': 3,\r\n 'color': '#81D4FA',\r\n 'active': false,\r\n 'chart_id': 'chart_5erpeWc1eWal_1596093236310',\r\n }\r\n ]\r\n};\r\n","import actions from './actions';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\nimport state from './state';\r\n\r\nexport default {\r\n namespaced: true,\r\n actions,\r\n getters,\r\n mutations,\r\n state\r\n};\r\n","// use vuex modules\r\n\r\n//chart display box\r\nconst chartRender = {\r\n state: () => ({\r\n //show or hide\r\n isShow: true\r\n }),\r\n getters: {\r\n\r\n },\r\n mutations: {\r\n\r\n },\r\n actions: {\r\n\r\n }\r\n}\r\n\r\nexport default chartRender","export const ENABLE_ACTIVE = 'ENABLE_ACTIVE';\r\nexport const DISABLE_ACTIVE = 'DISABLE_ACTIVE';\r\nexport const UPDATE_CHART_ITEM = 'UPDATE_CHART_ITEM';\r\nexport const UPDATE_CHART_ITEM_CHARTLIST = 'UPDATE_CHART_ITEM_CHARTLIST'\r\nexport const UPDATE_CHART_ITEM_ONE = 'UPDATE_CHART_ITEM_ONE'\r\nexport const UPDATE_CHART_ITEM_CHARTLIST_ONE = 'UPDATE_CHART_ITEM_CHARTLIST_ONE'\r\n\r\nexport default {\r\n ENABLE_ACTIVE,\r\n DISABLE_ACTIVE,\r\n UPDATE_CHART_ITEM,\r\n UPDATE_CHART_ITEM_CHARTLIST,\r\n UPDATE_CHART_ITEM_ONE,\r\n UPDATE_CHART_ITEM_CHARTLIST_ONE\r\n}","import types from './mutation-types';\r\n\r\nexport default {\r\n setActive({commit, state}, {id}) {\r\n for (let i = 0, l = state.chartLists.length; i < l; i++) {\r\n if (i === id) {\r\n commit(types.ENABLE_ACTIVE, i);\r\n continue;\r\n }\r\n\r\n commit(types.DISABLE_ACTIVE, i);\r\n }\r\n },\r\n unsetActive({commit}, {id}) {\r\n commit(types.DISABLE_ACTIVE, id);\r\n },\r\n updateChartItem({commit}, updateObj) {\r\n commit(types.UPDATE_CHART_ITEM, updateObj);\r\n },\r\n updateChartItemChartlist({commit} , params){\r\n commit(types.UPDATE_CHART_ITEM_CHARTLIST , params)\r\n },\r\n updateChartItemOne({commit} , item){\r\n commit(types.UPDATE_CHART_ITEM_ONE , item)\r\n },\r\n updateChartItemChartlistOne({commit} , params){\r\n commit(types.UPDATE_CHART_ITEM_CHARTLIST_ONE , params)\r\n }\r\n};","export default {\r\n getActive: state => {\r\n for (let i = 0, l = state.chartLists.length; i < l; i++) {\r\n let chartList = state.chartLists[i];\r\n\r\n if (chartList.active) {\r\n return i;\r\n }\r\n }\r\n return null;\r\n }\r\n}","import {\r\n ENABLE_ACTIVE,\r\n DISABLE_ACTIVE,\r\n UPDATE_CHART_ITEM,\r\n UPDATE_CHART_ITEM_CHARTLIST,\r\n UPDATE_CHART_ITEM_ONE,\r\n UPDATE_CHART_ITEM_CHARTLIST_ONE,\r\n IS_UPDATE\r\n} from './mutation-types';\r\nimport { setChartOptionsByRouter } from '@/utils/chartUtil';\r\nimport $ from 'jquery'\r\n\r\nexport default {\r\n [ENABLE_ACTIVE](state, id) {\r\n // 1. set active\r\n state.chartLists[id].active = true;\r\n\r\n // 2. set current chart index\r\n state.currentChartIndex = id;\r\n },\r\n [DISABLE_ACTIVE](state, id) {\r\n state.chartLists[id].active = false;\r\n },\r\n /**\r\n *根据对象属性的路径, 更新图表子属性的方法\r\n //自定义一种类型'router',updateObj内部也是采用颗粒更新的模式,防止全部替换chartOptions造成的chartsetting内部组件全局重刷\r\n params:{\r\n updateSubObj:{label:{},show:true,...} //子属性新的值\r\n router:'title/label' //属性路径\r\n }\r\n */\r\n [UPDATE_CHART_ITEM](state,params) {\r\n //子组件设置更新到chartOptions上后再更新到fabric组件上\r\n console.info('updateObj', params)\r\n const { router , updateObj } = params\r\n const currentChartOptions = state.chartLists[state.currentChartIndex].chartOptions;\r\n\r\n setChartOptionsByRouter(currentChartOptions,router , updateObj); //更新到子对象\r\n },\r\n /**\r\n * 修改state中chartlist\r\n */\r\n [UPDATE_CHART_ITEM_CHARTLIST](state , params){\r\n let index = state.chartLists.findIndex(item => item.chart_id == params.chart_id)\r\n state.chartLists[index].chartOptions = $.extend(state.chartLists[index].chartOptions , params)\r\n },\r\n /**\r\n * \r\n * 修改state中chartlist中chartoptions的某一项\r\n */\r\n [UPDATE_CHART_ITEM_CHARTLIST_ONE](state , params){\r\n let index = state.chartLists.findIndex(item => item.chart_id == params.chart_id)\r\n state.chartLists[index].chartOptions[params.key] = params.value\r\n },\r\n /**\r\n * 修改state中其他\r\n */\r\n [UPDATE_CHART_ITEM_ONE](state , item){\r\n state[item.key] = item.value\r\n }\r\n};","// import { merge, cloneDeep } from 'lodash';\r\nimport merge from 'lodash/merge';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport { chartOptions } from '@/data/chartJson';\r\n\r\nconst option = {\r\n \"chart_id\": \"chart_5erpeWc1eWal_1596092336315\",\r\n \"active\": true,\r\n \"chartOptions\": {\r\n \"chart_id\": \"chart_5erpeWc1eWal_1596092336315\",\r\n \"chartAllType\": \"echarts|line|default\",\r\n \"chartPro\": \"echarts\",\r\n \"chartType\": \"line\",\r\n \"chartStyle\": \"default\",\r\n \"chartData\": [\r\n [\r\n {\r\n \"v\": \"德国人的\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"德国人的\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"地方当然\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"地方当然\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 1,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"1\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 2,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"2\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"树人\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"树人\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 3,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"3\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 4,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"4\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"多个\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"多个\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 5,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"5\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 6,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"6\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ]\r\n ],\r\n \"rangeArray\": [\r\n {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n ],\r\n \"rangeTxt\": \"J18:L21\",\r\n \"rangeColCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeRowCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeConfigCheck\": false,\r\n \"rangeSplitArray\": {\r\n \"title\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rowtitle\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"coltitle\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"content\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"type\": \"normal\",\r\n \"range\": {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n },\r\n \"chartDataCache\": {\r\n \"label\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ],\r\n \"xAxis\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"series\": [\r\n [\r\n 1,\r\n 2\r\n ],\r\n [\r\n 3,\r\n 4\r\n ],\r\n [\r\n 5,\r\n 6\r\n ]\r\n ],\r\n \"series_tpye\": {\r\n \"0\": \"num\",\r\n \"1\": \"num\"\r\n }\r\n },\r\n \"chartDataSeriesOrder\": {\r\n \"0\": 0,\r\n \"1\": 1,\r\n \"length\": 2\r\n },\r\n \"defaultOption\": {\r\n \"title\": {\r\n \"show\": false,\r\n \"text\": \"默认标题\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50\r\n }\r\n },\r\n \"subtitle\": {\r\n \"show\": false,\r\n \"text\": \"\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 40\r\n }\r\n },\r\n \"config\": {\r\n \"color\": \"transparent\",\r\n \"fontFamily\": \"Sans-serif\",\r\n \"grid\": {\r\n \"value\": \"normal\",\r\n \"top\": 5,\r\n \"left\": 10,\r\n \"right\": 20,\r\n \"bottom\": 10\r\n }\r\n },\r\n \"legend\": {\r\n \"show\": true,\r\n \"selectMode\": \"multiple\",\r\n \"selected\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"isShow\": true\r\n }\r\n ],\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50,\r\n \"direction\": \"horizontal\"\r\n },\r\n \"width\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 25\r\n },\r\n \"height\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 14\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 10\r\n },\r\n \"itemGap\": 10,\r\n \"data\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ]\r\n },\r\n \"tooltip\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"backgroundColor\": \"rgba(50,50,50,0.7)\",\r\n \"triggerOn\": \"mousemove\",\r\n \"triggerType\": \"item\",\r\n \"axisPointer\": {\r\n \"type\": \"line\",\r\n \"style\": {\r\n \"color\": \"#555\",\r\n \"width\": \"normal\",\r\n \"type\": \"solid\"\r\n }\r\n },\r\n \"format\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n }\r\n ],\r\n \"position\": \"auto\"\r\n },\r\n \"axis\": {\r\n \"axisType\": \"xAxisDown\",\r\n \"xAxisUp\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": \"auto\",\r\n \"max\": \"auto\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"axisLine\": {\r\n \"onZero\": false\r\n }\r\n },\r\n \"xAxisDown\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": null,\r\n \"max\": null,\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"data\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"type\": \"category\"\r\n },\r\n \"yAxisLeft\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"type\": \"value\"\r\n },\r\n \"yAxisRight\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n }\r\n }\r\n },\r\n \"series\": [\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"尔尔\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n },\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 2,\r\n 4,\r\n 6\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"地方当然\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n }\r\n ],\r\n \"seriesData\": [\r\n [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n [\r\n 2,\r\n 4,\r\n 6\r\n ]\r\n ]\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n // store all chart objects\r\n chartLists:[\r\n {\r\n \"chart_id\": \"chart_5erpeWc1eWal_1596092336315\",\r\n \"active\": true,\r\n \"chartOptions\": {\r\n \"chart_id\": \"chart_5erpeWc1eWal_1596092336315\",\r\n \"chartAllType\": \"echarts|line|default\",\r\n \"chartPro\": \"echarts\",\r\n \"chartType\": \"line\",\r\n \"chartStyle\": \"default\",\r\n \"chartData\": [\r\n [\r\n {\r\n \"v\": \"德国人的\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"德国人的\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"地方当然\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"地方当然\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 1,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"1\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 2,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"2\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"树人\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"树人\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 3,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"3\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 4,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"4\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"多个\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"多个\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 5,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"5\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 6,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"6\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ]\r\n ],\r\n \"rangeArray\": [\r\n {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n ],\r\n \"rangeTxt\": \"J18:L21\",\r\n \"rangeColCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeRowCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeConfigCheck\": false,\r\n \"rangeSplitArray\": {\r\n \"title\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rowtitle\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"coltitle\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"content\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"type\": \"normal\",\r\n \"range\": {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n },\r\n \"chartDataCache\": {\r\n \"label\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ],\r\n \"xAxis\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"series\": [\r\n [\r\n 1,\r\n 2\r\n ],\r\n [\r\n 3,\r\n 4\r\n ],\r\n [\r\n 5,\r\n 6\r\n ]\r\n ],\r\n \"series_tpye\": {\r\n \"0\": \"num\",\r\n \"1\": \"num\"\r\n }\r\n },\r\n \"chartDataSeriesOrder\": {\r\n \"0\": 0,\r\n \"1\": 1,\r\n \"length\": 2\r\n },\r\n \"defaultOption\": {\r\n \"title\": {\r\n \"show\": false,\r\n \"text\": \"默认标题\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50\r\n }\r\n },\r\n \"subtitle\": {\r\n \"show\": false,\r\n \"text\": \"\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 40\r\n }\r\n },\r\n \"config\": {\r\n \"color\": \"transparent\",\r\n \"fontFamily\": \"Sans-serif\",\r\n \"grid\": {\r\n \"value\": \"normal\",\r\n \"top\": 5,\r\n \"left\": 10,\r\n \"right\": 20,\r\n \"bottom\": 10\r\n }\r\n },\r\n \"legend\": {\r\n \"show\": true,\r\n \"selectMode\": \"multiple\",\r\n \"selected\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"isShow\": true\r\n }\r\n ],\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50,\r\n \"direction\": \"horizontal\"\r\n },\r\n \"width\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 25\r\n },\r\n \"height\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 14\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 10\r\n },\r\n \"itemGap\": 10,\r\n \"data\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ]\r\n },\r\n \"tooltip\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"backgroundColor\": \"rgba(50,50,50,0.7)\",\r\n \"triggerOn\": \"mousemove\",\r\n \"triggerType\": \"item\",\r\n \"axisPointer\": {\r\n \"type\": \"line\",\r\n \"style\": {\r\n \"color\": \"#555\",\r\n \"width\": \"normal\",\r\n \"type\": \"solid\"\r\n }\r\n },\r\n \"format\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n }\r\n ],\r\n \"position\": \"auto\"\r\n },\r\n \"axis\": {\r\n \"axisType\": \"xAxisDown\",\r\n \"xAxisUp\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": \"auto\",\r\n \"max\": \"auto\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"axisLine\": {\r\n \"onZero\": false\r\n }\r\n },\r\n \"xAxisDown\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": null,\r\n \"max\": null,\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"data\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"type\": \"category\"\r\n },\r\n \"yAxisLeft\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"type\": \"value\"\r\n },\r\n \"yAxisRight\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n }\r\n }\r\n },\r\n \"series\": [\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"尔尔\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n },\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 2,\r\n 4,\r\n 6\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"地方当然\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n }\r\n ],\r\n \"seriesData\": [\r\n [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n [\r\n 2,\r\n 4,\r\n 6\r\n ]\r\n ]\r\n }\r\n }\r\n }, {\r\n \"chart_id\": \"chart_5erpeWc1eWal_1596093236310\",\r\n \"active\": true,\r\n \"chartOptions\": {\r\n \"chart_id\": \"chart_5erpeWc1eWal_1596093236310\",\r\n \"chartAllType\": \"echarts|line|default\",\r\n \"chartPro\": \"echarts\",\r\n \"chartType\": \"line\",\r\n \"chartStyle\": \"default\",\r\n \"chartData\": [\r\n [\r\n {\r\n \"v\": \"德国人的\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"德国人的\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"地方当然\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"地方当然\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 1,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"1\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 2,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"2\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"树人\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"树人\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 3,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"3\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 4,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"4\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"多个\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"多个\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 5,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"5\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 6,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"6\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ]\r\n ],\r\n \"rangeArray\": [\r\n {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n ],\r\n \"rangeTxt\": \"J18:L21\",\r\n \"rangeColCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeRowCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeConfigCheck\": false,\r\n \"rangeSplitArray\": {\r\n \"title\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rowtitle\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"coltitle\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"content\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"type\": \"normal\",\r\n \"range\": {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n },\r\n \"chartDataCache\": {\r\n \"label\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ],\r\n \"xAxis\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"series\": [\r\n [\r\n 1,\r\n 2\r\n ],\r\n [\r\n 3,\r\n 4\r\n ],\r\n [\r\n 5,\r\n 6\r\n ]\r\n ],\r\n \"series_tpye\": {\r\n \"0\": \"num\",\r\n \"1\": \"num\"\r\n }\r\n },\r\n \"chartDataSeriesOrder\": {\r\n \"0\": 0,\r\n \"1\": 1,\r\n \"length\": 2\r\n },\r\n \"defaultOption\": {\r\n \"title\": {\r\n \"show\": false,\r\n \"text\": \"默认标题\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50\r\n }\r\n },\r\n \"subtitle\": {\r\n \"show\": false,\r\n \"text\": \"\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 40\r\n }\r\n },\r\n \"config\": {\r\n \"color\": \"transparent\",\r\n \"fontFamily\": \"Sans-serif\",\r\n \"grid\": {\r\n \"value\": \"normal\",\r\n \"top\": 5,\r\n \"left\": 10,\r\n \"right\": 20,\r\n \"bottom\": 10\r\n }\r\n },\r\n \"legend\": {\r\n \"show\": true,\r\n \"selectMode\": \"multiple\",\r\n \"selected\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"isShow\": true\r\n }\r\n ],\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50,\r\n \"direction\": \"horizontal\"\r\n },\r\n \"width\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 25\r\n },\r\n \"height\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 14\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 10\r\n },\r\n \"itemGap\": 10,\r\n \"data\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ]\r\n },\r\n \"tooltip\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"backgroundColor\": \"rgba(50,50,50,0.7)\",\r\n \"triggerOn\": \"mousemove\",\r\n \"triggerType\": \"item\",\r\n \"axisPointer\": {\r\n \"type\": \"line\",\r\n \"style\": {\r\n \"color\": \"#555\",\r\n \"width\": \"normal\",\r\n \"type\": \"solid\"\r\n }\r\n },\r\n \"format\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n }\r\n ],\r\n \"position\": \"auto\"\r\n },\r\n \"axis\": {\r\n \"axisType\": \"xAxisDown\",\r\n \"xAxisUp\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": \"auto\",\r\n \"max\": \"auto\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"axisLine\": {\r\n \"onZero\": false\r\n }\r\n },\r\n \"xAxisDown\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": null,\r\n \"max\": null,\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"data\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"type\": \"category\"\r\n },\r\n \"yAxisLeft\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"type\": \"value\"\r\n },\r\n \"yAxisRight\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n }\r\n }\r\n },\r\n \"series\": [\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"尔尔\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n },\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 2,\r\n 4,\r\n 6\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"地方当然\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n }\r\n ],\r\n \"seriesData\": [\r\n [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n [\r\n 2,\r\n 4,\r\n 6\r\n ]\r\n ]\r\n }\r\n }\r\n }, {\r\n \"chart_id\": \"chart_5erpeWc1eWal_15960973336319\",\r\n \"active\": true,\r\n \"chartOptions\": {\r\n \"chart_id\": \"chart_5erpeWc1eWal_15960973336319\",\r\n \"chartAllType\": \"echarts|line|default\",\r\n \"chartPro\": \"echarts\",\r\n \"chartType\": \"line\",\r\n \"chartStyle\": \"default\",\r\n \"chartData\": [\r\n [\r\n {\r\n \"v\": \"德国人的\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"德国人的\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": \"地方当然\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"地方当然\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"尔尔\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"尔尔\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 1,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"1\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 2,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"2\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"树人\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"树人\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 3,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"3\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 4,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"4\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ],\r\n [\r\n {\r\n \"v\": \"多个\",\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"g\"\r\n },\r\n \"m\": \"多个\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 5,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"5\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n },\r\n {\r\n \"v\": 6,\r\n \"ct\": {\r\n \"fa\": \"General\",\r\n \"t\": \"n\"\r\n },\r\n \"m\": \"6\",\r\n \"bg\": \"rgba(255,255,255)\",\r\n \"bl\": 0,\r\n \"it\": 0,\r\n \"ff\": 1,\r\n \"fs\": 11,\r\n \"fc\": \"rgb(0, 0, 0)\",\r\n \"ht\": 1,\r\n \"vt\": 0\r\n }\r\n ]\r\n ],\r\n \"rangeArray\": [\r\n {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n ],\r\n \"rangeTxt\": \"J18:L21\",\r\n \"rangeColCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeRowCheck\": {\r\n \"exits\": true,\r\n \"range\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rangeConfigCheck\": false,\r\n \"rangeSplitArray\": {\r\n \"title\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"rowtitle\": {\r\n \"row\": [\r\n 0,\r\n 0\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"coltitle\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 0,\r\n 0\r\n ]\r\n },\r\n \"content\": {\r\n \"row\": [\r\n 1,\r\n 3\r\n ],\r\n \"column\": [\r\n 1,\r\n 2\r\n ]\r\n },\r\n \"type\": \"normal\",\r\n \"range\": {\r\n \"row\": [\r\n 17,\r\n 20\r\n ],\r\n \"column\": [\r\n 9,\r\n 11\r\n ],\r\n \"row_focus\": 17,\r\n \"column_focus\": 9,\r\n \"left\": 1077,\r\n \"width\": 140,\r\n \"top\": 357,\r\n \"height\": 31,\r\n \"left_move\": 1077,\r\n \"width_move\": 359,\r\n \"top_move\": 357,\r\n \"height_move\": 94\r\n }\r\n },\r\n \"chartDataCache\": {\r\n \"label\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ],\r\n \"xAxis\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"series\": [\r\n [\r\n 1,\r\n 2\r\n ],\r\n [\r\n 3,\r\n 4\r\n ],\r\n [\r\n 5,\r\n 6\r\n ]\r\n ],\r\n \"series_tpye\": {\r\n \"0\": \"num\",\r\n \"1\": \"num\"\r\n }\r\n },\r\n \"chartDataSeriesOrder\": {\r\n \"0\": 0,\r\n \"1\": 1,\r\n \"length\": 2\r\n },\r\n \"defaultOption\": {\r\n \"title\": {\r\n \"show\": false,\r\n \"text\": \"默认标题\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50\r\n }\r\n },\r\n \"subtitle\": {\r\n \"show\": false,\r\n \"text\": \"\",\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 40\r\n }\r\n },\r\n \"config\": {\r\n \"color\": \"transparent\",\r\n \"fontFamily\": \"Sans-serif\",\r\n \"grid\": {\r\n \"value\": \"normal\",\r\n \"top\": 5,\r\n \"left\": 10,\r\n \"right\": 20,\r\n \"bottom\": 10\r\n }\r\n },\r\n \"legend\": {\r\n \"show\": true,\r\n \"selectMode\": \"multiple\",\r\n \"selected\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"isShow\": true\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"isShow\": true\r\n }\r\n ],\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"position\": {\r\n \"value\": \"left-top\",\r\n \"offsetX\": 40,\r\n \"offsetY\": 50,\r\n \"direction\": \"horizontal\"\r\n },\r\n \"width\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 25\r\n },\r\n \"height\": {\r\n \"value\": \"auto\",\r\n \"cusSize\": 14\r\n },\r\n \"distance\": {\r\n \"value\": \"auto\",\r\n \"cusGap\": 10\r\n },\r\n \"itemGap\": 10,\r\n \"data\": [\r\n \"尔尔\",\r\n \"地方当然\"\r\n ]\r\n },\r\n \"tooltip\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"backgroundColor\": \"rgba(50,50,50,0.7)\",\r\n \"triggerOn\": \"mousemove\",\r\n \"triggerType\": \"item\",\r\n \"axisPointer\": {\r\n \"type\": \"line\",\r\n \"style\": {\r\n \"color\": \"#555\",\r\n \"width\": \"normal\",\r\n \"type\": \"solid\"\r\n }\r\n },\r\n \"format\": [\r\n {\r\n \"seriesName\": \"衣服\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"食材\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n {\r\n \"seriesName\": \"图书\",\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n }\r\n ],\r\n \"position\": \"auto\"\r\n },\r\n \"axis\": {\r\n \"axisType\": \"xAxisDown\",\r\n \"xAxisUp\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": \"auto\",\r\n \"max\": \"auto\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"axisLine\": {\r\n \"onZero\": false\r\n }\r\n },\r\n \"xAxisDown\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示X轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"optimize\": 0,\r\n \"distance\": 0,\r\n \"min\": null,\r\n \"max\": null,\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"data\": [\r\n \"尔尔\",\r\n \"树人\",\r\n \"多个\"\r\n ],\r\n \"type\": \"category\"\r\n },\r\n \"yAxisLeft\": {\r\n \"show\": true,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n },\r\n \"type\": \"value\"\r\n },\r\n \"yAxisRight\": {\r\n \"show\": false,\r\n \"title\": {\r\n \"showTitle\": false,\r\n \"text\": \"\",\r\n \"nameGap\": 15,\r\n \"rotate\": 0,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"fzPosition\": \"end\"\r\n },\r\n \"name\": \"显示Y轴\",\r\n \"inverse\": false,\r\n \"tickLine\": {\r\n \"show\": true,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tick\": {\r\n \"show\": true,\r\n \"position\": \"outside\",\r\n \"length\": 5,\r\n \"width\": 1,\r\n \"color\": \"auto\"\r\n },\r\n \"tickLabel\": {\r\n \"show\": true,\r\n \"label\": {\r\n \"fontSize\": 12,\r\n \"color\": \"#333\",\r\n \"fontFamily\": \"sans-serif\",\r\n \"fontGroup\": [],\r\n \"cusFontSize\": 12\r\n },\r\n \"rotate\": 0,\r\n \"formatter\": {\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\"\r\n },\r\n \"split\": 5,\r\n \"min\": null,\r\n \"max\": null,\r\n \"prefix\": \"\",\r\n \"suffix\": \"\",\r\n \"ratio\": 1,\r\n \"digit\": \"auto\",\r\n \"distance\": 0\r\n },\r\n \"netLine\": {\r\n \"show\": false,\r\n \"width\": 1,\r\n \"type\": \"solid\",\r\n \"color\": \"auto\",\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n }\r\n },\r\n \"netArea\": {\r\n \"show\": false,\r\n \"interval\": {\r\n \"value\": \"auto\",\r\n \"cusNumber\": 0\r\n },\r\n \"colorOne\": \"auto\",\r\n \"colorTwo\": \"auto\"\r\n }\r\n }\r\n },\r\n \"series\": [\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"尔尔\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n },\r\n {\r\n \"itemStyle\": {\r\n \"color\": null,\r\n \"borderColor\": \"#000\",\r\n \"borderType\": \"solid\",\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"color\": null,\r\n \"width\": 1,\r\n \"type\": \"solid\"\r\n },\r\n \"data\": [\r\n 2,\r\n 4,\r\n 6\r\n ],\r\n \"type\": \"line\",\r\n \"name\": \"地方当然\",\r\n \"markPoint\": {\r\n \"data\": []\r\n },\r\n \"markLine\": {\r\n \"data\": []\r\n },\r\n \"markArea\": {\r\n \"data\": []\r\n }\r\n }\r\n ],\r\n \"seriesData\": [\r\n [\r\n 1,\r\n 3,\r\n 5\r\n ],\r\n [\r\n 2,\r\n 4,\r\n 6\r\n ]\r\n ]\r\n }\r\n }\r\n }\r\n ],\r\n // store current chart index\r\n currentChartIndex: null,\r\n // current chart objects, bind to chartSetting component\r\n // currentChart: {},\r\n};","import actions from './actions';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\nimport state from './state';\r\n\r\nexport default {\r\n namespaced: true,\r\n actions,\r\n getters,\r\n mutations,\r\n state\r\n};","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport rect from './modules/rect'\r\nimport chartRender from './modules/chartRender'\r\nimport chartSetting from './modules/chartSetting'\r\n\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store()\r\n\r\nexport { store }\r\n\r\n\r\n\r\nconst debug = process.env.NODE_ENV !== 'production';\r\n\r\nexport default new Vuex.Store({\r\n /**\r\n * Assign the modules to the store\r\n */\r\n modules: {\r\n 'rect': rect,\r\n 'chartRender': chartRender,\r\n 'chartSetting': chartSetting\r\n },\r\n\r\n /**\r\n * If strict mode should be enabled\r\n */\r\n strict: debug\r\n});\r\n","import {\r\n getChartDataCache,\r\n getRowColCheck,\r\n getRangeSplitArray,\r\n getChartDataSeriesOrder,\r\n addDataToOption,\r\n deepCopy,\r\n} from \"../utils/util\";\r\nimport echartsEngine from \"@/utils/echartsEngine/index\";\r\nimport store from \"../store\";\r\n// import highchartsEngine from './highchartsEngine'\r\nconst echarts = require(\"echarts\");\r\n\r\n/**\r\n * update main object's subject attribute by router\r\n * @param {Object} chartOptions main object\r\n * @param {String} router router\r\n * @param {Object} updateObj subject attribute\r\n */\r\nconst setChartOptionsByRouter = function (chartOptions, router, updateObj) {\r\n if (chartOptions == undefined || router == undefined) {\r\n return chartOptions;\r\n }\r\n\r\n let routerArray = router.split(\"/\");\r\n const defaultOption = chartOptions.defaultOption;\r\n\r\n //递归获取内部属性\r\n function deepFind(curObj) {\r\n if (routerArray.length != 0) {\r\n return deepFind(curObj[routerArray.shift()]);\r\n } else {\r\n Object.assign(curObj, updateObj);\r\n return curObj;\r\n }\r\n }\r\n deepFind(defaultOption);\r\n renderChart({ chartOptions: chartOptions });\r\n return chartOptions;\r\n};\r\n\r\n/**\r\n * 渲染图表的方法,拿到store的配置json(对应于chartJson中的数据格式,可能是初始化图表的数据,也可能是后台传输来的特定配置的数据),执行转换引擎后,渲染到图表插件中,独立于vue组件.可用于编辑器和预览端\r\n *\r\n */\r\nconst renderChart = function (renderChartObj, ele) {\r\n let chartOptions = renderChartObj.chartOptions;\r\n let chart_id = chartOptions.chart_id;\r\n // const { chart_id, chartOptions } = renderChartObj;\r\n const chartAllTypeArray = chartOptions.chartAllType.split(\"|\");\r\n const chartPro = chartAllTypeArray[0];\r\n // const container = ele || document.getElementById(chart_id);\r\n const container = document.getElementById(chart_id);\r\n if (!container) return;\r\n\r\n if (chartPro === \"echarts\") {\r\n const options = echartsEngine(chartOptions);\r\n\r\n let chart = echarts.getInstanceByDom(container);\r\n if (chart == null) {\r\n chart = echarts.init(container);\r\n }\r\n\r\n chart.setOption(options, true);\r\n\r\n setTimeout(() => {\r\n echarts.getInstanceById(container.getAttribute(\"_echarts_instance_\")).resize();\r\n }, 0);\r\n }\r\n};\r\n\r\n/**\r\n * textStyle转化\r\n */\r\nconst transTextStyle = function (origin, result, attr, attr1) {\r\n // fontGroup\r\n let fontGroupList = [\"bold\", \"vertical\", \"italic\"];\r\n origin.label.fontGroup.forEach((element) => {\r\n if (fontGroupList.includes(element)) {\r\n switch (element) {\r\n case \"bold\":\r\n result[attr].fontWeight = element;\r\n break;\r\n case \"vertical\":\r\n // TODO: '标题01'\r\n result[attr1] = origin.text.replace(/\\B/g, \"\\n\");\r\n break;\r\n case \"italic\":\r\n result[attr].fontStyle = element;\r\n break;\r\n }\r\n }\r\n });\r\n // fontColor\r\n result[attr].color = origin.label.color;\r\n // fontSize\r\n result[attr].fontSize = transCustom(origin.label.fontSize, origin.label.cusFontSize);\r\n};\r\n\r\n// 解决精度\r\nconst floatTool = (function () {\r\n /*\r\n * 判断obj是否为一个整数\r\n */\r\n function isInteger(obj) {\r\n return Math.floor(obj) === obj;\r\n }\r\n\r\n /*\r\n * 将一个浮点数转成整数,返回整数和倍数。如 3.14 >> 314,倍数是 100\r\n * @param floatNum {number} 小数\r\n * @return {object}\r\n * {times:100, num: 314}\r\n */\r\n function toInteger(floatNum) {\r\n var ret = { times: 1, num: 0 };\r\n\r\n if (isInteger(floatNum)) {\r\n ret.num = floatNum;\r\n return ret;\r\n }\r\n\r\n var strfi = floatNum + \"\";\r\n var dotPos = strfi.indexOf(\".\");\r\n var len = strfi.substr(dotPos + 1).length;\r\n var times = Math.pow(10, len);\r\n var intNum = parseInt(floatNum * times + 0.5, 10);\r\n\r\n ret.times = times;\r\n ret.num = intNum;\r\n\r\n return ret;\r\n }\r\n\r\n /*\r\n * 核心方法,实现加减乘除运算,确保不丢失精度\r\n * 思路:把小数放大为整数(乘),进行算术运算,再缩小为小数(除)\r\n *\r\n * @param a {number} 运算数1\r\n * @param b {number} 运算数2\r\n * @param digits {number} 精度,保留的小数点数,比如 2, 即保留为两位小数\r\n * @param op {string} 运算类型,有加减乘除(add/subtract/multiply/divide)\r\n *\r\n */\r\n function operation(a, b, op) {\r\n var o1 = toInteger(a);\r\n var o2 = toInteger(b);\r\n var n1 = o1.num;\r\n var n2 = o2.num;\r\n var t1 = o1.times;\r\n var t2 = o2.times;\r\n var max = t1 > t2 ? t1 : t2;\r\n var result = null;\r\n\r\n switch (op) {\r\n case \"add\":\r\n if (t1 === t2) {\r\n // 两个小数位数相同\r\n result = n1 + n2;\r\n } else if (t1 > t2) {\r\n // o1 小数位 大于 o2\r\n result = n1 + n2 * (t1 / t2);\r\n } else {\r\n // o1 小数位 小于 o2\r\n result = n1 * (t2 / t1) + n2;\r\n }\r\n\r\n return result / max;\r\n case \"subtract\":\r\n if (t1 === t2) {\r\n result = n1 - n2;\r\n } else if (t1 > t2) {\r\n result = n1 - n2 * (t1 / t2);\r\n } else {\r\n result = n1 * (t2 / t1) - n2;\r\n }\r\n\r\n return result / max;\r\n case \"multiply\":\r\n result = (n1 * n2) / (t1 * t2);\r\n\r\n return result;\r\n case \"divide\":\r\n return (result = (function () {\r\n var r1 = n1 / n2;\r\n var r2 = t2 / t1;\r\n return operation(r1, r2, \"multiply\");\r\n })());\r\n }\r\n }\r\n\r\n // 加减乘除的四个接口\r\n function add(a, b) {\r\n return operation(a, b, \"add\");\r\n }\r\n function subtract(a, b) {\r\n return operation(a, b, \"subtract\");\r\n }\r\n function multiply(a, b) {\r\n return operation(a, b, \"multiply\");\r\n }\r\n function divide(a, b) {\r\n return operation(a, b, \"divide\");\r\n }\r\n\r\n // exports\r\n return {\r\n add: add,\r\n subtract: subtract,\r\n multiply: multiply,\r\n divide: divide,\r\n };\r\n})();\r\n\r\n/**\r\n * lineStyle转化\r\n */\r\nconst transLineStyle = function (width, color, type = \"solid\") {\r\n return {\r\n width,\r\n color,\r\n type,\r\n };\r\n};\r\n\r\n/**\r\n 自定义* custom数据\r\n */\r\nconst transCustom = function (a, b) {\r\n if (a != \"custom\") {\r\n return a;\r\n } else {\r\n return b;\r\n }\r\n};\r\n\r\n// changecharttype\r\nconst changeChangeAllType = function (chart_json, chartAllType) {\r\n var chartID = chart_json.chart_id;\r\n var chart_id = chartID;\r\n\r\n var updateJson = {};\r\n\r\n var chartAllTypeArray = chartAllType.split(\"|\");\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n updateJson.chart_id = chart_id;\r\n updateJson.chartAllType = chartAllType;\r\n\r\n //按照图表类型得到图表的默认设置\r\n var defaultOptionIni = chart_json.defaultOption;\r\n defaultOptionIni.series = [];\r\n\r\n //根据数据集、功能按钮状态、图表类型,得到图表可操作的数据格式,例如:{ \"x\":[], \"y\":[], series:[] },可以按照次格式渲染数据页中的系列和轴控件。\r\n var chartDataCache = getChartDataCache(\r\n chart_json.chartData,\r\n chart_json.rangeSplitArray,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n );\r\n // console.dir(chartDataCache)\r\n updateJson.chartDataCache = chartDataCache;\r\n\r\n //生成默认的系列顺序,默认根据series数组的位置,用户可以在界面上操作更改这个位置。\r\n var chartDataSeriesOrder = getChartDataSeriesOrder(chartDataCache.series[0].length);\r\n updateJson.chartDataSeriesOrder = chartDataSeriesOrder;\r\n\r\n //根据图表的默认设置、图表数据、图表系列顺序,等到一个完整的图表配置串。\r\n var defaultOption = addDataToOption(\r\n defaultOptionIni,\r\n chartDataCache,\r\n chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n chart_json.chartData,\r\n );\r\n\r\n updateJson.defaultOption = defaultOption;\r\n\r\n store.dispatch(\"chartSetting/updateChartItemChartlist\", updateJson);\r\n\r\n renderChart({ chartOptions: updateJson, chart_id: chart_id });\r\n};\r\n\r\n// 行/列标题操作以及转置操作\r\nconst checkCurrentBoxChange = function (chart_id, rangeRowCheck, rangeColCheck, rangeConfigCheck) {\r\n var state = store.state;\r\n\r\n var updateJson = deepCopy(state.chartSetting.chartLists[state.chartSetting.currentChartIndex].chartOptions); //原来的json\r\n updateJson.chart_id = chart_id;\r\n updateJson.rangeRowCheck = rangeRowCheck;\r\n updateJson.rangeColCheck = rangeColCheck;\r\n updateJson.rangeConfigCheck = rangeConfigCheck;\r\n\r\n updateJson.chartData = updateJson.chartData || [];\r\n\r\n updateJson.rangeSplitArray = getRangeSplitArray(\r\n updateJson.chartData,\r\n updateJson.rangeArray,\r\n rangeColCheck,\r\n rangeRowCheck,\r\n );\r\n\r\n var chartAllTypeArray = updateJson.chartAllType.split(\"|\");\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n updateJson.chartDataCache = getChartDataCache(\r\n updateJson.chartData,\r\n updateJson.rangeSplitArray,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n rangeConfigCheck,\r\n ); //处理转置\r\n updateJson.chartDataSeriesOrder = getChartDataSeriesOrder(updateJson.chartDataCache.series[0].length);\r\n\r\n updateJson.defaultOption = addDataToOption(\r\n updateJson.defaultOption,\r\n updateJson.chartDataCache,\r\n updateJson.chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n );\r\n\r\n store.dispatch(\"chartSetting/updateChartItemChartlist\", updateJson);\r\n\r\n renderChart({ chartOptions: updateJson, chart_id: chart_id });\r\n};\r\n\r\n//系列数据顺序变化\r\nconst changeSeriesOrder = function (chart_json, chartDataSeriesOrder) {\r\n if (chart_json == null) {\r\n return;\r\n }\r\n\r\n var chart_id = chart_json.chart_id;\r\n\r\n var chartAllTypeArray = chart_json.chartAllType.split(\"|\");\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n chart_json.defaultOption = addDataToOption(\r\n chart_json.defaultOption,\r\n chart_json.chartDataCache,\r\n chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n );\r\n\r\n store.dispatch(\"chartSetting/updateChartItemChartlist\", chart_json);\r\n renderChart({ chartOptions: chart_json, chart_id: chart_id });\r\n};\r\n\r\nfunction changeChartRange(chart_id, chartData, rangeArray, rangeTxt) {\r\n let index = store.state.chartSetting.chartLists.findIndex((item) => item.chart_id == chart_id);\r\n store.state.chartSetting.currentChartIndex = index;\r\n\r\n var chart_json = store.state.chartSetting.chartLists[index].chartOptions;\r\n\r\n var chartAllType = chart_json.chartAllType;\r\n\r\n var chartAllTypeArray = chartAllType.split(\"|\");\r\n\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n //数据的sheet索引\r\n chart_json.rangeArray = rangeArray;\r\n chart_json.chartData = chartData;\r\n chart_json.rangeTxt = rangeTxt;\r\n\r\n //根据数据集得到按钮状态,rangeColCheck表示首列是否标题,rangeRowCheck表示首行是否标题,rangeConfigCheck表示是否转置。\r\n var rowColCheck = getRowColCheck(chartData);\r\n var rangeRowCheck = rowColCheck[0],\r\n rangeColCheck = rowColCheck[1],\r\n rangeConfigCheck = false;\r\n\r\n // 如果列转置标识,再转为列转置\r\n // rangeColCheck.exits = colExits\r\n\r\n chart_json.rangeColCheck = rangeColCheck;\r\n chart_json.rangeRowCheck = rangeRowCheck;\r\n chart_json.rangeConfigCheck = rangeConfigCheck;\r\n\r\n //按照数据范围文字得到具体数据范围\r\n var rangeSplitArray = getRangeSplitArray(chartData, rangeArray, rangeColCheck, rangeRowCheck);\r\n chart_json.rangeSplitArray = rangeSplitArray;\r\n\r\n //根据数据集、功能按钮状态、图表类型,得到图表可操作的数据格式,例如:{ \"x\":[], \"y\":[], series:[] },可以按照次格式渲染数据页中的系列和轴控件。\r\n var chartDataCache = getChartDataCache(chartData, rangeSplitArray, chartPro, chartType, chartStyle);\r\n chart_json.chartDataCache = chartDataCache;\r\n\r\n //生成默认的系列顺序,默认根据series数组的位置,用户可以在界面上操作更改这个位置。\r\n var chartDataSeriesOrder = getChartDataSeriesOrder(chartDataCache.series[0].length);\r\n chart_json.chartDataSeriesOrder = chartDataSeriesOrder;\r\n\r\n var defaultOptionIni = chart_json.defaultOption;\r\n //根据图表的默认设置、图表数据、图表系列顺序,等到一个完整的图表配置串。\r\n\r\n var defaultOption = addDataToOption(\r\n defaultOptionIni,\r\n chartDataCache,\r\n chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n true,\r\n chartData,\r\n );\r\n\r\n chart_json.defaultOption = defaultOption;\r\n\r\n store.dispatch(\"chartSetting/updateChartItemChartlist\", chart_json);\r\n renderChart({ chartOptions: chart_json, chart_id: chart_id });\r\n}\r\n\r\nfunction changeChartCellData(chart_id, chartData) {\r\n let index = store.state.chartSetting.chartLists.findIndex((item) => item.chart_id == chart_id);\r\n store.state.chartSetting.currentChartIndex = index;\r\n\r\n var chart_json = store.state.chartSetting.chartLists[index].chartOptions;\r\n\r\n var chartAllType = chart_json.chartAllType;\r\n\r\n var chartAllTypeArray = chartAllType.split(\"|\");\r\n\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n //数据的sheet索引\r\n chart_json.chartData = chartData;\r\n\r\n var rangeRowCheck = chart_json.rangeRowCheck;\r\n var rangeColCheck = chart_json.rangeColCheck;\r\n\r\n //按照数据范围文字得到具体数据范围\r\n var rangeSplitArray = getRangeSplitArray(chartData, chart_json.rangeArray, rangeColCheck, rangeRowCheck);\r\n chart_json.rangeSplitArray = rangeSplitArray;\r\n\r\n //根据数据集、功能按钮状态、图表类型,得到图表可操作的数据格式,例如:{ \"x\":[], \"y\":[], series:[] },可以按照次格式渲染数据页中的系列和轴控件。\r\n var chartDataCache = getChartDataCache(chartData, rangeSplitArray, chartPro, chartType, chartStyle);\r\n chart_json.chartDataCache = chartDataCache;\r\n\r\n //��成默认的系列顺序,默认根据series数组的位置,用户可以在界面上操作更改这个位置。\r\n var chartDataSeriesOrder = getChartDataSeriesOrder(chartDataCache.series[0].length);\r\n chart_json.chartDataSeriesOrder = chartDataSeriesOrder;\r\n\r\n var defaultOptionIni = chart_json.defaultOption;\r\n\r\n //根据图表的默认设置、图表数据、图表系列顺序,等到一个完整的图表配置串。\r\n\r\n var defaultOption = addDataToOption(\r\n defaultOptionIni,\r\n chartDataCache,\r\n chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle,\r\n true,\r\n chartData,\r\n );\r\n\r\n chart_json.defaultOption = defaultOption;\r\n\r\n store.dispatch(\"chartSetting/updateChartItemChartlist\", chart_json);\r\n renderChart({ chartOptions: chart_json, chart_id: chart_id });\r\n}\r\n\r\nexport {\r\n setChartOptionsByRouter,\r\n renderChart,\r\n transTextStyle,\r\n floatTool,\r\n transLineStyle,\r\n transCustom,\r\n changeChangeAllType,\r\n checkCurrentBoxChange,\r\n changeSeriesOrder,\r\n changeChartRange,\r\n changeChartCellData,\r\n};\r\n","let obj = {\r\n 'chartSetting': {\r\n data: '数据',\r\n chartType: '图表类型',\r\n transpose: '转置(切换行/列)',\r\n row1: '设选中项第',\r\n row2: '行为标题',\r\n column: '设选中项第',\r\n column: '列为标题',\r\n style: '样式',\r\n echarts: {\r\n line: {\r\n default: '默认折线图',\r\n smooth: '平滑折线图',\r\n label: '带标签的折线图'\r\n },\r\n area: {\r\n default: '默认面积图',\r\n stack: '堆叠面积图'\r\n },\r\n column: {\r\n default: '默认柱状图',\r\n stack: '堆叠柱状图'\r\n },\r\n bar: {\r\n default: '默认条形图',\r\n stack: '堆叠条形图'\r\n },\r\n pie: {\r\n default: '默认饼图',\r\n split: '分离型饼图',\r\n ring: '环形饼图'\r\n }\r\n }\r\n },\r\n 'chartTitle': {\r\n modalName: '标题设置',\r\n show: '显示主标题',\r\n text: '标题内容',\r\n placeholder: '请输入标题内容',\r\n label: '文本样式',\r\n position: '标题位置',\r\n offsetL: '滑动修改左边距偏移量',\r\n offsetT: '滑动修改上边距偏移量'\r\n },\r\n 'chartSubTitle': {\r\n modalName: '副标题设置',\r\n placeholder: '请输入标题内容',\r\n text: '副标题内容',\r\n label: '文本样式',\r\n gap: '主副标题间距',\r\n content: '滑动修改间距'\r\n },\r\n 'chartAxis': {\r\n modalName: 'XY轴设置',\r\n select: '选择坐标轴',\r\n text: '标题内容',\r\n placeholder: '请输入标题内容',\r\n label: '文本样式',\r\n align: '文本对齐方式',\r\n reverse: '反向坐标轴',\r\n content: '滑动修改坐标轴间隔个数',\r\n intenval: '坐标轴间隔个数',\r\n content1: '滑动修改标题与轴线距离',\r\n gap: '标题与轴线距离',\r\n content2: '滑动修改倾斜角度',\r\n title: '倾斜轴标题',\r\n showLine: '显示刻度线',\r\n content3: '滑动修改刻度线宽度',\r\n lineWidth: '刻度线宽度',\r\n lineColor: '刻度线颜色',\r\n showTick: '显示刻度',\r\n position: '刻度位置',\r\n content4: '滑动修改刻度长度',\r\n tickLength: '刻度长度',\r\n content5: '滑动修改刻度宽度',\r\n tickWidth: '刻度宽度',\r\n tickColor: '刻度颜色',\r\n showLabel: '显示刻度标签',\r\n content6: '滑动修改标签倾斜角度',\r\n rotate: '倾斜标签',\r\n content7: '请输入刻度最小值',\r\n min: '刻度最小值',\r\n content8: '请输入刻度最大值且最大值不能小于最小值',\r\n max: '刻度最大值',\r\n ratio: '数值缩放比例',\r\n digit: '小数位数',\r\n content9: '请输入标签前缀',\r\n prefix: '标签前缀',\r\n content10: '请输入标签后缀',\r\n suffix: '标签后缀',\r\n showNet: '显示网格线',\r\n content11: '滑动修改网格线宽度',\r\n netWidth: '网格线宽度',\r\n netType: '网格线类型',\r\n netColor: '网格线颜色',\r\n netInterval: '网格线分割间隔数',\r\n content12: '滑动修改间隔数',\r\n showArea: '显示网格区域',\r\n areaInterval: '网格区域分割间隔数',\r\n area1: '网格区域第一颜色',\r\n area2: '网格区域第二颜色'\r\n },\r\n 'chartLegend': {\r\n modalName: '图例设置',\r\n show: '显示图例',\r\n label: '图例样式',\r\n position: '图例位置',\r\n contentH: '滑动修改水平偏移量',\r\n contentV: '滑动修改垂直偏移量',\r\n direction: '图例朝向',\r\n width: '图例宽度',\r\n height: '图例高度',\r\n contentWidth: '滑动修改图例宽度',\r\n contentHeight: '滑动修改图例高度',\r\n gap: '图例间距',\r\n contentGap: '滑动修改图例间距'\r\n },\r\n 'chartCursor': {\r\n modalName: '鼠标提示',\r\n show: '显示提示框',\r\n label: '鼠标提示样式',\r\n background: '背景颜色',\r\n trigger: '提示触发条件',\r\n type: '提示触发类型',\r\n lineType: '指示器线类型',\r\n lineWidth: '指示器线宽',\r\n color: '线条颜色',\r\n axisType: '指示器类型',\r\n position: '提示框浮层位置',\r\n suffix: '鼠标提示后缀',\r\n placeholder: '后缀',\r\n ratio: '数值比例',\r\n digit: '小数位数'\r\n }\r\n}\r\n\r\nexport default obj","let obj = {\r\n 'chartSetting': {\r\n data: 'data',\r\n chartType: 'chartType',\r\n transpose: 'transpose(switch row/column)',\r\n row1: 'set number',\r\n row2: 'row as title',\r\n column1: 'set number',\r\n column2: 'column as title',\r\n style: 'style',\r\n echarts: {\r\n line: {\r\n default: 'Basic Line',\r\n smooth: 'Smoothed Line',\r\n label: 'Line With Label'\r\n },\r\n area: {\r\n default: 'Basic Area',\r\n stack: 'Stacked Area'\r\n },\r\n column: {\r\n default: 'Basic Column',\r\n stack: 'Stacked Column'\r\n },\r\n bar: {\r\n default: 'Basic Bar',\r\n stack: 'Stacked Bar'\r\n },\r\n pie: {\r\n default: 'Basic Pie',\r\n split: 'Split Pie',\r\n ring: 'Doughnut Pie'\r\n }\r\n }\r\n },\r\n 'chartTitle': {\r\n modalName: 'Title Setting',\r\n show: 'show title',\r\n text: 'content',\r\n placeholder: 'enter the title',\r\n label: 'label style',\r\n position: 'position',\r\n offsetL: 'slide to change offsetLeft',\r\n offsetT: 'slide to change offsetTop'\r\n },\r\n 'chartSubTitle': {\r\n modalName: 'SubTitle Setting',\r\n placeholder: 'enter the title',\r\n text: 'content',\r\n label: 'label style',\r\n gap: 'The gap between the main title and subtitle',\r\n content: 'silde to change gap'\r\n },\r\n 'chartAxis': {\r\n modalName: 'XY-Axis Setting',\r\n select: 'select axis',\r\n text: 'title content',\r\n placeholder: 'enter title content',\r\n label: 'label style',\r\n align: 'text align',\r\n reverse: 'invert the axis',\r\n content: 'slide to change interval',\r\n intenval: 'interval for axis',\r\n content1: 'slide to change gap',\r\n gap: 'Gap between name and line',\r\n content2: 'slide to change rotate',\r\n title: 'Rotation of axis name',\r\n showLine: 'show axisLine',\r\n content3: 'slide to change lineWidth',\r\n lineWidth: 'lineWidth',\r\n lineColor: 'lineColor',\r\n showTick: 'showTick',\r\n position: 'tick position',\r\n content4: 'slide to change tickLength',\r\n tickLength: 'tickLength',\r\n content5: 'slide to change tickWidth',\r\n tickWidth: 'tickWidth',\r\n tickColor: 'tickColor',\r\n showLabel: 'show axisLabel',\r\n content6: 'slide to change rotate',\r\n rotate: 'Rotation of axisLabel',\r\n content7: 'enter minValue',\r\n min: 'minValue',\r\n content8: 'enter maxValue',\r\n max: 'maxValue',\r\n ratio: 'scale value',\r\n digit: 'decimal digits',\r\n content9: 'enter prefix',\r\n prefix: 'prefix',\r\n content10: 'enter suffix',\r\n suffix: 'suffix',\r\n showNet: 'show splitLine',\r\n content11: 'slide to change lineWidth',\r\n netWidth: 'splitLine line width',\r\n netType: 'splitLine type',\r\n netColor: 'splitLine color',\r\n netInterval: 'Interval of Axis splitLine',\r\n content12: 'slide to change interval',\r\n showArea: 'show splitArea',\r\n areaInterval: 'Interval of Axis splitArea',\r\n area1: 'areaOne',\r\n area2: 'areaTwo'\r\n },\r\n 'chartLegend': {\r\n modalName: 'Legend Setting',\r\n show: 'show legend',\r\n label: 'label style',\r\n position: 'position',\r\n contentH: 'slide to change ox',\r\n contentV: 'slide to change oy',\r\n direction: 'direction',\r\n width: 'itenWidth',\r\n height: 'itemHeight',\r\n contentWidth: 'slide to change height',\r\n contentHeight: 'slide to change width',\r\n gap: 'The distance between each legend',\r\n contentGap: 'slide to change thes gap'\r\n },\r\n 'chartCursor': {\r\n modalName: 'Tooltip Setting',\r\n show: 'show tooltip',\r\n label: 'label style',\r\n background: 'backgroundColor',\r\n trigger: 'Conditions to trigger',\r\n type: 'Type of triggering',\r\n lineType: 'line type',\r\n lineWidth: 'line width',\r\n color: 'line color',\r\n axisType: 'Indicator type',\r\n position: 'position',\r\n suffix: 'suffix of tooltip',\r\n placeholder: 'suffix',\r\n ratio: 'scale value',\r\n digit: 'decimal digits'\r\n }\r\n}\r\n\r\nexport default obj","<template>\r\n <div\r\n :style=\"{position: 'absolute',zIndex: zindex,bottom: '0px',left: '0px',right: '0px',background: '#fff'}\"\r\n class=\"luckysheet-datavisual-quick-m\"\r\n v-if=\"showList\"\r\n >\r\n <el-button\r\n @click=\"$emit('closeChartShowList')\"\r\n plain\r\n round\r\n size=\"small\"\r\n style=\"width:100%;margin:2px 4px 8px 4px;\"\r\n type=\"danger\"\r\n >\r\n <i class=\"iconfont icon-guanbi\" style=\"float:left;\"></i>\r\n {{ close }}\r\n </el-button>\r\n\r\n <el-radio-group size=\"mini\" style=\"display:block;text-align:center;\" v-model=\"currentPro\">\r\n <el-radio-button :key=\"index\" :label=\"item.type\" v-for=\"(item,index) in config\">{{item.name}}</el-radio-button>\r\n </el-radio-group>\r\n <div class=\"luckysheet-datavisual-quick-menu\" id=\"luckysheet-datavisual-quick-menu\">\r\n <div\r\n :data-type=\"item.type\"\r\n :id=\"'luckysheet-datavisual-chart-menu-' + item.type\"\r\n :key=\"index\"\r\n @click=\"quickMenu\"\r\n v-for=\"(item,index) in currentConfig.data\"\r\n >\r\n <i :class=\"item.icon\" aria-hidden=\"true\" class=\"iconfont\"></i>\r\n <span>{{item.name}}</span>\r\n </div>\r\n </div>\r\n <div\r\n @scroll=\"quickListScroll\"\r\n class=\"luckysheet-datavisual-quick-list luckysheet-scrollbars\"\r\n id=\"luckysheet-datavisual-quick-list\"\r\n >\r\n <template v-for=\"(item,index) in currentConfig.data\">\r\n <div :key=\"index\" class=\"luckysheet-datavisual-quick-list-title\">\r\n <a :data-type=\"item.type\" :id=\"'luckysheet-datavisual-chart-listtitle-'+item.type\">\r\n <i :class=\"item.icon\" aria-hidden=\"true\" class=\"iconfont\"></i>\r\n {{item.name}}\r\n </a>\r\n </div>\r\n <div class=\"luckysheet-datavisual-quick-list-ul\">\r\n <el-tooltip\r\n :content=\"chartItem.name\"\r\n :key=\"index\"\r\n :open-delay=\"500\"\r\n effect=\"dark\"\r\n placement=\"bottom\"\r\n v-for=\"(chartItem,index) in item.data\"\r\n >\r\n <div\r\n :chartAllType=\"chartItem.type\"\r\n :class=\"chartItem.type==currentChartType? 'luckysheet-datavisual-quick-list-item-active':''\"\r\n :data-style=\"chartItem.type.split('-')[2]\"\r\n :data-type=\"chartItem.type.split('-')[1]\"\r\n @click=\"changeChartType(chartItem.type)\"\r\n class=\"luckysheet-datavisual-quick-list-item\"\r\n >\r\n <img\r\n :src=\"chartItem.img.length==0?'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQyIiBoZWlnaHQ9IjIwMCIgdmlld0JveD0iMCAwIDI0MiAyMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPjxkZWZzLz48cmVjdCB3aWR0aD0iMjQyIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI0VFRUVFRSIvPjxnPjx0ZXh0IHg9IjkzIiB5PSIxMDAiIHN0eWxlPSJmaWxsOiNBQUFBQUE7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LWZhbWlseTpBcmlhbCwgSGVsdmV0aWNhLCBPcGVuIFNhbnMsIHNhbnMtc2VyaWYsIG1vbm9zcGFjZTtmb250LXNpemU6MTFwdDtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsIj4yNDJ4MjAwPC90ZXh0PjwvZz48L3N2Zz4=':chartItem.img\"\r\n alt=\"图片\"\r\n />\r\n </div>\r\n </el-tooltip>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport $ from \"jquery\";\r\nimport { mapState } from \"vuex\";\r\nimport { deepCopy } from \"@/utils/util\";\r\nimport { changeChangeAllType } from \"@/utils/chartUtil\";\r\nimport { chartreuse } from \"color-name\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\n//图表选择组件\r\nexport default {\r\n name: \"ChartList\",\r\n props: {\r\n showList: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n zindex: {\r\n type: Number,\r\n default: 10,\r\n },\r\n currentChartType: {\r\n type: String,\r\n default: \"echarts|line|default\",\r\n },\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n data: function () {\r\n return {\r\n config: [\r\n {\r\n type: \"echarts\",\r\n name: \"echarts\",\r\n data: [],\r\n },\r\n ],\r\n currentConfig: [],\r\n currentPro: null,\r\n chartAllType: \"\",\r\n list_scroll_direction: -1000,\r\n // echarts中文\r\n echartsCN: [\r\n {\r\n type: \"line\",\r\n name: \"折线图\",\r\n icon: \"icon-tubiaozhexiantu\",\r\n data: [\r\n {\r\n type: \"echarts|line|default\",\r\n name: \"折线图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|line|smooth\",\r\n name: \"平滑折线图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|line|label\",\r\n name: \"带标签的折线图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"area\",\r\n name: \"面积图\",\r\n icon: \"icon-fsux_tubiao_duijimianjitu\",\r\n data: [\r\n {\r\n type: \"echarts|area|default\",\r\n name: \"面积图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|area|stack\",\r\n name: \"堆叠面积图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"column\",\r\n name: \"柱状图\",\r\n icon: \"icon-chart\",\r\n data: [\r\n {\r\n type: \"echarts|column|default\",\r\n name: \"柱状图\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAADHklEQVR4Xu2cvW4TQRSF71b8NSkjpSBSqCiCIuyWBvECKA+ABAiESEUDBVRByRtQ8AhgoMcNtFmECEqLSFoo6IhA8iJhOdjLembueMae3f1cX1/PnnPPzJ2zM86ET1IIZEmNhsEIhCRWBBACIYkhkNhwUAiEJIZAYsNBIXUgJM/zIrFxLnQ4xzvbMjg6NI7h7LPnzmPsdDpThYBCHGB8393IReSyKfTK3scgWAZJ4vBMtQ6BkMTogxAISQyBiMNZv3p905S+yLIfn/u9/ngMColIyKVrm8YOshD5sP/2ZQdCIpIwnhpC5gS0689AiCtSc4qDkDkB7foztSQktnXy63VPiu/fjBieun3XFWNV3M1Hu8b48yvL8uT+jYmYxlsn77obe5nIRCdTRimUFVHOW0uFqErOIxhCpoO2EC8LQiDkBAGmrIpiQCEoBIWY1noUgkJQCArx2A+ILOYoKVOWcsqKbZ0c7z6VweFXYwlpTnFoahHrhLZXUy9MWWW0WvnGkDVEuYaoNOYRDCEQwj5k1n3I1tLaC6P4iuLLp37voVagmIueXdbW0pqFjyLf7/e6EKJFAEJUiCX7ggqFqHicLdily4KQ2TBWfRtClG1vCl6WTSGrK8vyuHRc5+fOthSWm062vL7HgDR5k7tBFUshQfJ6Hra2EVJlyVTppFGLOoSoVo5/wUGAK/7fhwTJi0KqWbVOARDiKYc5bgxRiCdHQYBDIZ7oo5C/CNBlTakf69rEos6iPo4A+5BSPfi+U/dRnvPGcGSd/H7zSga2m0637qgXF5djQLYHrLJOQuRN2jqJdWGeLktpLo7CIWSIhAsONkUH6bJcBuJzFxCFoJATBHwq2aUwffI6L+pMWfr/OoGQNlonLlJlDRnOJygEhVR3BigEhQzd0zYpZGSduPzpysG9B0br5NyZ03LxwupETAiLA+vE186OVcmx8qZsv7t0WdbuIhZwsfJCCO9DnN+HoJAamotMWYm1vRACIe3bh2jcXhSCQlCIaSuOQlBI+xQS+waV+txQw76Q3A2qhuEb9HEWcnIx6BM0LBmEJEboHyG8cJwchLkkAAAAAElFTkSuQmCC\",\r\n },\r\n {\r\n type: \"echarts|column|stack\",\r\n name: \"堆叠柱状图\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAADWUlEQVR4Xu1dPW8TQRCdCwXhHwQFxemoCIqwW9LEvyBpkSgQNPwAEB8FBIUfkAJBE4kW/4K4Ca0vikg6qhgB4h8QCZFFIpzkwxvr+Xafszm/tJ4b7b03b2Zn5+6SWY3+ltrreWZ2K+SWnHP5QbfTGvTB8utbZxay+NSuZQHH8itCgAiSQgCQUBNWJLP8SiEAs1IIABJqwopkll8pBGBWCgFAQk1YkczyCyskz3OHgpCS3Yutbet/+xG0pMX5OXv28G7JR2y/zWbzzHZDfch/9CllBcVz+WJWamH5hVNWRIwm6ooFHMtvMoTcbK+/MWfXw9hynz91Ow8mceZUe0KWVtd6WZY1QwhxZnsHOx9KPljAsfwmoxARcnYonssuS4SIEDg7TuW2VwqRQqSQUQhIIVKIFCKFlBHwbRbUhwA60S4LAMlnok69InC+y1TUxyzq7AHVy61tOwocJDXm5+w5eZBUwHa8uWEnX/pBIZktNOzK46d/fSQ3oLpoCvnYWs4t9IlIs3ylt196IlJFHYhxX1EXIQhwEzx+FyEiBEAgoolqyJi7rIjYe12JEBECx1jSRf3G6tr9zLKr8N14DJ2574fdzrvBn6SQigphDfdFiAiBRZ50ypJCTnlMpg8RISIETy3T2KlLIVKIFDIKASkkEYUUA6rYbw4V5P/c3DAXOPCZWWjY7L+BT+GXtd4YA6qZxqLNPnoSNqBiKWS3tdzLzIKefjezvdu9/Yk8/V77ba8ISaxTFyEiBN+9eb4GpJSFwacaguFUtvId1illKWXBsTSVp70shdxbab//ZZeuweh7DC/b769vd3fuDP6kGoIhOlRDWESLEBHiR+CidepSCBDJk9xliRARAiBwauJiPGytlJXI8XtBuwgRIXAK8B2/17aGFAOqGIOZwTeHCrSPX7+yk/7ROOAP2foGVDS/Ed6gijKgYjVErEhm+WXh4IvIkV8DYi2EBRzLLwsHEYIlyaEjGRFSETgpBADO1xCxgGP5lUIAoqdq21vgwYoMViSz/LJwUFGvqDwRUhE4KQQATkU94mkvS6qsSGb5ZeGgGgIo2rd7EyEVgZNCAOBUQ1RDor/moJQFKG+qOnX2J/4wvOtrldwn/uoLdfidncu/qwhfdn09iJDEuP0DnXmvq+qIgDYAAAAASUVORK5CYII=\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"bar\",\r\n name: \"条形图\",\r\n icon: \"icon-fsux_tubiao_duijizhuzhuangtu1\",\r\n data: [\r\n {\r\n type: \"echarts|bar|default\",\r\n name: \"条形图\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAADzUlEQVR4Xu2cz2sTQRTHN4darX+CIIIXFawICSIeYqgiotFLUfCkKDaI9CAIEZRUKlgoViiCRRspqEWa6sHgSUv8gYgSEJF4UvGgF715EFrFkW0FUXd3Om/ey+4s3153vjOz38+bydt5TDMe/hLlQCZRs8FkPABJWBAACIAkzIGETQcrBEAS5kDCpoMV4gKQZrOpstmsMSyqzvckDm0cY+reNdD0F5M31ezIcME0eDpPnGxQdP44cWjjGNN/12Vj442wgA8E8ji3UZnCQPvFO9B1+aoHIIv3S7wlgIhbbDYAgJj5Jd4aQMQtNhsAQMz8Em9tDOTUoZL69O7DI9OZrVi9Kk/R+ePYaEuFXP77vfpZ0/l27CpWKDp/HBvt8rHxilGWtWF7r1Npb/V8OTSNjILkzIchgOjXmhTMwA9DAAEQvQMRLbBlWdnHLwYQfk+tekw9kBtTd9TQlUnj097y0QMNis6nYaOdGCqHnp6mIsuiZhBUna5GoFs+1HGpOsn5BmZZ1IlSdZIvmIoV4lqBKqrgkwogrhWoos6GAES34Qs8BxABU226BBAb9wS0ACJgqk2XAGLjnoA29UBcK1Ct3Lkjf3fmqXGBak/PlgpF58dUlFZlvNbr+9O1sNiL+l5LxfG7wKKz61KpqVcPbu8HEDsb+dQAwuclS08AwmIjXycAwuclS08AwmIjXyfcQFwrUFGLW1SdTy5Kq1Tmc2um9oYty6LWNag61EP+oEOBinBTTDKAcIOKcFPMB7J0+GIjVygYX/vTwcQNKuJPeeeRPm9TXwlAiP6xywCE3VK7DgHEzj92NYCwW2rXIYDY+ceubisQ1wpUUbevNs99ba378e1LEBGbW1BdlcFKrlhsT5bl2v2QqPD/6Xn7wqp3STxZSH3FEEDYd2u7DgHEzj92NYCwW2rXIYDY+ceuTgWQNBWoOmYzrZdPaoFprzNZFnWiVJ3uSFq3bKjjUnWS80WByoUC1fNrVTV3abSoi8x/ny853l+n6BYKPhfquZ5t7F++Ue/gzAqJ4waV1NkQgJguq9/tAWTBiMSUcAEEQGL5X8G6DA0rxIUsCz/q+h9CqQwtcIWcPnxMfXz7/qF+Wn+3yHWv3dr9rDFgqptPeyuDAxIFn1RkWdQCVXb9Gq86cq6t3xK6PRlAAES7QbTtjiFWiJbFfAMACfFJ6odZhwVAAEQXI/8/jyNa4xiTtGVVr99SoxPTxqe9Z/oP1nv37kaWpYlH4y2LGjlUnS5qdOuNOi5VJzlfUjTrDMJzugMAQvdORAkgIrbSOwUQunciyl+nJgacKCJJ0AAAAABJRU5ErkJggg==\",\r\n },\r\n {\r\n type: \"echarts|bar|stack\",\r\n name: \"堆叠条形图\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAACiElEQVR4Xu2cP0oDURCHExBscwe9gBAP4AG8gAcQLGwEJZV/OkGwECtBO1OlECwNJNgpKVQ8QHIMJbAi24S4vsy44+wsfKln5738vpl5uzObNBt8QinQDLUbNtMASLAgAAhAgikQbDtkCECCKRBsO2RIHYCMRqOs3W6bw8JvTj+lQ6Hoz93b7OP8bMM6eJb39gd18js5OBycXnXNdehsb/3qtxDI4/paZg2jjv52Wyvu2wZIQnKAuMdjekGAAKS4l8UZkkcGGUKGkCGpGCBDyBAyhAwJlgUAAUhSAZ7UeVKvT4qEucui25sHTZhuL3OLxXOLMnmunocAJBiQCCVrp7UqDsLUwEfspMCwCr9h77KqOFDLwLO6FiBWShr5AYiRkFZuAGKlpJEfgBgJaeUGIFZKGvkBiJGQVm4AYqWkkR+AGAlp5QYgVkoa+QGIkZBWbgBipaSRH4AYCWnlJuzPEej2ziBmHhJsHgKQYEAiDKg0NbmK2bdkf0vT6fhleDeet1WPcOv29nvUYVaWNU7e+r1jgEjC18EGIA4ia5YAiEYtB1uAOIisWQIgGrUcbAHiILJmCYBo1HKwBYiDyJolAKJRy8EWIA4ia5YAiEYtB1uAOIisWcIMCN3eXPayP0cw6/YyDwk2DwFIMCBPN9fZ5+XFpqZeSmwnnaN777/Mm9/Xe783lOz126aKwHR96yTCIOn1oSf+c0+ASEO3hB1AZsQjQxafTZSsRLZRskqUIumllCxK1o9YCfMaEGcIZ8iP6KRkUbIoWakDngwhQ8gQMkT4EMBd1h/vsuj2LhZOGIOFZurnkCpaBv/1BevmV9yKLvPFuFauAEDkWrlYAsRFZvkiAJFr5WL5BeJU77Wa075tAAAAAElFTkSuQmCC\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"pie\",\r\n name: \"饼 图\",\r\n icon: \"icon-fsux_tubiao_nandingmeiguitu\",\r\n data: [\r\n {\r\n type: \"echarts|pie|default\",\r\n name: \"饼 图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|pie|split\",\r\n name: \"分离型饼图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|pie|ring\",\r\n name: \"环形饼图\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n ],\r\n },\r\n ],\r\n // echarts英文\r\n echartsEN: [\r\n {\r\n type: \"line\",\r\n name: \"Line Chart\",\r\n icon: \"icon-tubiaozhexiantu\",\r\n data: [\r\n {\r\n type: \"echarts|line|default\",\r\n name: \"Basic Line Chart\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|line|smooth\",\r\n name: \"Smoothed Line Chart\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|line|label\",\r\n name: \"Line with labels\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"area\",\r\n name: \"Area Chart\",\r\n icon: \"icon-fsux_tubiao_duijimianjitu\",\r\n data: [\r\n {\r\n type: \"echarts|area|default\",\r\n name: \"Basic Area Chart\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|area|stack\",\r\n name: \"Stacked Area Chart\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAAVyklEQVR4Xu1dB3BV55X+zm2vFz0VVJ6EwEiIXkw1zThZx3GLg20wdhwLYq+TiRMn2d3EycZrEscZZxOXJJtkh00Mdsa9YnvtGFNFMDJgsBBNBVEECElP/RW9ds/O/4QwRSA9eJKeN/wzmpHm/vec8//fPeWec/4rwuWRVDtASSXNZWFwGZAkewguA3IZkCTbgSQTJyk0pHjFSzMATCaWXl2xdGFjku3RgIoz6ID88PV3lgF4cO6I4dra/dV+TzAw969fv2PfgO5CEjEbdECWrHxJf+aeRTE5th46gme3bP/fP955641JtEcDKkqPgGzfvp0HQoryplaU1HnwzD2LYuwEIM9v2Y7rcjORYTIMhAiDwmPKlCnnVYRB0ZDiFS/8E0F6GoTRZk2FWdOis0YMow2VB7jNH5DFLjGwMippP/rr1xc0DMquDRLTAQWkeMXzBUTykwC6TBLzCSJ5D4MNYHYwoY6AFACjAFihsxeS9KgabH1q+f33hwdpjwaU7YAA8s+vvOII+6OPgPEAiFQd7JUglQPc1ONqGRIIwxg8gkAqgGod/C/PFi9+e0B3ZxCY9Ssgy5Ytkw7nF90P8M8BSgMjBEIlgw4TuFc/xUwGAhcxOJeIhBlbC9YfWLnkzv2DsFcDwrLfAFny3CvzWI/+gUBjGGBiHAZQAULcpocAO8DjGCTMWYQZf9As0iPLFy5sG5BdGkAmCQdk6TPPD2dJegqgm7vWwU0MKifAm4B15TBQRICJWW8C6Kf5hyuWL1u2TE8A7aQgkTBAlv5llY3lwCMMfIcADWAfQOIF70SCVyqisBEMHk4gmcF7GNL9zxYv2pxgPoNC7pIBifmJYUX3QcejIKQLkyKcMIhqwNxvTy5BMumIjiZQ1klNfC2kaN9//mu3Hh2UnUwQ00sC5Aw/wQwiHGWW9hFxMEHy9YEMpTJ4LAE25hjf/9RC1seX33+Tvw83J92UiwJE+Aldkp8g4JYuN4E2JuwiYFCcLDMTEQ1lcCGBhLk8Ckg/XFG86MWk2/FeBIordRLWGVvrm7CruQ06M2TxFmcwwKIqSVHpEvaxpTOIjrCwmsAQkwHz3UOQatCSCpdLTp0IP3Fo6MhvgPALAmUAiIJwEIyq2O9JNhiwEngcQKnCjzHRiqCmP/TinXd6kkzUc8Tp1WSd7idO3n2CIO1h6IFkXxyATIBHAWRh1juY5J8dHprx2w3z53epUBKOcwBZ8uyLtwk5KarvYEn6DUBfFX/3mu5IwsXFRCKSmEWIjBEAFAYqwfR9xRD9JByi25jkbc/ds3Brsoh/BiDfe/mtXXkup0hTWGoam1RvMAQGhwhUCeBQsgh9cXKQAdCFtrjF/U6TKXxNUUG0pKomKBOeePzWGx+9OLqJvesUIEIzJrpzVn73mjkWweI3qzdgT92JBmJpJ4jjTnckVsxEUiOnSVVmLJ01TblyqDsWnNz33Cv6M8V3xNL+gz3OC8gTH26I7D5WX0aEuv4UUtcZ9XsrcqM+n93mzj7uyMlq6U9+grZJU2csvWpaWjcg9z73Cq8ovkPqb759od+DyUrJFS9ZBz3Nvo5gsKQvRC5lTsuOXRPdDlvmLdfOV5a/+EY4lJmxPSXP3XNa/lIYnXaviMJSzKZZVxdeoWyqqqFQNLr3d3d8dUyCyF8SmR6dOuv0UH9rhpA61OHTmrfvnPveyt8bxd87yvfhB48+GTTlZlWm5OfWG+32zkta3QVuZmYDE7klRiEIsg6a92zxon5/AHtbT49h75KVL73T242Jul720ps3lLy+gixmE15c9T5+/8wL8Ae6cFDNJq9tSHq9Iye7we7ObpZlqdcaSrxyMfMIIioCY++K4kVjQZRwHvHINKiAHCrdXuQ/WjciGo3y7GmTQ0JDWtrbDxOQCoaLJDolH8lSxJLqarRlZTa4hubWG2yWUDwLPe/crrB4fldKn7+1csni/04I3Ysk0iMgP3v9nX5/SqrK9qB8y3aIPR/mzopFO3ZrLMCLjagehdcXQLvXhzavH9HomQkBR5oLmXnu2I9rSBpERfFihy8cQWNnEJosoXjkMKjSxdPqiwxxp07622TV7d6XV1e2ZzzH3jfxMQF9cOLsYJG2IWSA2Smyid2LlxQlZElzNdpzshpShuY1aCZD3GE6g2YSOBXgp1YUL/5BXza2P+YMuMlqrKjOPrJt52Rhq4l5O0D1F7EwjYF0AjIYyCCCaIToHmx02FutQzIaUtzZDbasjL5loJlsDH0eiKKyLBX95e6F1Rch1yXfMqCAeKpqMo9s3XFlLF0O7ATo2CWvACLRTE5AF0nPDBA5TqcpaWrQlp7aYM/JbkjJczcqBu1UHsvX3GK2uFJO1U2YMZ4Iecx4b+WSO25IgGxxkxgwQJoPHU07tLl0usguAShHV9NDwgeDjdRVucwAUzoIyikmRLrJ4WixDklvpPaO7LQUh3zocK028po5pWS3tTGgEXBNLOfF+rUrl9z5YcIF7IXggADSduyEs2bj5pnMLLOOCqJY2n4Ahk7MkiumPURDiMgqmKqKgq/degMe/MbXsGt/Jb75k8dCRV+5frW4xozhRBgtytBes1T06sKFA1pe6HdAOuobbdXrNs1iXVcYfJCY9gwAEj2yYLBJaI7L6Sz8n1//h2FEfl5s3u3f+tcwFRaUWF3OALqa9OYBsAD84Irixb8bSHn7FRCvp9lata7kKg5HNAbXElPZQC7uArzcV02ZMP57990tvb16A95dsxGdRC3D51213WizBpkxhAhTwegIatGhL9x1V7/n17pl7TdAAq3t5orV62bp4YgB4Dow7ejqoU6a4Xa5HDlerz8YIc7QQxFNVtVQ/qxp20SCszsMZsYfVy6549sDJXW/ANLZ0WGs/GD9rEgwJExEoyjFS8kFxhn7S6qsGW32OYGWFiEvZ4waud89aXwDE88VtTnSpfErli7cmwhQSqZMihUA527f+VpP9BIOSCgQVCve/3B2ONBpYbBQ9S3E1G/9WYnYJEHD5EqxmFNTpjZVH7SKZ8eSllpf+MV5nSRLQxkoWVl8h/ArlzS2XPfFXdaRRbkky2rH3j01M/+2ZvzZBBMKiACj8oO1M0M+vx1AOzM+oq7Guc/FSCsclml0OIcfL9vt1MNhyWC3BkbdcK0qSZKig79yKd33QjNS5859bvQTTwstxO7vfae1ZfPm+87WlITlsqLhCDau+htaPU0wqCpG5LuhyElRhIvrYaDsLEQlGTWf7ISvpQ0ZRQVwXzkBVlXB3YVDY7m3uIfPh84/L4fD5cLYp7uCtrgAiTeXFQ1HpYrV66Z3traJLG2AwZsJ1G+1jLg3JI4bZINByZ81dawsK2pDZbW1tfaYZcxNX4LBZkU0En3ouXvv+lUc5FAyZcL3ddAjEpFDcThhLSrSJc0Q6Ni7u39Mls5MVavXT/V5mjMYHCTQZjA+l22c3RttTnPZ3JPHFxEIHQ2Nho5Gj7Ng/mzokUi0/pO9k//2p1/u6g2UkqmTvsDgPxGoQMxl4ARB3wuQA0yP94tT16M6HVj/90kd9Q3ZYIQZMZ/R0Zuwp183QpfujrSOyTAZLVs6QkfXGZ1J0SydXlSQ48pzZwtZg36/rBgNqfbMDPIcOBQ8VPrJl8o/fHVjT+vcNHXccB3K0wTc1HWdOwDaffppsbnbPj157VwKl+TUq9f9fWJ73Qk3mCMMKiWgNR4wxNxH5I5ZE2+8PiXjyzfgwG+f1FfurNyVLKAMnTlllNFmi6VbWCLF4nKmio7yfe+t4UBL68O71rz+WPd6y8aPt7Rp0n+A6IddOHAIoP0gPnL2nvQLIAdLSse21B7Nj7WSMpWiK8SNa+REg+afZppmz3zh5VjzrbeqCqXffcD/h05t20HFGJemxcW4j5MVo0EdNmvaOElWYtGJZrXYVLPR7PM0oeKD9cIMve9lWvxsW+UCHfT4yTZbAUYNEYujez1GmAkHpHbbzsLGygOF4NgZhK1gxP05jFmh9swbOpvH2DXFNP5Py2EfOw4Hnn4Cda++Ag6HUS8prZ9o9tqNmv2Yn+RBC51tWRnOrHGjC4Q/gSSR2eVII0mSajaVhluPHFVtejT0gO+4lh2NVZRPoMtPXNCHJhSQ47t2558o3z+WBRigHYT4+rbyo53WRf7GcW49lCpWIJnMfrCuGbOzQ+GW5mCopcVDTDkgmMX1CFG0SjLWbTHYj36qWj2DkXvJHDsyz5GdPUTIo5iMJoPNYld83mjzm2/L1aRBpLBv7WyqmhNsq+iL8iUMkPq9Fe5jO8snnnRWZWCq7YsAYo6NdfU2f2PhxIg3XxI1ERYtqqhi0aIq/mLdRCR91sDNsZpGbqxhmijWxNYG2f+pZqndpDlr62V1wMJqoRFDZ04dZTEZLJP2lVmOTZhsaXOlYmxpCX+0/3CoWu367MS4kO/IPYETuw29nBxLCCCi2nd4644rRXkO4D1gOtgXMGSArg00D50fbi00MWtCs4hwGDpVQOpDi6pOKhPy0HU0usvBMvNhxejZqllrSzXHiTD6PzUzhwK51wVbx9oDfvl4Th4+uGUxOBLl9jdXeTr8nWqjrDiYJErVw+3f9NVty4yGzns64JIB8Rw8nHHko21Tu6p9XAWmPqnm2LDXdXtn0ziXHrGd1KrmWLUwztD4FPAMF4hymZFNhJijDRCF9qjmY5s0R22NbGrvy0MSz5xh0U7bQn/j2G4TeyjTrX88fkrE685TJJNJCtYc7PRv2twWAcknJNUZliRF0/XIXYGG7ZPD3h7Po8QNyOltQJ7j9dj07mqwrsPlsCM3S5SuLzwsoU7MOLQPw5q7PlPCqgo5KxvkOKPc3RuZ81+PRsGtrdCbm4DOzyyXx2xDZYYb1enZCMmfVW4vhpEhHMaUo5UYWX8Uwl42Kxo224fgxKjRkIZkArIMKT1NHHdAeO36LnkYOBbW0SZ+YcaXHSpudBjOOV0265lnz5t/ueB7SHt9g6Nm3aardJ1lwYtYNCacfxigS7cEPCNmhL1XKKJcyxwh4ADED6FfMr4MdhAoF12BQKz7JMzQq1VTXalmr90ZZyCgsE7XBVvzrw62FhrAagCkl2o236ea1c9dkRbMM6bbZYtJIptNkW02OdrUFG5/932h/bHRRrK5RVKs4uRjbqTTc7+v/hOHCB1Pjrg1ROSyRLWv+sOSWboeUcGiVUe07Jy/wHR1qD37S4HmUVZEY9lMBgsA94EwIM6XAZl0ZEMSgQC5uhffTnKgTDXXbjA4ahskwwVPfU0Ie1MXdHrGufSoVWdwmcHi36zYfCFJPI+fDclqlc3TplhJUUgekqGRJJFvc2lbqLr61FqDRGqDpDkiRLJF1zuX+uu2FUYCsZakuAAZ/4UFt2WOG/2IeM/Qw2GNWTSx0ceEns+cjwgH7As7PWOz9FD3JrSDuRyEuF8UL8a09HQPMSyxQICRCxKncmOBAGplg2ebZqvdYrDXWXVdnR5qzzyoGNraJSV0u79x9BXRYKaYWyMbgxsNjo4WSTlvg4Oak6MZR480w2SSlZQURQ8E9PY3Vnk4EjkFXhSQ6hXNEYQkuln06wJNe22sB182pj6+a+0bvReovrDw3l1FI/JzQZJj9/4qamlrbwVjCxGdI5hDj2i3BzwjJ0R8Q08uOEgE8VGYPofCiQLgQnQYlE0QURrSuueFiSKmtAzKXLCA6t9exbq3Q452dKCZlMh6g6PjsGLsU9+wccJ4i5qRpkrp6ZqkqhQoL/d17ig74xMi4kEQ5qtVUiwpDjvGjMjXFc0Q2FNRXbP2lT+fv0AlNOPqq6at/O3PfxRrsL3/R4/yxzvKygA6J9l3c2fT8LnBtgJhY7sWyQfAXAXqOVUwEBvfKw+dzJDgZiBPsVqNhQ8vQ9r8a2LByuYZU3idZvfu1GzxZakVhczTp9kUp02R09JV1nVuf/0tj+73n+Mvm0mxjJs51fpfv/hJTNQH/v2x1k0f77jvbE055dTPBuRbP/5F+KPtZeJjAKdOUF0Z6ki/Odg0RtjYk36iHsx7icjX64Yk0QTFap9T8PAjjm5A/j5jCj9pzbmoL9dJNpvwJzbZlaJKZrMUOnKk07e+5Jz2VS9JhqIZMxy/f+zHsT1/4Ke/bN1U+sn5ARGTYiarYFgugWzlldW+1pb22AGWHD1ovt3vGXNFtDOWPtCZfUTiCz+c9Oe+e3wOGFYtI2NW1q23S/Vvv6n7/cFDbwcoUqMaTwUD8Tw/al6ewTBqpFnJEA6e0PH+B82RhsZzGr69rjRXwYjhsqppvZusbgGEpoCkh4RmmDkq3xJoKpgeah8udZ2jCMe6DpkPDvbBlng2rKe5zDAAlEngNlBX2eCIZLCsNTqHtUhqLFKMZ5gmTbCqw/KNIgyOtLREOt55r6mnb7QJTWkg5RzN6OZ1xntIyaRJo9U05+8Oszyhwh/2TI/48s0cNcZCFNARMPb3Kd0Rz0qSbK4w/jsUa/o2zZYTkOTTu+ovKKkIgS2zZ9qVXLeBJJn8W0rbg5XVPYbZb61/NxbN9TROAVI6duwQynfvG/6DfxNfbcOBX/8KIU+jwKKJCLsvOt2RZBveV3GCRNJGzZmzTzEPifbxNJCc4lQsc2bb5RSnyp1Bve31N88Ig7t59wmQjVMmfnvYt7/769ziJTF1Pfzn5Tjy6suQ3SLh+o872iKMj3wRHAz1reea3G4okyaANA3RikpEd5/byvz8Oy/3njopmTJhmjHHvXrKG2/HEk7bF9wU7jx2/ONu+/qPC0nXyqskk32DwZnfIcu9fuHZPGe23TA838TRKNreesfDXu8ZaPZJQwTTrQtufjhYW7tMOAw1xVkRbmkZlFNEyQp+hCXaarAN2aFZs0Og8zadkUGT7Dde7xIplvDRo0Hv2g1n9Br0GZDujSiZOnHAjkUn6+ZfSC4fJGW9wemuVEzpItvb09CysjTzF+enkCShY/WalkjdiVNv/5cB6SfUT5BmWmNIyW9Q1NiL8tnDPH+e05CXa4i2tUXaV717Kgy+DEg/AdJNtlyxuj7SbLk+ST7j03UiFLYvvC1dUhUKbN3W3rmvIhYGXwaknwER5MNM0maDPatMtWRGhZ06ObSCApPlqul2DoX0ttfe9HA4zJcBGQBAulk0k6xtMDhzDymmU2kY+1dudMlOpxqsqPD7S7d1XAZkAAHpZnVINlrXGxz5Ig0jO1MU283Xx9qevKve8bz21guio6bH0WOIcDnKSgyCsTSMZkv/WLW55dmzXYYRw03Rlpaw7HLeueKexb0XqC6HvYkB4mwqAUjyBmfWUO/Se0fluZykyrLvUFNzzdOLbunbCarLGpJ4YPaPmZzlX/z1SQ9eOy/m8J9as7G1/HjdfWdrSo8ma6D+B1Xil528FKvbvGiEhAeumRMT8qk1Ja3lx4/3DZDkXdbnW7Kur76m5MoSqQc9cZisz/eyk1v67u8ix+XUk3tJ/7+l+z+3oDzYi9TqlAAAAABJRU5ErkJggg==\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"column\",\r\n name: \"Column Chart\",\r\n icon: \"icon-chart\",\r\n data: [\r\n {\r\n type: \"echarts|column|default\",\r\n name: \"Basic Column Chart\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAADHklEQVR4Xu2cvW4TQRSF71b8NSkjpSBSqCiCIuyWBvECKA+ABAiESEUDBVRByRtQ8AhgoMcNtFmECEqLSFoo6IhA8iJhOdjLembueMae3f1cX1/PnnPPzJ2zM86ET1IIZEmNhsEIhCRWBBACIYkhkNhwUAiEJIZAYsNBIXUgJM/zIrFxLnQ4xzvbMjg6NI7h7LPnzmPsdDpThYBCHGB8393IReSyKfTK3scgWAZJ4vBMtQ6BkMTogxAISQyBiMNZv3p905S+yLIfn/u9/ngMColIyKVrm8YOshD5sP/2ZQdCIpIwnhpC5gS0689AiCtSc4qDkDkB7foztSQktnXy63VPiu/fjBieun3XFWNV3M1Hu8b48yvL8uT+jYmYxlsn77obe5nIRCdTRimUFVHOW0uFqErOIxhCpoO2EC8LQiDkBAGmrIpiQCEoBIWY1noUgkJQCArx2A+ILOYoKVOWcsqKbZ0c7z6VweFXYwlpTnFoahHrhLZXUy9MWWW0WvnGkDVEuYaoNOYRDCEQwj5k1n3I1tLaC6P4iuLLp37voVagmIueXdbW0pqFjyLf7/e6EKJFAEJUiCX7ggqFqHicLdily4KQ2TBWfRtClG1vCl6WTSGrK8vyuHRc5+fOthSWm062vL7HgDR5k7tBFUshQfJ6Hra2EVJlyVTppFGLOoSoVo5/wUGAK/7fhwTJi0KqWbVOARDiKYc5bgxRiCdHQYBDIZ7oo5C/CNBlTakf69rEos6iPo4A+5BSPfi+U/dRnvPGcGSd/H7zSga2m0637qgXF5djQLYHrLJOQuRN2jqJdWGeLktpLo7CIWSIhAsONkUH6bJcBuJzFxCFoJATBHwq2aUwffI6L+pMWfr/OoGQNlonLlJlDRnOJygEhVR3BigEhQzd0zYpZGSduPzpysG9B0br5NyZ03LxwupETAiLA+vE186OVcmx8qZsv7t0WdbuIhZwsfJCCO9DnN+HoJAamotMWYm1vRACIe3bh2jcXhSCQlCIaSuOQlBI+xQS+waV+txQw76Q3A2qhuEb9HEWcnIx6BM0LBmEJEboHyG8cJwchLkkAAAAAElFTkSuQmCC\",\r\n },\r\n {\r\n type: \"echarts|column|stack\",\r\n name: \"Stacked Column Chart\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAADWUlEQVR4Xu1dPW8TQRCdCwXhHwQFxemoCIqwW9LEvyBpkSgQNPwAEB8FBIUfkAJBE4kW/4K4Ca0vikg6qhgB4h8QCZFFIpzkwxvr+Xafszm/tJ4b7b03b2Zn5+6SWY3+ltrreWZ2K+SWnHP5QbfTGvTB8utbZxay+NSuZQHH8itCgAiSQgCQUBNWJLP8SiEAs1IIABJqwopkll8pBGBWCgFAQk1YkczyCyskz3OHgpCS3Yutbet/+xG0pMX5OXv28G7JR2y/zWbzzHZDfch/9CllBcVz+WJWamH5hVNWRIwm6ooFHMtvMoTcbK+/MWfXw9hynz91Ow8mceZUe0KWVtd6WZY1QwhxZnsHOx9KPljAsfwmoxARcnYonssuS4SIEDg7TuW2VwqRQqSQUQhIIVKIFCKFlBHwbRbUhwA60S4LAMlnok69InC+y1TUxyzq7AHVy61tOwocJDXm5+w5eZBUwHa8uWEnX/pBIZktNOzK46d/fSQ3oLpoCvnYWs4t9IlIs3ylt196IlJFHYhxX1EXIQhwEzx+FyEiBEAgoolqyJi7rIjYe12JEBECx1jSRf3G6tr9zLKr8N14DJ2574fdzrvBn6SQigphDfdFiAiBRZ50ypJCTnlMpg8RISIETy3T2KlLIVKIFDIKASkkEYUUA6rYbw4V5P/c3DAXOPCZWWjY7L+BT+GXtd4YA6qZxqLNPnoSNqBiKWS3tdzLzIKefjezvdu9/Yk8/V77ba8ISaxTFyEiBN+9eb4GpJSFwacaguFUtvId1illKWXBsTSVp70shdxbab//ZZeuweh7DC/b769vd3fuDP6kGoIhOlRDWESLEBHiR+CidepSCBDJk9xliRARAiBwauJiPGytlJXI8XtBuwgRIXAK8B2/17aGFAOqGIOZwTeHCrSPX7+yk/7ROOAP2foGVDS/Ed6gijKgYjVErEhm+WXh4IvIkV8DYi2EBRzLLwsHEYIlyaEjGRFSETgpBADO1xCxgGP5lUIAoqdq21vgwYoMViSz/LJwUFGvqDwRUhE4KQQATkU94mkvS6qsSGb5ZeGgGgIo2rd7EyEVgZNCAOBUQ1RDor/moJQFKG+qOnX2J/4wvOtrldwn/uoLdfidncu/qwhfdn09iJDEuP0DnXmvq+qIgDYAAAAASUVORK5CYII=\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"bar\",\r\n name: \"Bar Chart\",\r\n icon: \"icon-fsux_tubiao_duijizhuzhuangtu1\",\r\n data: [\r\n {\r\n type: \"echarts|bar|default\",\r\n name: \"Basic Bar Chart\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAADzUlEQVR4Xu2cz2sTQRTHN4darX+CIIIXFawICSIeYqgiotFLUfCkKDaI9CAIEZRUKlgoViiCRRspqEWa6sHgSUv8gYgSEJF4UvGgF715EFrFkW0FUXd3Om/ey+4s3153vjOz38+bydt5TDMe/hLlQCZRs8FkPABJWBAACIAkzIGETQcrBEAS5kDCpoMV4gKQZrOpstmsMSyqzvckDm0cY+reNdD0F5M31ezIcME0eDpPnGxQdP44cWjjGNN/12Vj442wgA8E8ji3UZnCQPvFO9B1+aoHIIv3S7wlgIhbbDYAgJj5Jd4aQMQtNhsAQMz8Em9tDOTUoZL69O7DI9OZrVi9Kk/R+ePYaEuFXP77vfpZ0/l27CpWKDp/HBvt8rHxilGWtWF7r1Npb/V8OTSNjILkzIchgOjXmhTMwA9DAAEQvQMRLbBlWdnHLwYQfk+tekw9kBtTd9TQlUnj097y0QMNis6nYaOdGCqHnp6mIsuiZhBUna5GoFs+1HGpOsn5BmZZ1IlSdZIvmIoV4lqBKqrgkwogrhWoos6GAES34Qs8BxABU226BBAb9wS0ACJgqk2XAGLjnoA29UBcK1Ct3Lkjf3fmqXGBak/PlgpF58dUlFZlvNbr+9O1sNiL+l5LxfG7wKKz61KpqVcPbu8HEDsb+dQAwuclS08AwmIjXycAwuclS08AwmIjXyfcQFwrUFGLW1SdTy5Kq1Tmc2um9oYty6LWNag61EP+oEOBinBTTDKAcIOKcFPMB7J0+GIjVygYX/vTwcQNKuJPeeeRPm9TXwlAiP6xywCE3VK7DgHEzj92NYCwW2rXIYDY+ceubisQ1wpUUbevNs99ba378e1LEBGbW1BdlcFKrlhsT5bl2v2QqPD/6Xn7wqp3STxZSH3FEEDYd2u7DgHEzj92NYCwW2rXIYDY+ceuTgWQNBWoOmYzrZdPaoFprzNZFnWiVJ3uSFq3bKjjUnWS80WByoUC1fNrVTV3abSoi8x/ny853l+n6BYKPhfquZ5t7F++Ue/gzAqJ4waV1NkQgJguq9/tAWTBiMSUcAEEQGL5X8G6DA0rxIUsCz/q+h9CqQwtcIWcPnxMfXz7/qF+Wn+3yHWv3dr9rDFgqptPeyuDAxIFn1RkWdQCVXb9Gq86cq6t3xK6PRlAAES7QbTtjiFWiJbFfAMACfFJ6odZhwVAAEQXI/8/jyNa4xiTtGVVr99SoxPTxqe9Z/oP1nv37kaWpYlH4y2LGjlUnS5qdOuNOi5VJzlfUjTrDMJzugMAQvdORAkgIrbSOwUQunciyl+nJgacKCJJ0AAAAABJRU5ErkJggg==\",\r\n },\r\n {\r\n type: \"echarts|bar|stack\",\r\n name: \"Stacked Bar Chart\",\r\n img:\r\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAYAAADvCdDvAAACiElEQVR4Xu2cP0oDURCHExBscwe9gBAP4AG8gAcQLGwEJZV/OkGwECtBO1OlECwNJNgpKVQ8QHIMJbAi24S4vsy44+wsfKln5738vpl5uzObNBt8QinQDLUbNtMASLAgAAhAgikQbDtkCECCKRBsO2RIHYCMRqOs3W6bw8JvTj+lQ6Hoz93b7OP8bMM6eJb39gd18js5OBycXnXNdehsb/3qtxDI4/paZg2jjv52Wyvu2wZIQnKAuMdjekGAAKS4l8UZkkcGGUKGkCGpGCBDyBAyhAwJlgUAAUhSAZ7UeVKvT4qEucui25sHTZhuL3OLxXOLMnmunocAJBiQCCVrp7UqDsLUwEfspMCwCr9h77KqOFDLwLO6FiBWShr5AYiRkFZuAGKlpJEfgBgJaeUGIFZKGvkBiJGQVm4AYqWkkR+AGAlp5QYgVkoa+QGIkZBWbgBipaSRH4AYCWnlJuzPEej2ziBmHhJsHgKQYEAiDKg0NbmK2bdkf0vT6fhleDeet1WPcOv29nvUYVaWNU7e+r1jgEjC18EGIA4ia5YAiEYtB1uAOIisWQIgGrUcbAHiILJmCYBo1HKwBYiDyJolAKJRy8EWIA4ia5YAiEYtB1uAOIisWcIMCN3eXPayP0cw6/YyDwk2DwFIMCBPN9fZ5+XFpqZeSmwnnaN777/Mm9/Xe783lOz126aKwHR96yTCIOn1oSf+c0+ASEO3hB1AZsQjQxafTZSsRLZRskqUIumllCxK1o9YCfMaEGcIZ8iP6KRkUbIoWakDngwhQ8gQMkT4EMBd1h/vsuj2LhZOGIOFZurnkCpaBv/1BevmV9yKLvPFuFauAEDkWrlYAsRFZvkiAJFr5WL5BeJU77Wa075tAAAAAElFTkSuQmCC\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"pie\",\r\n name: \"Pie Chart\",\r\n icon: \"icon-fsux_tubiao_nandingmeiguitu\",\r\n data: [\r\n {\r\n type: \"echarts|pie|default\",\r\n name: \"Basic Pie Chart\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|pie|split\",\r\n name: \"Split Pie Chart\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n {\r\n type: \"echarts|pie|ring\",\r\n name: \"Doughnut Chart\",\r\n img:\r\n \"data:image/png;base64,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\",\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.config[0].data = this.echartsCN\r\n this.close = \"关闭图表选择菜单\";\r\n this.chooseConfig();\r\n return;\r\n }\r\n this.config[0].data = this.echartsEN\r\n this.close = \"close chart-select menu\";\r\n this.chooseConfig();\r\n },\r\n computed: {\r\n ...mapState(\"chartSetting\", [\"chartLists\", \"currentChartIndex\"]),\r\n\r\n chartPro() {\r\n return this.chartAllType.split(\"|\")[0];\r\n },\r\n chartType() {\r\n return this.chartAllType.split(\"|\")[1];\r\n },\r\n chartStyle() {\r\n return this.chartAllType.split(\"|\")[2];\r\n }\r\n },\r\n watch: {\r\n currentChartType(val) {\r\n this.chartAllType = val;\r\n },\r\n lang(val) {\r\n if (this.lang == \"ch\") {\r\n this.config[0].data = this.echartsCN\r\n this.close = \"关闭图表选择菜单\";\r\n this.chooseConfig();\r\n return;\r\n }\r\n this.config[0].data = this.echartsEN\r\n this.close = \"close chart-select menu\";\r\n this.chooseConfig();\r\n },\r\n },\r\n methods: {\r\n chooseConfig() {\r\n for (var i = 0; i < this.config.length; i++) {\r\n if (this.config[i].type == this.chartPro) {\r\n this.currentConfig = this.config[i];\r\n return\r\n }\r\n }\r\n this.currentConfig = this.config[0];\r\n },\r\n changeChartType: function (value) {\r\n // 相同类型或者currentChartIndex为null不执行\r\n if (this.currentChartIndex == null) {\r\n return null;\r\n }\r\n if (\r\n (this.chartLists[this.currentChartIndex].chartOptions,\r\n chartreuse == value)\r\n ) {\r\n return null;\r\n }\r\n changeChangeAllType(\r\n deepCopy(this.chartLists[this.currentChartIndex].chartOptions),\r\n value\r\n );\r\n this.$emit('closeChartShowList')\r\n this.currentChartType = value;\r\n },\r\n quickListScroll: function (e) {\r\n var scrollTop = $(e.currentTarget).scrollTop();\r\n var _this = this;\r\n $(e.currentTarget)\r\n .find(\"div.luckysheet-datavisual-quick-list-title\")\r\n .each(function () {\r\n var $t = $(this),\r\n position = $t.position();\r\n //console.log($t.find(\"a\").data(\"type\"),position.top, scrollTop);\r\n if (scrollTop >= _this.list_scroll_direction) {\r\n if (position.top + 55 > 0) {\r\n $(\"#luckysheet-datavisual-quick-menu div\").removeClass(\r\n \"luckysheet-datavisual-quick-menu-active\"\r\n );\r\n $(\r\n \"#luckysheet-datavisual-chart-menu-\" + $t.find(\"a\").data(\"type\")\r\n ).addClass(\"luckysheet-datavisual-quick-menu-active\");\r\n return false;\r\n }\r\n } else {\r\n if (position.top - 55 >= 0) {\r\n $(\"#luckysheet-datavisual-quick-menu div\").removeClass(\r\n \"luckysheet-datavisual-quick-menu-active\"\r\n );\r\n var $obj = $t.prev().prev();\r\n if ($obj.length == 0) {\r\n $obj = $t;\r\n }\r\n $(\r\n \"#luckysheet-datavisual-chart-menu-\" +\r\n $obj.find(\"a\").data(\"type\")\r\n ).addClass(\"luckysheet-datavisual-quick-menu-active\");\r\n return false;\r\n }\r\n }\r\n setTimeout(function () {\r\n _this.list_scroll_direction = scrollTop;\r\n }, 0);\r\n });\r\n },\r\n quickMenu: function (e) {\r\n var $t = $(e.currentTarget);\r\n $(\"#luckysheet-datavisual-quick-menu div\").removeClass(\r\n \"luckysheet-datavisual-quick-menu-active\"\r\n );\r\n $t.addClass(\"luckysheet-datavisual-quick-menu-active\");\r\n var $scroll = $(\r\n \"#luckysheet-datavisual-chart-listtitle-\" + $t.data(\"type\")\r\n ).parent(),\r\n p = $scroll.position().top;\r\n $(\"#luckysheet-datavisual-quick-list\").scrollTop(\r\n p + 5 + $(\"#luckysheet-datavisual-quick-list\").scrollTop()\r\n );\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style>\r\n.luckysheet-datavisual-quick-menu {\r\n width: 120px;\r\n overflow: auto;\r\n margin-top: 15px;\r\n}\r\n.luckysheet-datavisual-quick-menu::-webkit-scrollbar {\r\n display: none;\r\n}\r\n\r\n.luckysheet-datavisual-quick-menu > div {\r\n text-align: left;\r\n padding: 4px 4px;\r\n border-right: 3px solid #fff;\r\n color: #777;\r\n cursor: pointer;\r\n line-height: 1.4em;\r\n word-wrap: break-word;\r\n /*margin: 4px 0px;*/\r\n}\r\n\r\n.luckysheet-datavisual-quick-menu > div:hover {\r\n color: #000;\r\n}\r\n\r\n.luckysheet-datavisual-quick-menu > div i {\r\n width: 15px;\r\n}\r\n\r\n.luckysheet-datavisual-quick-menu > div:hover i {\r\n color: #ff7e7e;\r\n}\r\n\r\n.luckysheet-datavisual-quick-menu\r\n > div.luckysheet-datavisual-quick-menu-active {\r\n border-right: 3px solid #ff7e7e;\r\n color: #000;\r\n font-weight: bold;\r\n}\r\n\r\n.luckysheet-datavisual-quick-menu\r\n > div.luckysheet-datavisual-quick-menu-active:hover\r\n i {\r\n color: #000;\r\n}\r\n\r\n.luckysheet-datavisual-quick-range {\r\n padding: 5px 0px;\r\n}\r\n\r\n.luckysheet-datavisual-range-container {\r\n background: #fff;\r\n border: 1px solid #d9d9d9;\r\n border-top: 1px solid #c0c0c0;\r\n min-width: 20px;\r\n width: 100%;\r\n max-width: 200px;\r\n display: inline-block;\r\n}\r\n\r\n.luckysheet-datavisual-range-container-focus {\r\n border: 1px solid #4d90fe;\r\n box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.3);\r\n outline: none;\r\n}\r\n\r\n.luckysheet-datavisual-range-input,\r\n.luckysheet-datavisual-range-input:focus {\r\n background: transparent !important;\r\n border: none !important;\r\n box-sizing: border-box;\r\n -webkit-box-shadow: none;\r\n -moz-box-shadow: none;\r\n box-shadow: none;\r\n height: 25px;\r\n margin: 0;\r\n outline: none !important;\r\n padding: 1px 8px !important;\r\n width: 100%;\r\n}\r\n\r\n.luckysheet-datavisual-range-button-container {\r\n overflow: hidden;\r\n padding: 0 0 0 8px;\r\n text-align: right;\r\n width: 21px;\r\n}\r\n\r\n.luckysheet-datavisual-range-button-container div {\r\n padding: 2px 10px 0px 10px;\r\n font-size: 18px;\r\n cursor: pointer;\r\n color: #6598f3;\r\n}\r\n\r\n.luckysheet-datavisual-range-button-container div:hover {\r\n color: #ff7e7e;\r\n}\r\n\r\n.luckysheet-datavisual-range-config {\r\n /*display: inline-block;*/\r\n}\r\n\r\n.luckysheet-datavisual-quick-m {\r\n margin-top: 5px;\r\n min-height: 500px;\r\n top: 50px;\r\n font-size: 12px;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list {\r\n left: 110px;\r\n right: 0px;\r\n bottom: 0px;\r\n top: 80px;\r\n position: absolute;\r\n overflow: auto;\r\n border-top: 1px solid #e5e5e5;\r\n padding: 5px 3px 35px 3px;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list-title {\r\n padding: 4px 6px;\r\n background: #e5e5e5;\r\n margin-top: 10px;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list-ul {\r\n overflow: hidden;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list-item {\r\n display: inline-block;\r\n margin: 5px 8px;\r\n border: 1px solid #dadada;\r\n width: 100px;\r\n height: 80px;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list-item:hover {\r\n border: 1px solid #ff7e7e;\r\n box-shadow: 0px 0px 20px #ff7e7e;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list-item img {\r\n display: inline-block;\r\n width: 100px;\r\n height: 80px;\r\n}\r\n\r\n.luckysheet-datavisual-quick-list-item-active {\r\n border: 1px solid #6598f3;\r\n box-shadow: 0px 0px 20px #6598f3;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartList.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./ChartList.vue?vue&type=template&id=d01548cc&\"\nimport script from \"./ChartList.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChartList.vue?vue&type=style&index=0&id=d01548cc&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{attrs:{\"name\":\"1\"}},[_c('template',{slot:\"title\"},[_vm._v(\" \"+_vm._s(_vm.setItem.modalName)+\" \"),_c('i',{staticClass:\"iconfont icon-biaoti\"})]),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.title.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.title, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.title, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.show))])]),_c('chart-base-input',{attrs:{\"inputValue\":_vm.title.text,\"placeholder\":_vm.setItem.placeholder},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.title, \"text\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.title, \"text\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.text))])]),_c('chart-base-label',{attrs:{\"router\":_vm.router + '/label',\"baseLabelOption\":_vm.title.label},on:{\"update:baseLabelOption\":function($event){return _vm.$set(_vm.title, \"label\", $event)},\"update:base-label-option\":function($event){return _vm.$set(_vm.title, \"label\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.label))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.positionData,\"selectValue\":_vm.title.position.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.title.position, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.title.position, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.position))])]),(_vm.title.position.value === 'custom')?_c('el-row',[_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.title.position.offsetX,\"unit\":'%',\"content\":_vm.setItem.offsetL},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.title.position, \"offsetX\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.title.position, \"offsetX\", $event)}}}),_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.title.position.offsetY,\"unit\":'%',\"content\":_vm.setItem.offsetT},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.title.position, \"offsetY\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.title.position, \"offsetY\", $event)}}})],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":8}},[_vm._t(\"title\")],2),_c('el-col',{attrs:{\"span\":16}},[_c('chart-base-box',{attrs:{\"boxData\":_vm.baseLabelOptionData.fontGroup,\"checkboxOption\":_vm.fontStyleObj},on:{\"update:boxData\":function($event){return _vm.$set(_vm.baseLabelOptionData, \"fontGroup\", $event)},\"update:box-data\":function($event){return _vm.$set(_vm.baseLabelOptionData, \"fontGroup\", $event)}}}),_c('el-row',{staticStyle:{\"margin-top\":\"5px\"}},[_c('el-col',{attrs:{\"span\":12}},[_c('chart-base-select',{attrs:{\"hideCol\":true,\"tooltip\":'选择字体大小',\"selectOption\":_vm.fontSizeList,\"selectValue\":_vm.baseLabelOptionData.fontSize},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.baseLabelOptionData, \"fontSize\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.baseLabelOptionData, \"fontSize\", $event)}}})],1),_c('el-col',{attrs:{\"span\":8,\"offset\":2}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},on:{\"change\":_vm.changeStyle},model:{value:(_vm.baseLabelOptionData.color),callback:function ($$v) {_vm.$set(_vm.baseLabelOptionData, \"color\", $$v)},expression:\"baseLabelOptionData.color\"}})],1)],1)],1)],1),(_vm.baseLabelOptionData.fontSize === 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.baseLabelOptionData.cusFontSize,\"unit\":'px',\"content\":'滑动修改字体大小'},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.baseLabelOptionData, \"cusFontSize\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.baseLabelOptionData, \"cusFontSize\", $event)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <!-- 文本样式 -->\r\n <el-row style=\"margin-top:15px;\">\r\n <el-col :span=\"8\" class=\"title\"><slot name=\"title\"></slot></el-col>\r\n <el-col :span=\"16\">\r\n <chart-base-box :boxData.sync=\"baseLabelOptionData.fontGroup\" :checkboxOption=\"fontStyleObj\"></chart-base-box>\r\n\r\n <el-row style=\"margin-top:5px;\">\r\n <!-- 字体大小 -->\r\n <el-col :span=\"12\">\r\n <chart-base-select :hideCol=\"true\" :tooltip=\"'选择字体大小'\" :selectOption=\"fontSizeList\" :selectValue.sync=\"baseLabelOptionData.fontSize\"></chart-base-select>\r\n </el-col>\r\n\r\n <!-- 颜色 -->\r\n <el-col :span=\"8\" :offset=\"2\">\r\n <el-color-picker size=\"mini\" v-model=\"baseLabelOptionData.color\" @change=\"changeStyle\"></el-color-picker>\r\n </el-col> \r\n </el-row>\r\n </el-col>\r\n </el-row>\r\n <!-- 自定义字体大小 -->\r\n <chart-base-slider v-if=\"baseLabelOptionData.fontSize === 'custom'\" :baseSliderOption.sync=\"baseLabelOptionData.cusFontSize\" :unit=\"'px'\" :content=\"'滑动修改字体大小'\"></chart-base-slider>\r\n </div>\r\n</template>\r\n<script>\r\nimport * as t from '@/utils/importUtil'\r\nimport { fontSizeList, fontStyleIBV , fontStyleIB } from '@/data/chartJson'\r\n\r\nexport default {\r\n name: 'chart-base-label',\r\n props: {\r\n router: String,\r\n baseLabelOption: Object,\r\n },\r\n components: {\r\n 'chart-base-slider': t.ChartBaseSlider,\r\n 'chart-base-select': t.ChartBaseSelect,\r\n 'chart-base-box': t.ChartBaseBox\r\n },\r\n data: function() {\r\n return {\r\n baseLabelOptionData: {}, //整个label设置\r\n fontSizeList: t.deepCopy(fontSizeList), //位置选择数组\r\n fontStyleObj: {}, //字体样式:数据=>DOM转换\r\n };\r\n },\r\n watch: {\r\n \r\n baseLabelOption: {\r\n handler: function(newVal) {\r\n if(t.isEqual(this.baseLabelOptionData,newVal)){\r\n return;\r\n }\r\n this.baseLabelOptionData = t.deepCopy(newVal);//传过来的值需要深拷贝防止数据流向父组件传递\r\n \r\n //根据在不同的组件内渲染不同的结构\r\n if(this.router.includes('title')){ //在主标题/副标题组件内\r\n this.fontStyleObj = t.deepCopy(fontStyleIBV);\r\n }else{ //鼠标提示组件内\r\n this.fontStyleObj = t.deepCopy(fontStyleIB);\r\n }\r\n \r\n },\r\n immediate: true,\r\n deep: true\r\n },\r\n baseLabelOptionData: {\r\n handler: function(newVal , oldVal) {\r\n if(oldVal){\r\n this.changeStyle()\r\n } \r\n },\r\n immediate: true,\r\n deep: true\r\n }\r\n },\r\n methods: {\r\n ...t.mapActions('chartSetting' , ['updateChartItem']),\r\n changeStyle(){\r\n const updateObj = {\r\n updateObj: t.deepCopy(this.baseLabelOptionData),\r\n router:this.router,\r\n }\r\n this.updateChartItem( updateObj); \r\n }\r\n },\r\n};\r\n\r\n</script>\r\n<style>\r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseLabel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseLabel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartBaseLabel.vue?vue&type=template&id=0c8b0a05&\"\nimport script from \"./ChartBaseLabel.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartBaseLabel.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":8}},[_vm._t(\"title\")],2),_c('el-col',{attrs:{\"span\":16}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#d8d8d8\"},on:{\"change\":_vm.changeSwitch},model:{value:(_vm.switchData),callback:function ($$v) {_vm.switchData=$$v},expression:\"switchData\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-row style=\"margin-top:15px;\">\r\n <el-col :span=\"8\" class=\"title\"><slot name=\"title\"></slot></el-col>\r\n <el-col :span=\"16\">\r\n <el-switch\r\n @change=\"changeSwitch\"\r\n active-color=\"#13ce66\"\r\n inactive-color=\"#d8d8d8\"\r\n v-model=\"switchData\"\r\n ></el-switch>\r\n </el-col>\r\n </el-row>\r\n</template>\r\n<script>\r\nexport default {\r\n name: \"chart-base-switch\",\r\n props: {\r\n switchValue: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data(){\r\n return {\r\n switchData: false\r\n }\r\n },\r\n watch:{\r\n switchValue(val){\r\n this.switchData = val\r\n }\r\n },\r\n mounted() {\r\n this.switchData = this.switchValue ? this.switchValue : false\r\n },\r\n methods: {\r\n changeSwitch(val) {\r\n this.$emit('update:switchValue', val);\r\n }\r\n }\r\n};\r\n</script>\r\n<style>\r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSwitch.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSwitch.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartBaseSwitch.vue?vue&type=template&id=a5ec903c&\"\nimport script from \"./ChartBaseSwitch.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartBaseSwitch.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.hideCol)?_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":8}},[_vm._t(\"input\")],2),_c('el-col',{attrs:{\"span\":16}},[_c('el-input',{attrs:{\"placeholder\":_vm.placeholder,\"size\":\"mini\",\"suffix-icon\":\"el-icon-edit\",\"type\":_vm.type?_vm.type:'text'},on:{\"change\":_vm.changeInput},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}})],1)],1):_c('el-input',{attrs:{\"type\":_vm.type?_vm.type:'text',\"placeholder\":_vm.placeholder,\"size\":\"mini\"},on:{\"change\":_vm.changeInput},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <!-- 需要el-row -->\r\n <el-row style=\"margin-top:15px;\" v-if=\"!hideCol\">\r\n <el-col :span=\"8\" class=\"title\"><slot name=\"input\"></slot></el-col>\r\n <el-col :span=\"16\">\r\n <el-input\r\n @change=\"changeInput\"\r\n :placeholder=\"placeholder\"\r\n size=\"mini\"\r\n suffix-icon=\"el-icon-edit\"\r\n v-model=\"input\"\r\n :type=\"type?type:'text'\"\r\n ></el-input>\r\n </el-col>\r\n </el-row>\r\n <!-- 不需要el-row -->\r\n <el-input v-else :type=\"type?type:'text'\" @change=\"changeInput\" :placeholder=\"placeholder\" size=\"mini\" v-model=\"input\"></el-input>\r\n </div>\r\n</template>\r\n<script>\r\nexport default {\r\n name: 'chart-base-input',\r\n props: {\r\n placeholder: {\r\n type: String,\r\n default: ''\r\n },\r\n inputValue: '',\r\n hideCol: Boolean,\r\n type: String\r\n },\r\n data(){\r\n return {\r\n input: ''\r\n }\r\n },\r\n watch: {\r\n inputValue(val){\r\n this.input = val\r\n }\r\n },\r\n mounted() {\r\n this.input = this.inputValue ? this.inputValue : ''\r\n },\r\n methods: {\r\n changeInput(val){\r\n this.$emit('update:inputValue' , val)\r\n }\r\n }\r\n};\r\n</script>\r\n<style>\r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartBaseInput.vue?vue&type=template&id=260eed3e&\"\nimport script from \"./ChartBaseInput.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartBaseInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.hideCol)?_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":8}},[_vm._t(\"select\")],2),_c('el-col',{attrs:{\"span\":16}},[_c('el-tooltip',{attrs:{\"disabled\":!_vm.tooltip,\"open-delay\":500,\"content\":_vm.tooltip,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('el-select',{attrs:{\"size\":\"mini\"},on:{\"change\":_vm.changeSelect},model:{value:(_vm.select),callback:function ($$v) {_vm.select=$$v},expression:\"select\"}},_vm._l((_vm.selectOption),function(item,i){return _c('el-option',{key:i,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)],1)],1):_c('el-tooltip',{attrs:{\"disabled\":!_vm.tooltip,\"open-delay\":500,\"content\":_vm.tooltip,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('el-select',{attrs:{\"size\":\"mini\"},on:{\"change\":_vm.changeSelect},model:{value:(_vm.select),callback:function ($$v) {_vm.select=$$v},expression:\"select\"}},_vm._l((_vm.selectOption),function(item,i){return _c('el-option',{key:i,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <!-- 需要el-row样式 -->\r\n <el-row style=\"margin-top:15px;\" v-if=\"!hideCol\">\r\n <el-col :span=\"8\" class=\"title\"><slot name=\"select\"></slot></el-col>\r\n <el-col :span=\"16\">\r\n <el-tooltip :disabled=\"!tooltip\" :open-delay=\"500\" :content=\"tooltip\" effect=\"dark\" placement=\"bottom\">\r\n <el-select @change=\"changeSelect\" size=\"mini\" v-model=\"select\">\r\n <el-option :key=\"i\" :label=\"item.label\" :value=\"item.value\" v-for=\"(item,i) in selectOption\"></el-option>\r\n </el-select>\r\n </el-tooltip>\r\n </el-col>\r\n </el-row>\r\n <!-- 不需要el-row样式 -->\r\n <el-tooltip :disabled=\"!tooltip\" :open-delay=\"500\" :content=\"tooltip\" effect=\"dark\" placement=\"bottom\" v-else>\r\n <el-select @change=\"changeSelect\" size=\"mini\" v-model=\"select\">\r\n <el-option :key=\"i\" :label=\"item.label\" :value=\"item.value\" v-for=\"(item,i) in selectOption\"></el-option>\r\n </el-select>\r\n </el-tooltip>\r\n</template>\r\n<script>\r\nexport default {\r\n props: {\r\n selectOption: Array,\r\n tooltip: String,\r\n selectValue: [String , Number, Array],\r\n hideCol: Boolean\r\n },\r\n data(){\r\n return {\r\n select: '',\r\n }\r\n },\r\n watch:{\r\n selectValue(val){\r\n this.select = val\r\n }\r\n },\r\n mounted(){\r\n this.select = this.selectValue\r\n },\r\n methods: {\r\n changeSelect(val){\r\n this.$emit('update:selectValue' , val)\r\n }\r\n }\r\n};\r\n</script>\r\n<style>\r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartBaseSelect.vue?vue&type=template&id=2d1fdc6e&\"\nimport script from \"./ChartBaseSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartBaseSelect.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.hideCol)?_c('el-row',{staticClass:\"chart-base-slider\",staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{attrs:{\"span\":22}},[_c('el-tooltip',{attrs:{\"open-delay\":500,\"content\":_vm.content,\"placement\":\"top\"}},[_c('el-slider',{staticStyle:{\"padding-left\":\"12px\"},attrs:{\"show-input-controls\":false,\"min\":_vm.min,\"max\":_vm.max,\"input-size\":\"mini\",\"show-input\":\"\",\"format-tooltip\":_vm.format?_vm.formatter:null},on:{\"change\":_vm.handlerChange},model:{value:(_vm.baseSliderData),callback:function ($$v) {_vm.baseSliderData=$$v},expression:\"baseSliderData\"}})],1)],1),_c('el-col',{staticClass:\"input_content\",attrs:{\"span\":1}},[_vm._v(_vm._s(_vm.unit))])],1):_c('el-row',{staticClass:\"chart-base-slider\",staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{attrs:{\"span\":6}},[_vm._t(\"title\")],2),_c('el-col',{attrs:{\"span\":17}},[_c('el-tooltip',{attrs:{\"open-delay\":500,\"content\":_vm.content,\"placement\":\"top\"}},[_c('el-slider',{staticStyle:{\"padding-left\":\"12px\"},attrs:{\"show-input-controls\":false,\"min\":_vm.min,\"max\":_vm.max,\"input-size\":\"mini\",\"show-input\":\"\",\"format-tooltip\":_vm.format?_vm.formatter:null},on:{\"change\":_vm.handlerChange},model:{value:(_vm.baseSliderData),callback:function ($$v) {_vm.baseSliderData=$$v},expression:\"baseSliderData\"}})],1)],1),_c('el-col',{staticClass:\"input_content\",attrs:{\"span\":1}},[_vm._v(_vm._s(_vm.unit))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <el-row style=\"margin-top: 15px;\" class=\"chart-base-slider\" v-if=\"!hideCol\">\r\n <el-col :span=\"22\">\r\n <el-tooltip :open-delay=\"500\" :content=\"content\" placement=\"top\">\r\n <el-slider\r\n :show-input-controls=\"false\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n input-size=\"mini\"\r\n show-input\r\n style=\"padding-left: 12px;\"\r\n v-model=\"baseSliderData\"\r\n @change=\"handlerChange\"\r\n :format-tooltip=\"format?formatter:null\"\r\n ></el-slider>\r\n </el-tooltip>\r\n </el-col>\r\n <el-col :span=\"1\" class=\"input_content\">{{unit}}</el-col>\r\n </el-row>\r\n <el-row style=\"margin-top: 15px;\" class=\"chart-base-slider\" v-else>\r\n <el-col :span=\"6\"><slot name=\"title\"></slot></el-col>\r\n <el-col :span=\"17\">\r\n <el-tooltip :open-delay=\"500\" :content=\"content\" placement=\"top\">\r\n <el-slider\r\n :show-input-controls=\"false\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n input-size=\"mini\"\r\n show-input\r\n style=\"padding-left: 12px;\"\r\n v-model=\"baseSliderData\"\r\n @change=\"handlerChange\"\r\n :format-tooltip=\"format?formatter:null\"\r\n ></el-slider>\r\n </el-tooltip>\r\n </el-col>\r\n <el-col :span=\"1\" class=\"input_content\">{{unit}}</el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"chart-base-slider\",\r\n props: {\r\n baseSliderOption: Number,\r\n unit: String, // % or px\r\n min: {\r\n type: Number,\r\n default: 0\r\n },\r\n max: {\r\n type: Number,\r\n default: 100\r\n },\r\n content: {\r\n type: String,\r\n default: \"滑动修改值大小\"\r\n },\r\n hideCol: false,\r\n format: [Function , String]\r\n },\r\n data() {\r\n return {\r\n baseSliderData: 12\r\n };\r\n },\r\n watch:{\r\n baseSliderOption(val){\r\n this.baseSliderData = val\r\n }\r\n },\r\n mounted() {\r\n this.baseSliderData = this.baseSliderOption;\r\n },\r\n methods: {\r\n handlerChange(value) {\r\n this.$emit(\"update:baseSliderOption\", value);\r\n },\r\n formatter(val){\r\n // eval(this.format)\r\n return null\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style>\r\n.chart-base-slider .el-slider__runway.show-input {\r\n margin-right: 72px;\r\n}\r\n.chart-base-slider .el-slider__input.el-input-number--mini {\r\n width: 56px;\r\n}\r\n.chart-base-slider .input_content {\r\n margin: 6px 0 0 5px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSlider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseSlider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartBaseSlider.vue?vue&type=template&id=d0824222&\"\nimport script from \"./ChartBaseSlider.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartBaseSlider.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChartBaseSlider.vue?vue&type=style&index=0&id=d0824222&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-row',[_c('el-checkbox-group',{attrs:{\"size\":\"mini\"},on:{\"change\":_vm.changeStyle},model:{value:(_vm.boxValue),callback:function ($$v) {_vm.boxValue=$$v},expression:\"boxValue\"}},_vm._l((_vm.checkboxOption),function(value,name){return _c('el-tooltip',{key:name,attrs:{\"open-delay\":500,\"content\":value.des,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('el-checkbox-button',{attrs:{\"label\":name}},[_vm._v(\" \"+_vm._s(value.text)+\" \")])],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-row >\r\n <!-- 加粗 / 斜体 / 垂直-->\r\n <el-checkbox-group v-model=\"boxValue\" @change=\"changeStyle\" size=\"mini\">\r\n <el-tooltip v-for=\"(value,name) in checkboxOption\" :key=\"name\" :open-delay=\"500\" :content=\"value.des\" effect=\"dark\" placement=\"bottom\">\r\n <el-checkbox-button :label=\"name\"> {{value.text}} </el-checkbox-button>\r\n </el-tooltip>\r\n </el-checkbox-group>\r\n </el-row>\r\n</template>\r\n<script>\r\nimport { deepCopy } from '@/utils/util'\r\nexport default {\r\n props: {\r\n checkboxOption: [Object , Array],\r\n boxData: {\r\n type: Array,\r\n default: []\r\n }\r\n },\r\n data(){\r\n return {\r\n boxValue: ''\r\n }\r\n },\r\n watch: {\r\n boxData(val){\r\n this.boxValue = val\r\n }\r\n },\r\n mounted(){\r\n this.boxValue = this.boxData ? deepCopy(this.boxData) : []\r\n },\r\n methods: {\r\n changeStyle(val){\r\n this.$emit('update:boxData' , val)\r\n }\r\n }\r\n}\r\n</script>\r\n<style>\r\n \r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartBaseBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartBaseBox.vue?vue&type=template&id=db8b1a32&\"\nimport script from \"./ChartBaseBox.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartBaseBox.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 复用的组件和方法\r\n// const ChartBaseLabel = () => import('@/packages/ChartMix/chartChips/base/ChartBaseLabel')\r\n// const ChartBaseSwitch = () => import('@/packages/ChartMix/chartChips/base/ChartBaseSwitch')\r\n// const ChartBaseInput = () => import('@/packages/ChartMix/chartChips/base/ChartBaseInput')\r\n// const ChartBaseSelect = () => import('@/packages/ChartMix/chartChips/base/ChartBaseSelect')\r\n// const ChartBaseSlider = () => import('@/packages/ChartMix/chartChips/base/ChartBaseSlider')\r\n// const ChartBaseBox = () => import('@/packages/ChartMix/chartChips/base/ChartBaseBox')\r\n\r\nimport { mapActions } from 'vuex'\r\nimport { deepCopy } from '@/utils/util'\r\nimport isEqual from 'lodash/isEqual'\r\n// import { isEqual } from 'lodash'\r\n\r\nimport ChartBaseLabel from '@/packages/ChartMix/chartChips/base/ChartBaseLabel'\r\nimport ChartBaseSwitch from '@/packages/ChartMix/chartChips/base/ChartBaseSwitch'\r\nimport ChartBaseInput from '@/packages/ChartMix/chartChips/base/ChartBaseInput'\r\nimport ChartBaseSelect from '@/packages/ChartMix/chartChips/base/ChartBaseSelect'\r\nimport ChartBaseSlider from '@/packages/ChartMix/chartChips/base/ChartBaseSlider'\r\nimport ChartBaseBox from '@/packages/ChartMix/chartChips/base/ChartBaseBox'\r\n\r\n\r\n// 重复引入的组件\r\nconst importComp = function(t){\r\n return {\r\n 'chart-base-label': t.ChartBaseLabel,\r\n 'chart-base-input': t.ChartBaseInput,\r\n 'chart-base-switch': t.ChartBaseSwitch,\r\n 'chart-base-slider': t.ChartBaseSlider,\r\n 'chart-base-select': t.ChartBaseSelect\r\n }\r\n}\r\n\r\nexport {\r\n ChartBaseLabel,\r\n ChartBaseSwitch,\r\n ChartBaseInput,\r\n ChartBaseSelect,\r\n ChartBaseSlider,\r\n ChartBaseBox,\r\n deepCopy,\r\n isEqual,\r\n importComp,\r\n mapActions\r\n}","<template>\r\n <!-- 主标题设置 -->\r\n <el-collapse-item name=\"1\">\r\n <template slot=\"title\">\r\n {{setItem.modalName}}\r\n <i class=\"iconfont icon-biaoti\"></i>\r\n </template>\r\n\r\n <!-- 显示标题 -->\r\n <chart-base-switch :switchValue.sync=\"title.show\">\r\n <div slot=\"title\">{{setItem.show}}</div>\r\n </chart-base-switch>\r\n\r\n <!-- 标题内容 -->\r\n <chart-base-input :inputValue.sync=\"title.text\" :placeholder=\"setItem.placeholder\">\r\n <div slot=\"input\">{{setItem.text}}</div>\r\n </chart-base-input>\r\n\r\n <!-- 字体样式 -->\r\n <chart-base-label :router=\"router + '/label'\" :baseLabelOption.sync=\"title.label\">\r\n <div slot=\"title\">{{setItem.label}}</div>\r\n </chart-base-label>\r\n\r\n <!-- 标题位置 -->\r\n <chart-base-select :selectOption=\"positionData\" :selectValue.sync=\"title.position.value\">\r\n <div slot=\"select\">{{setItem.position}}</div>\r\n </chart-base-select>\r\n\r\n <!-- 自定义位置 -->\r\n <el-row v-if=\"title.position.value === 'custom'\">\r\n <!-- 左边距偏移量 -->\r\n <chart-base-slider\r\n :baseSliderOption.sync=\"title.position.offsetX\"\r\n :unit=\"'%'\"\r\n :content=\"setItem.offsetL\"\r\n ></chart-base-slider>\r\n\r\n <!-- 上边距偏移量 -->\r\n <chart-base-slider\r\n :baseSliderOption.sync=\"title.position.offsetY\"\r\n :unit=\"'%'\"\r\n :content=\"setItem.offsetT\"\r\n ></chart-base-slider>\r\n </el-row>\r\n </el-collapse-item>\r\n</template>\r\n\r\n<script>\r\nimport * as t from \"@/utils/importUtil\";\r\nimport { positionOption } from \"@/data/chartJson\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\nexport default {\r\n name: \"ChartTitle\",\r\n props: {\r\n router: String,\r\n chartAllType: String,\r\n titleOption: Object,\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n components: {\r\n ...t.importComp(t),\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.setItem = transCN[\"chartTitle\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartTitle\"];\r\n },\r\n data: function () {\r\n return {\r\n title: \"\", //整个title设置,\r\n positionData: positionOption,\r\n isChange: false,\r\n setItem:{}\r\n };\r\n },\r\n watch: {\r\n titleOption: {\r\n handler: function (newVal, oldVal) {\r\n if (t.isEqual(this.title, newVal)) {\r\n return;\r\n }\r\n if (oldVal) {\r\n this.isChange = true;\r\n }\r\n this.title = t.deepCopy(newVal);\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n title: {\r\n handler: function (newVal, oldVal) {\r\n if (this.isChange) {\r\n this.isChange = !this.isChange;\r\n return;\r\n }\r\n // 改变值就重新渲染\r\n if (oldVal) {\r\n this.changeTitle();\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n lang(val) {\r\n if (val == \"ch\") {\r\n this.setItem = transCN[\"chartTitle\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartTitle\"];\r\n },\r\n },\r\n methods: {\r\n ...t.mapActions(\"chartSetting\", [\"updateChartItem\"]),\r\n changeTitle() {\r\n const updateObj = {\r\n updateObj: t.deepCopy(this.title),\r\n router: this.router,\r\n };\r\n this.updateChartItem(updateObj);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style></style>\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTitle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTitle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartTitle.vue?vue&type=template&id=0fa20870&\"\nimport script from \"./ChartTitle.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartTitle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{attrs:{\"name\":\"2\"}},[_c('template',{slot:\"title\"},[_vm._v(\" \"+_vm._s(_vm.setItem.modalName)+\"     \"),_c('i',{staticClass:\"iconfont icon-biaoti\"})]),_c('chart-base-input',{attrs:{\"inputValue\":_vm.subTitle.text,\"placeholder\":_vm.setItem.placeholder},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.subTitle, \"text\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.subTitle, \"text\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.text))])]),_c('chart-base-label',{attrs:{\"router\":_vm.router + '/label',\"baseLabelOption\":_vm.subTitle.label}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.label))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.distanceOption,\"selectValue\":_vm.subTitle.distance.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.subTitle.distance, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.subTitle.distance, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.gap))])]),(_vm.subTitle.distance.value === 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.subTitle.distance.cusGap,\"unit\":'px',\"content\":_vm.setItem.content},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.subTitle.distance, \"cusGap\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.subTitle.distance, \"cusGap\", $event)}}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <!-- 副标题设置 -->\r\n <el-collapse-item name=\"2\">\r\n <template slot=\"title\">\r\n {{setItem.modalName}}&nbsp;&nbsp;&nbsp;&nbsp;\r\n <i class=\"iconfont icon-biaoti\"></i>\r\n </template>\r\n\r\n <!-- 副标题内容 -->\r\n <chart-base-input :inputValue.sync=\"subTitle.text\" :placeholder=\"setItem.placeholder\">\r\n <div slot=\"input\">{{setItem.text}}</div>\r\n </chart-base-input>\r\n\r\n <!-- 副标题样式 -->\r\n <chart-base-label :router=\"router + '/label'\" :baseLabelOption=\"subTitle.label\">\r\n <div slot=\"title\">{{setItem.label}}</div>\r\n </chart-base-label>\r\n\r\n <!-- 主副标题间距 -->\r\n <chart-base-select :selectOption=\"distanceOption\" :selectValue.sync=\"subTitle.distance.value\">\r\n <div slot=\"select\">{{setItem.gap}}</div>\r\n </chart-base-select>\r\n\r\n <!-- 自定义间距 -->\r\n <chart-base-slider\r\n v-if=\"subTitle.distance.value === 'custom'\"\r\n :baseSliderOption.sync=\"subTitle.distance.cusGap\"\r\n :unit=\"'px'\"\r\n :content=\"setItem.content\"\r\n ></chart-base-slider>\r\n </el-collapse-item>\r\n</template>\r\n\r\n<script>\r\nimport * as t from \"@/utils/importUtil\";\r\nimport { distanceOption } from \"@/data/chartJson\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\nexport default {\r\n name: \"ChartSubTitle\",\r\n props: {\r\n router: String,\r\n chartAllType: String,\r\n subTitleOption: Object,\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n components: {\r\n ...t.importComp(t),\r\n },\r\n data: function () {\r\n return {\r\n subTitle: {}, //整个title设置\r\n distanceOption: t.deepCopy(distanceOption), //位置选择数组\r\n setItem: {},\r\n };\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.setItem = transCN[\"chartSubTitle\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartSubTitle\"];\r\n },\r\n watch: {\r\n subTitleOption: {\r\n handler: function (newVal) {\r\n if (t.isEqual(this.subTitle, newVal)) {\r\n return;\r\n }\r\n this.subTitle = t.deepCopy(newVal); //传过来的值需要深拷贝防止数据流向父组件传递\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n subTitle: {\r\n handler: function (newVal, oldVal) {\r\n // 改变值就重新渲染\r\n if (oldVal) {\r\n this.changeTitle();\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n lang(val) {\r\n if (val == \"ch\") {\r\n this.setItem = transCN[\"chartSubTitle\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartSubTitle\"];\r\n },\r\n },\r\n methods: {\r\n ...t.mapActions(\"chartSetting\", [\"updateChartItem\"]),\r\n changeTitle() {\r\n const updateObj = {\r\n updateObj: t.deepCopy(this.subTitle),\r\n router: this.router,\r\n };\r\n this.updateChartItem(updateObj);\r\n },\r\n },\r\n};\r\n</script>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartSubTitle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartSubTitle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartSubTitle.vue?vue&type=template&id=18f1cac1&\"\nimport script from \"./ChartSubTitle.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartSubTitle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{attrs:{\"name\":\"4\"}},[_c('template',{slot:\"title\"},[_vm._v(\" \"+_vm._s(_vm.setItem.modalName)+\" \"),_c('i',{staticClass:\"iconfont icon-biaoti\"})]),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.cursor.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.cursor, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.cursor, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.show))])]),_c('chart-base-label',{attrs:{\"router\":_vm.router + '/label',\"baseLabelOption\":_vm.cursor.label}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.label))])]),_c('el-row',{staticStyle:{\"margin-top\":\"10px\"}},[_c('el-col',{attrs:{\"span\":6}},[_vm._v(_vm._s(_vm.setItem.background))]),_c('el-col',{attrs:{\"span\":3}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},model:{value:(_vm.cursor.backgroundColor),callback:function ($$v) {_vm.$set(_vm.cursor, \"backgroundColor\", $$v)},expression:\"cursor.backgroundColor\"}})],1)],1),_c('chart-base-select',{attrs:{\"selectOption\":_vm.triggerMethodArr,\"selectValue\":_vm.cursor.triggerOn},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor, \"triggerOn\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor, \"triggerOn\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.trigger))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.triggerTypeArr,\"selectValue\":_vm.cursor.triggerType},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor, \"triggerType\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor, \"triggerType\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.type))])]),(_vm.cursor.triggerType != 'item')?_c('div',[_c('chart-base-select',{attrs:{\"selectOption\":_vm.lineStyleOption,\"selectValue\":_vm.cursor.axisPointer.style.type},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor.axisPointer.style, \"type\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor.axisPointer.style, \"type\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.lineType))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.lineWeightOption,\"selectValue\":_vm.cursor.axisPointer.style.width},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor.axisPointer.style, \"width\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor.axisPointer.style, \"width\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.lineWidth))])]),_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{attrs:{\"span\":6}},[_vm._v(_vm._s(_vm.setItem.color))]),_c('el-col',{attrs:{\"span\":3}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},model:{value:(_vm.cursor.axisPointer.style.color),callback:function ($$v) {_vm.$set(_vm.cursor.axisPointer.style, \"color\", $$v)},expression:\"cursor.axisPointer.style.color\"}})],1)],1),_c('chart-base-select',{attrs:{\"selectOption\":_vm.axisPointerArr,\"selectValue\":_vm.cursor.axisPointer.type},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor.axisPointer, \"type\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor.axisPointer, \"type\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.axisType))])])],1):_vm._e(),(_vm.cursor.triggerType == 'item')?_c('chart-base-select',{attrs:{\"selectOption\":_vm.posOption,\"selectValue\":_vm.cursor.position},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor, \"position\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor, \"position\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.position))])]):_vm._e(),_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{attrs:{\"span\":2}},[_c('i',{staticClass:\"el-icon-menu\"})]),_c('el-col',{attrs:{\"span\":8}},[_vm._v(_vm._s(_vm.setItem.suffix))])],1),_vm._l((_vm.seriesOption),function(item,i){return _c('el-row',{key:i,staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{attrs:{\"span\":6}},[_vm._v(_vm._s(item))]),_c('el-col',{attrs:{\"span\":4}},[_c('chart-base-input',{attrs:{\"hideCol\":true,\"placeholder\":_vm.setItem.placeholder}})],1),_c('el-col',{attrs:{\"span\":6}},[_c('chart-base-select',{attrs:{\"tooltip\":_vm.setItem.ratio,\"selectOption\":_vm.ratioOption,\"selectValue\":_vm.cursor.format[i].ratio,\"hideCol\":true},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor.format[i], \"ratio\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor.format[i], \"ratio\", $event)}}})],1),_c('el-col',{attrs:{\"span\":6}},[_c('chart-base-select',{attrs:{\"tooltip\":_vm.setItem.digit,\"selectOption\":_vm.digitOption,\"selectValue\":_vm.cursor.format[i].digit,\"hideCol\":true},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.cursor.format[i], \"digit\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.cursor.format[i], \"digit\", $event)}}})],1)],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-collapse-item name=\"4\">\r\n <template slot=\"title\">\r\n {{setItem.modalName}}\r\n <i class=\"iconfont icon-biaoti\"></i>\r\n </template>\r\n <!-- 显示提示框 -->\r\n <chart-base-switch :switchValue.sync=\"cursor.show\">\r\n <div slot=\"title\">{{setItem.show}}</div>\r\n </chart-base-switch>\r\n\r\n <!-- 提示框样式 -->\r\n <chart-base-label :router=\"router + '/label'\" :baseLabelOption=\"cursor.label\">\r\n <div slot=\"title\">{{setItem.label}}</div>\r\n </chart-base-label>\r\n\r\n <!-- 背景颜色 -->\r\n <el-row style=\"margin-top: 10px;\">\r\n <el-col :span=\"6\">{{setItem.background}}</el-col>\r\n <el-col :span=\"3\">\r\n <el-color-picker size=\"mini\" v-model=\"cursor.backgroundColor\"></el-color-picker>\r\n </el-col>\r\n </el-row>\r\n\r\n <!-- 提示触发条件 -->\r\n <chart-base-select :selectOption=\"triggerMethodArr\" :selectValue.sync=\"cursor.triggerOn\">\r\n <div slot=\"select\">{{setItem.trigger}}</div>\r\n </chart-base-select>\r\n\r\n <!-- 提示触发类型 -->\r\n <chart-base-select :selectOption=\"triggerTypeArr\" :selectValue.sync=\"cursor.triggerType\">\r\n <div slot=\"select\">{{setItem.type}}</div>\r\n </chart-base-select>\r\n\r\n <!-- 指示器配置 -->\r\n <div v-if=\"cursor.triggerType != 'item'\">\r\n <chart-base-select\r\n :selectOption=\"lineStyleOption\"\r\n :selectValue.sync=\"cursor.axisPointer.style.type\"\r\n >\r\n <div slot=\"select\">{{setItem.lineType}}</div>\r\n </chart-base-select>\r\n <chart-base-select\r\n :selectOption=\"lineWeightOption\"\r\n :selectValue.sync=\"cursor.axisPointer.style.width\"\r\n >\r\n <div slot=\"select\">{{setItem.lineWidth}}</div>\r\n </chart-base-select>\r\n <el-row style=\"margin-top: 15px;\">\r\n <el-col :span=\"6\">{{setItem.color}}</el-col>\r\n <el-col :span=\"3\">\r\n <el-color-picker size=\"mini\" v-model=\"cursor.axisPointer.style.color\"></el-color-picker>\r\n </el-col>\r\n </el-row>\r\n <chart-base-select :selectOption=\"axisPointerArr\" :selectValue.sync=\"cursor.axisPointer.type\">\r\n <div slot=\"select\">{{setItem.axisType}}</div>\r\n </chart-base-select>\r\n </div>\r\n\r\n <!-- 提示框浮层位置 -->\r\n <chart-base-select\r\n v-if=\"cursor.triggerType == 'item'\"\r\n :selectOption=\"posOption\"\r\n :selectValue.sync=\"cursor.position\"\r\n >\r\n <div slot=\"select\">{{setItem.position}}</div>\r\n </chart-base-select>\r\n\r\n <!-- 鼠标提示format -->\r\n <el-row style=\"margin-top: 15px;\">\r\n <el-col :span=\"2\">\r\n <i class=\"el-icon-menu\"></i>\r\n </el-col>\r\n <el-col :span=\"8\">{{setItem.suffix}}</el-col>\r\n </el-row>\r\n\r\n <el-row :key=\"i\" style=\"margin-top: 15px;\" v-for=\"(item , i) in seriesOption\">\r\n <el-col :span=\"6\">{{item}}</el-col>\r\n <el-col :span=\"4\">\r\n <!-- 鼠标提示后缀 -->\r\n <chart-base-input :hideCol=\"true\" :placeholder=\"setItem.placeholder\"></chart-base-input>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <!-- 数值比例 -->\r\n <chart-base-select\r\n :tooltip=\"setItem.ratio\"\r\n :selectOption=\"ratioOption\"\r\n :selectValue.sync=\"cursor.format[i].ratio\"\r\n :hideCol=\"true\"\r\n ></chart-base-select>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <!-- 小数位数 -->\r\n <chart-base-select\r\n :tooltip=\"setItem.digit\"\r\n :selectOption=\"digitOption\"\r\n :selectValue.sync=\"cursor.format[i].digit\"\r\n :hideCol=\"true\"\r\n ></chart-base-select>\r\n </el-col>\r\n </el-row>\r\n </el-collapse-item>\r\n</template>\r\n\r\n<script>\r\nimport * as t from \"@/utils/importUtil\";\r\nimport {\r\n fontSizeOption,\r\n lineStyleOption,\r\n lineWeightOption,\r\n posOption,\r\n ratioOption,\r\n digitOption,\r\n} from \"@/data/chartJson\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\nexport default {\r\n components: {\r\n ...t.importComp(t),\r\n },\r\n props: {\r\n router: String,\r\n chartAllType: String,\r\n cursorOption: Object,\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n data() {\r\n return {\r\n cursor: {}, //鼠标提示设置\r\n fontSizeOption: t.deepCopy(fontSizeOption),\r\n lineStyleOption: t.deepCopy(lineStyleOption),\r\n lineWeightOption: t.deepCopy(lineWeightOption),\r\n posOption: t.deepCopy(posOption),\r\n ratioOption: t.deepCopy(ratioOption),\r\n digitOption: t.deepCopy(digitOption),\r\n triggerTypeArr: [\r\n { value: \"item\", label: \"数据项图形触发\" },\r\n { value: \"axis\", label: \"坐标轴触发\" },\r\n ],\r\n axisPointerArr: [\r\n { value: \"line\", label: \"直线指示器\" },\r\n { value: \"shadow\", label: \"阴影指示器\" },\r\n { value: \"cross\", label: \"十字准星指示器\" },\r\n ],\r\n triggerMethodArr: [\r\n { value: \"mousemove\", label: \"鼠标移动\" },\r\n { value: \"click\", label: \"单击左键/鼠标划过\" },\r\n { value: \"mousemove|click\", label: \"同时触发\" },\r\n ],\r\n setItem: {},\r\n };\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.setItem = transCN[\"chartCursor\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartCursor\"];\r\n },\r\n watch: {\r\n cursorOption: {\r\n handler(newVal) {\r\n if (t.isEqual(this.cursor, newVal)) {\r\n return;\r\n }\r\n this.cursor = t.deepCopy(newVal);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n cursor: {\r\n handler: function (newVal, oldVal) {\r\n // 改变值就重新渲染\r\n if (oldVal) {\r\n this.changeCursor();\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n lang(val) {\r\n if (val == \"ch\") {\r\n this.setItem = transCN[\"chartCursor\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartCursor\"];\r\n },\r\n },\r\n computed: {\r\n seriesOption() {\r\n var arr = [];\r\n for (var i = 0; i < this.cursor.format.length; i++) {\r\n arr.push(this.cursor.format[i].seriesName);\r\n }\r\n return arr;\r\n },\r\n },\r\n methods: {\r\n ...t.mapActions(\"chartSetting\", [\"updateChartItem\"]),\r\n changeCursor() {\r\n const updateObj = {\r\n updateObj: t.deepCopy(this.cursor),\r\n router: this.router,\r\n };\r\n this.updateChartItem(updateObj);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartCursor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartCursor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartCursor.vue?vue&type=template&id=754b950d&\"\nimport script from \"./ChartCursor.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartCursor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{attrs:{\"name\":\"3\"}},[_c('template',{slot:\"title\"},[_vm._v(\" \"+_vm._s(_vm.setItem.modalName)+\" \"),_c('i',{staticClass:\"iconfont icon-biaoti\"})]),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.legend.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.legend, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.legend, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"显示图例\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.legend.show),expression:\"legend.show\"}]},[_c('chart-base-label',{attrs:{\"router\":_vm.router + '/label',\"baseLabelOption\":_vm.legend.label},on:{\"update:baseLabelOption\":function($event){return _vm.$set(_vm.legend, \"label\", $event)},\"update:base-label-option\":function($event){return _vm.$set(_vm.legend, \"label\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"图例样式\")])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.positionOption,\"selectValue\":_vm.legend.position.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.legend.position, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.legend.position, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(\"图例位置\")])]),(_vm.legend.position.value === 'custom')?_c('el-row',[_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.legend.position.offsetX,\"unit\":'%',\"content\":'滑动修改水平偏移量'},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.legend.position, \"offsetX\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.legend.position, \"offsetX\", $event)}}}),_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.legend.position.offsetY,\"unit\":'%',\"content\":'滑动修改垂直偏移量'},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.legend.position, \"offsetY\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.legend.position, \"offsetY\", $event)}}})],1):_vm._e(),_c('chart-base-select',{attrs:{\"selectOption\":_vm.dirOptions,\"selectValue\":_vm.legend.position.direction},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.legend.position, \"direction\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.legend.position, \"direction\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(\"图例朝向\")])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.sizeOption,\"selectValue\":_vm.legend.width.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.legend.width, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.legend.width, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(\"图例宽度\")])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.sizeOption,\"selectValue\":_vm.legend.height.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.legend.height, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.legend.height, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(\"图例高度\")])]),(_vm.legend.width.value == 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.legend.width.cusSize,\"unit\":'px',\"content\":'滑动修改图例宽度'},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.legend.width, \"cusSize\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.legend.width, \"cusSize\", $event)}}}):_vm._e(),(_vm.legend.height.value == 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.legend.height.cusSize,\"unit\":'px',\"content\":'滑动修改图例高度'},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.legend.height, \"cusSize\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.legend.height, \"cusSize\", $event)}}}):_vm._e(),_c('chart-base-select',{attrs:{\"selectOption\":_vm.distanceOption,\"selectValue\":_vm.legend.distance.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.legend.distance, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.legend.distance, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(\"图例间距\")])]),(_vm.legend.distance.value == 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.legend.distance.cusGap,\"unit\":'px',\"content\":'滑动修改图例间距'},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.legend.distance, \"cusGap\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.legend.distance, \"cusGap\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"图例间距\")])]):_vm._e()],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-collapse-item name=\"3\">\r\n <template slot=\"title\">\r\n {{setItem.modalName}}\r\n <i class=\"iconfont icon-biaoti\"></i>\r\n </template>\r\n\r\n <!-- 图例显示 -->\r\n <chart-base-switch :switchValue.sync=\"legend.show\">\r\n <div slot=\"title\">显示图例</div>\r\n </chart-base-switch>\r\n\r\n <div v-show=\"legend.show\">\r\n <!-- 图例样式 -->\r\n <chart-base-label :router=\"router + '/label'\" :baseLabelOption.sync=\"legend.label\">\r\n <div slot=\"title\">图例样式</div>\r\n </chart-base-label>\r\n\r\n <!-- 图例位置/朝向-->\r\n <chart-base-select :selectOption=\"positionOption\" :selectValue.sync=\"legend.position.value\">\r\n <div slot=\"select\">图例位置</div>\r\n </chart-base-select>\r\n\r\n <!-- 自定义图例位置 -->\r\n <el-row v-if=\"legend.position.value === 'custom'\">\r\n <!-- 水平偏移量 -->\r\n <chart-base-slider\r\n :baseSliderOption.sync=\"legend.position.offsetX\"\r\n :unit=\"'%'\"\r\n :content=\"'滑动修改水平偏移量'\"\r\n ></chart-base-slider>\r\n\r\n <!-- 垂直偏移量 -->\r\n <chart-base-slider\r\n :baseSliderOption.sync=\"legend.position.offsetY\"\r\n :unit=\"'%'\"\r\n :content=\"'滑动修改垂直偏移量'\"\r\n ></chart-base-slider>\r\n </el-row>\r\n\r\n <chart-base-select :selectOption=\"dirOptions\" :selectValue.sync=\"legend.position.direction\">\r\n <div slot=\"select\">图例朝向</div>\r\n </chart-base-select>\r\n\r\n <!-- 图例大小 -->\r\n <chart-base-select :selectOption=\"sizeOption\" :selectValue.sync=\"legend.width.value\">\r\n <div slot=\"select\">图例宽度</div>\r\n </chart-base-select>\r\n <chart-base-select :selectOption=\"sizeOption\" :selectValue.sync=\"legend.height.value\">\r\n <div slot=\"select\">图例高度</div>\r\n </chart-base-select>\r\n\r\n <!-- 自定义图例大小 -->\r\n <chart-base-slider\r\n v-if=\"legend.width.value == 'custom'\"\r\n :baseSliderOption.sync=\"legend.width.cusSize\"\r\n :unit=\"'px'\"\r\n :content=\"'滑动修改图例宽度'\"\r\n ></chart-base-slider>\r\n <chart-base-slider\r\n v-if=\"legend.height.value == 'custom'\"\r\n :baseSliderOption.sync=\"legend.height.cusSize\"\r\n :unit=\"'px'\"\r\n :content=\"'滑动修改图例高度'\"\r\n ></chart-base-slider>\r\n\r\n <!-- 图例间距 -->\r\n <chart-base-select :selectOption=\"distanceOption\" :selectValue.sync=\"legend.distance.value\">\r\n <div slot=\"select\">图例间距</div>\r\n </chart-base-select>\r\n\r\n <!-- 自定义图例间距 -->\r\n <chart-base-slider\r\n v-if=\"legend.distance.value == 'custom'\"\r\n :baseSliderOption.sync=\"legend.distance.cusGap\"\r\n :unit=\"'px'\"\r\n :content=\"'滑动修改图例间距'\"\r\n >\r\n <div slot=\"title\">图例间距</div>\r\n </chart-base-slider>\r\n </div>\r\n </el-collapse-item>\r\n</template>\r\n\r\n<script>\r\nimport { positionOption, sizeOption, distanceOption } from \"@/data/chartJson\";\r\nimport * as t from \"@/utils/importUtil\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\nexport default {\r\n props: {\r\n legendOption: Object,\r\n chartAllType: String,\r\n router: String,\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n data() {\r\n return {\r\n legend: {}, //图例设置\r\n positionOption: t.deepCopy(positionOption),\r\n sizeOption: t.deepCopy(sizeOption),\r\n distanceOption: t.deepCopy(distanceOption),\r\n dirOptions: [\r\n { value: \"horizontal\", label: \"水平\" },\r\n { value: \"vertical\", label: \"垂直\" },\r\n ],\r\n setItem:{}\r\n };\r\n },\r\n components: {\r\n ...t.importComp(t),\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.setItem = transCN[\"chartLegend\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartLegend\"];\r\n },\r\n watch: {\r\n legendOption: {\r\n handler(newVal) {\r\n if (t.isEqual(this.legend, newVal)) {\r\n return;\r\n }\r\n this.legend = t.deepCopy(newVal);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n legend: {\r\n handler: function (newVal, oldVal) {\r\n // 改变值就重新渲染\r\n if (oldVal) {\r\n this.changeLegend();\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n lang(val) {\r\n if (val == \"ch\") {\r\n this.setItem = transCN[\"chartLegend\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartLegend\"];\r\n },\r\n },\r\n methods: {\r\n ...t.mapActions(\"chartSetting\", [\"updateChartItem\"]),\r\n changeLegend() {\r\n const updateObj = {\r\n updateObj: t.deepCopy(this.legend),\r\n router: this.router,\r\n };\r\n this.updateChartItem(updateObj);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n</style>\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartLegend.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartLegend.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartLegend.vue?vue&type=template&id=57cb40f1&\"\nimport script from \"./ChartLegend.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartLegend.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{attrs:{\"name\":\"6\"}},[_c('template',{slot:\"title\"},[_vm._v(\" \"+_vm._s(_vm.setItem.modalName)+\" \"),_c('i',{staticClass:\"iconfont icon-biaoti\"})]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.axisGroup,\"selectValue\":_vm.axis.axisType},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.axis, \"axisType\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.axis, \"axisType\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.select))])]),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.series.name))])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.series.show),expression:\"series.show\"}]},[_c('chart-base-input',{attrs:{\"inputValue\":_vm.series.title.text,\"placeholder\":_vm.setItem.placeholder},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.series.title, \"text\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.series.title, \"text\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.text))])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.series.title.text),expression:\"series.title.text\"}],staticStyle:{\"margin-top\":\"15px\"}},[_c('chart-base-label',{attrs:{\"router\":_vm.router + '/label',\"baseLabelOption\":_vm.series.title.label},on:{\"update:baseLabelOption\":function($event){return _vm.$set(_vm.series.title, \"label\", $event)},\"update:base-label-option\":function($event){return _vm.$set(_vm.series.title, \"label\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.label))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.fzPosOption,\"selectValue\":_vm.series.title.fzPosition},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.title, \"fzPosition\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.title, \"fzPosition\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.align))])])],1),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.inverse},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series, \"inverse\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series, \"inverse\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.reverse))])]),_c('chart-base-slider',{attrs:{\"hideCol\":true,\"max\":10,\"baseSliderOption\":_vm.series.tickLabel.optimize,\"unit\":'个',\"content\":_vm.setItem.content},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.tickLabel, \"optimize\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.tickLabel, \"optimize\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.intenval))])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.series.title.text),expression:\"series.title.text\"}]},[_c('chart-base-slider',{attrs:{\"hideCol\":true,\"baseSliderOption\":_vm.series.title.nameGap,\"unit\":'px',\"content\":_vm.setItem.content1},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.title, \"nameGap\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.title, \"nameGap\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.gap))])]),_c('chart-base-slider',{attrs:{\"hideCol\":true,\"format\":_vm.formatRotation+'',\"max\":180,\"min\":-180,\"baseSliderOption\":_vm.series.title.rotate,\"unit\":'°',\"content\":_vm.setItem.content2},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.title, \"rotate\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.title, \"rotate\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.title))])])],1),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.tickLine.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series.tickLine, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series.tickLine, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.showLine))])]),_c('chart-base-slider',{attrs:{\"hideCol\":true,\"min\":1,\"baseSliderOption\":_vm.series.tickLine.width,\"unit\":'px',\"content\":_vm.setItem.content3},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.tickLine, \"width\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.tickLine, \"width\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.lineWidth))])]),_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":7}},[_vm._v(_vm._s(_vm.setItem.lineColor))]),_c('el-col',{attrs:{\"push\":14,\"span\":3}},[_c('el-tooltip',{attrs:{\"open-delay\":500,\"content\":_vm.setItem.lineColor,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},model:{value:(_vm.series.tickLine.color),callback:function ($$v) {_vm.$set(_vm.series.tickLine, \"color\", $$v)},expression:\"series.tickLine.color\"}})],1)],1)],1),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.tick.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series.tick, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series.tick, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.showTick))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.orient,\"selectValue\":_vm.series.tick.position},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.tick, \"position\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.tick, \"position\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.position))])]),_c('chart-base-slider',{attrs:{\"hideCol\":true,\"min\":1,\"baseSliderOption\":_vm.series.tick.length,\"unit\":'px',\"content\":_vm.setItem.content4},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.tick, \"length\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.tick, \"length\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.tickLength))])]),_c('chart-base-slider',{attrs:{\"hideCol\":true,\"max\":20,\"min\":1,\"baseSliderOption\":_vm.series.tick.width,\"unit\":'px',\"content\":_vm.setItem.content5},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.tick, \"width\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.tick, \"width\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.tickWidth))])]),_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":6}},[_vm._v(_vm._s(_vm.setItem.tickColor))]),_c('el-col',{attrs:{\"push\":14,\"span\":4}},[_c('el-tooltip',{attrs:{\"open-delay\":500,\"content\":_vm.setItem.tickColor,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},model:{value:(_vm.series.tick.color),callback:function ($$v) {_vm.$set(_vm.series.tick, \"color\", $$v)},expression:\"series.tick.color\"}})],1)],1)],1),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.tickLabel.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.showLabel))])]),_c('chart-base-slider',{attrs:{\"hideCol\":true,\"format\":_vm.formatRotation,\"max\":180,\"min\":-180,\"baseSliderOption\":_vm.series.tickLabel.rotate,\"unit\":'°',\"content\":_vm.setItem.content6},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.tickLabel, \"rotate\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.tickLabel, \"rotate\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.rotate))])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showLabel),expression:\"showLabel\"}]},[_c('chart-base-input',{attrs:{\"type\":'text',\"inputValue\":_vm.series.tickLabel.min,\"placeholder\":_vm.setItem.content7},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"min\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"min\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.min))])]),_c('chart-base-input',{attrs:{\"type\":'text',\"inputValue\":_vm.series.tickLabel.max,\"placeholder\":_vm.setItem.content8},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"max\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"max\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.max))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.ratioOption,\"selectValue\":_vm.series.tickLabel.ratio},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"ratio\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"ratio\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.ratio))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.digitOption,\"selectValue\":_vm.series.tickLabel.digit},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"digit\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"digit\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.digit))])])],1),_c('chart-base-input',{attrs:{\"inputValue\":_vm.series.tickLabel.prefix,\"placeholder\":_vm.setItem.content9},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"prefix\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"prefix\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.prefix))])]),_c('chart-base-input',{attrs:{\"inputValue\":_vm.series.tickLabel.suffix,\"placeholder\":_vm.setItem.content10},on:{\"update:inputValue\":function($event){return _vm.$set(_vm.series.tickLabel, \"suffix\", $event)},\"update:input-value\":function($event){return _vm.$set(_vm.series.tickLabel, \"suffix\", $event)}}},[_c('div',{attrs:{\"slot\":\"input\"},slot:\"input\"},[_vm._v(_vm._s(_vm.setItem.suffix))])]),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.netLine.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series.netLine, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series.netLine, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.showNet))])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.series.netLine.show),expression:\"series.netLine.show\"}]},[_c('chart-base-slider',{attrs:{\"hideCol\":true,\"max\":20,\"min\":1,\"baseSliderOption\":_vm.series.netLine.width,\"unit\":'px',\"content\":_vm.setItem.content11},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.netLine, \"width\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.netLine, \"width\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.netWidth))])]),_c('chart-base-select',{attrs:{\"selectOption\":_vm.lineStyleOption,\"selectValue\":_vm.series.netLine.type},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.netLine, \"type\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.netLine, \"type\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.netType))])]),_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{staticClass:\"title\",attrs:{\"span\":8}},[_vm._v(_vm._s(_vm.setItem.netColor))]),_c('el-col',{attrs:{\"push\":13,\"span\":3}},[_c('el-tooltip',{attrs:{\"open-delay\":500,\"content\":_vm.setItem.netColor,\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('el-color-picker',{attrs:{\"label\":true,\"size\":\"mini\"},model:{value:(_vm.series.netLine.color),callback:function ($$v) {_vm.$set(_vm.series.netLine, \"color\", $$v)},expression:\"series.netLine.color\"}})],1)],1)],1),_c('chart-base-select',{attrs:{\"selectOption\":_vm.intervalOption,\"selectValue\":_vm.series.netLine.interval.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.netLine.interval, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.netLine.interval, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.netInterval))])]),(_vm.series.netLine.interval.value == 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.series.netLine.interval.cusNumber,\"unit\":'个',\"content\":_vm.setItem.content12},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.netLine.interval, \"cusNumber\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.netLine.interval, \"cusNumber\", $event)}}}):_vm._e()],1),_c('chart-base-switch',{attrs:{\"switchValue\":_vm.series.netArea.show},on:{\"update:switchValue\":function($event){return _vm.$set(_vm.series.netArea, \"show\", $event)},\"update:switch-value\":function($event){return _vm.$set(_vm.series.netArea, \"show\", $event)}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.setItem.showArea))])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.series.netArea.show),expression:\"series.netArea.show\"}]},[_c('chart-base-select',{attrs:{\"selectOption\":_vm.intervalOption,\"selectValue\":_vm.series.netArea.interval.value},on:{\"update:selectValue\":function($event){return _vm.$set(_vm.series.netArea.interval, \"value\", $event)},\"update:select-value\":function($event){return _vm.$set(_vm.series.netArea.interval, \"value\", $event)}}},[_c('div',{attrs:{\"slot\":\"select\"},slot:\"select\"},[_vm._v(_vm._s(_vm.setItem.areaInterval))])]),(_vm.series.netArea.interval.value == 'custom')?_c('chart-base-slider',{attrs:{\"baseSliderOption\":_vm.series.netArea.interval.cusNumber,\"unit\":'个',\"content\":_vm.setItem.content12},on:{\"update:baseSliderOption\":function($event){return _vm.$set(_vm.series.netArea.interval, \"cusNumber\", $event)},\"update:base-slider-option\":function($event){return _vm.$set(_vm.series.netArea.interval, \"cusNumber\", $event)}}}):_vm._e(),_c('el-row',{staticStyle:{\"margin-top\":\"15px\"}},[_c('el-col',{attrs:{\"span\":6}},[_vm._v(_vm._s(_vm.setItem.area1))]),_c('el-col',{attrs:{\"span\":3}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},model:{value:(_vm.series.netArea.colorOne),callback:function ($$v) {_vm.$set(_vm.series.netArea, \"colorOne\", $$v)},expression:\"series.netArea.colorOne\"}})],1),_c('el-col',{attrs:{\"span\":6}},[_vm._v(_vm._s(_vm.setItem.area2))]),_c('el-col',{attrs:{\"span\":3}},[_c('el-color-picker',{attrs:{\"size\":\"mini\"},model:{value:(_vm.series.netArea.colorTwo),callback:function ($$v) {_vm.$set(_vm.series.netArea, \"colorTwo\", $$v)},expression:\"series.netArea.colorTwo\"}})],1)],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-collapse-item name=\"6\">\r\n <template slot=\"title\">\r\n {{setItem.modalName}}\r\n <i class=\"iconfont icon-biaoti\"></i>\r\n </template>\r\n <!-- 选择坐标轴 -->\r\n <chart-base-select :selectOption=\"axisGroup\" :selectValue.sync=\"axis.axisType\">\r\n <div slot=\"select\">{{setItem.select}}</div>\r\n </chart-base-select>\r\n <!-- 是否显示坐标轴 -->\r\n <chart-base-switch :switchValue.sync=\"series.show\">\r\n <div slot=\"title\">{{series.name}}</div>\r\n </chart-base-switch>\r\n\r\n <div v-show=\"series.show\">\r\n <!-- 标题内容 -->\r\n <chart-base-input :inputValue.sync=\"series.title.text\" :placeholder=\"setItem.placeholder\">\r\n <div slot=\"input\">{{setItem.text}}</div>\r\n </chart-base-input>\r\n\r\n <div style=\"margin-top: 15px;\" v-show=\"series.title.text\">\r\n <!-- 文本样式 -->\r\n <chart-base-label :router=\"router + '/label'\" :baseLabelOption.sync=\"series.title.label\">\r\n <div slot=\"title\">{{setItem.label}}</div>\r\n </chart-base-label>\r\n <!-- 文本对齐方式 -->\r\n <chart-base-select :selectOption=\"fzPosOption\" :selectValue.sync=\"series.title.fzPosition\">\r\n <div slot=\"select\">{{setItem.align}}</div>\r\n </chart-base-select>\r\n </div>\r\n\r\n <!-- 反向坐标轴 -->\r\n <chart-base-switch :switchValue.sync=\"series.inverse\">\r\n <div slot=\"title\">{{setItem.reverse}}</div>\r\n </chart-base-switch>\r\n\r\n <!-- 坐标轴间隔数 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :max=\"10\"\r\n :baseSliderOption.sync=\"series.tickLabel.optimize\"\r\n :unit=\"'个'\"\r\n :content=\"setItem.content\"\r\n >\r\n <div slot=\"title\">{{setItem.intenval}}</div>\r\n </chart-base-slider>\r\n\r\n <div v-show=\"series.title.text\">\r\n <!-- 标题与轴线距离 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :baseSliderOption.sync=\"series.title.nameGap\"\r\n :unit=\"'px'\"\r\n :content=\"setItem.content1\"\r\n >\r\n <div slot=\"title\">{{setItem.gap}}</div>\r\n </chart-base-slider>\r\n <!-- 倾斜轴标题 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :format=\"formatRotation+''\"\r\n :max=\"180\"\r\n :min=\"-180\"\r\n :baseSliderOption.sync=\"series.title.rotate\"\r\n :unit=\"'°'\"\r\n :content=\"setItem.content2\"\r\n >\r\n <div slot=\"title\">{{setItem.title}}</div>\r\n </chart-base-slider>\r\n </div>\r\n\r\n <!-- 显示刻度线 -->\r\n <chart-base-switch :switchValue.sync=\"series.tickLine.show\">\r\n <div slot=\"title\">{{setItem.showLine}}</div>\r\n </chart-base-switch>\r\n\r\n <!-- 刻度线宽度 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :min=\"1\"\r\n :baseSliderOption.sync=\"series.tickLine.width\"\r\n :unit=\"'px'\"\r\n :content=\"setItem.content3\"\r\n >\r\n <div slot=\"title\">{{setItem.lineWidth}}</div>\r\n </chart-base-slider>\r\n <!-- 刻度线颜色 -->\r\n <el-row style=\"margin-top:15px;\">\r\n <el-col :span=\"7\" class=\"title\">{{setItem.lineColor}}</el-col>\r\n <el-col :push=\"14\" :span=\"3\">\r\n <el-tooltip :open-delay=\"500\" :content=\"setItem.lineColor\" effect=\"dark\" placement=\"bottom\">\r\n <el-color-picker size=\"mini\" v-model=\"series.tickLine.color\"></el-color-picker>\r\n </el-tooltip>\r\n </el-col>\r\n </el-row>\r\n\r\n <!-- 显示刻度 -->\r\n <chart-base-switch :switchValue.sync=\"series.tick.show\">\r\n <div slot=\"title\">{{setItem.showTick}}</div>\r\n </chart-base-switch>\r\n\r\n <!-- 刻度位置 -->\r\n <chart-base-select :selectOption=\"orient\" :selectValue.sync=\"series.tick.position\">\r\n <div slot=\"select\">{{setItem.position}}</div>\r\n </chart-base-select>\r\n\r\n <!-- 刻度长度 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :min=\"1\"\r\n :baseSliderOption.sync=\"series.tick.length\"\r\n :unit=\"'px'\"\r\n :content=\"setItem.content4\"\r\n >\r\n <div slot=\"title\">{{setItem.tickLength}}</div>\r\n </chart-base-slider>\r\n\r\n <!-- 刻度宽度 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :max=\"20\"\r\n :min=\"1\"\r\n :baseSliderOption.sync=\"series.tick.width\"\r\n :unit=\"'px'\"\r\n :content=\"setItem.content5\"\r\n >\r\n <div slot=\"title\">{{setItem.tickWidth}}</div>\r\n </chart-base-slider>\r\n <!-- 刻度颜色 -->\r\n <el-row style=\"margin-top:15px;\">\r\n <el-col :span=\"6\" class=\"title\">{{setItem.tickColor}}</el-col>\r\n <el-col :push=\"14\" :span=\"4\">\r\n <el-tooltip :open-delay=\"500\" :content=\"setItem.tickColor\" effect=\"dark\" placement=\"bottom\">\r\n <el-color-picker size=\"mini\" v-model=\"series.tick.color\"></el-color-picker>\r\n </el-tooltip>\r\n </el-col>\r\n </el-row>\r\n\r\n <!-- 显示刻度标签 -->\r\n <chart-base-switch :switchValue.sync=\"series.tickLabel.show\">\r\n <div slot=\"title\">{{setItem.showLabel}}</div>\r\n </chart-base-switch>\r\n\r\n <!-- 倾斜标签 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :format=\"formatRotation\"\r\n :max=\"180\"\r\n :min=\"-180\"\r\n :baseSliderOption.sync=\"series.tickLabel.rotate\"\r\n :unit=\"'°'\"\r\n :content=\"setItem.content6\"\r\n >\r\n <div slot=\"title\">{{setItem.rotate}}</div>\r\n </chart-base-slider>\r\n\r\n <!-- Y轴有数据编辑 -->\r\n <div v-show=\"showLabel\">\r\n <!-- 刻度最小值 -->\r\n <chart-base-input\r\n :type=\"'text'\"\r\n :inputValue.sync=\"series.tickLabel.min\"\r\n :placeholder=\"setItem.content7\"\r\n >\r\n <div slot=\"input\">{{setItem.min}}</div>\r\n </chart-base-input>\r\n <!-- 刻度最大值 -->\r\n <chart-base-input\r\n :type=\"'text'\"\r\n :inputValue.sync=\"series.tickLabel.max\"\r\n :placeholder=\"setItem.content8\"\r\n >\r\n <div slot=\"input\">{{setItem.max}}</div>\r\n </chart-base-input>\r\n <!-- 数值缩放比例 -->\r\n <chart-base-select :selectOption=\"ratioOption\" :selectValue.sync=\"series.tickLabel.ratio\">\r\n <div slot=\"select\">{{setItem.ratio}}</div>\r\n </chart-base-select>\r\n <!-- 小数位数 -->\r\n <chart-base-select :selectOption=\"digitOption\" :selectValue.sync=\"series.tickLabel.digit\">\r\n <div slot=\"select\">{{setItem.digit}}</div>\r\n </chart-base-select>\r\n </div>\r\n\r\n <!-- 标签前缀 -->\r\n <chart-base-input :inputValue.sync=\"series.tickLabel.prefix\" :placeholder=\"setItem.content9\">\r\n <div slot=\"input\">{{setItem.prefix}}</div>\r\n </chart-base-input>\r\n <!-- 标签后缀 -->\r\n <chart-base-input :inputValue.sync=\"series.tickLabel.suffix\" :placeholder=\"setItem.content10\">\r\n <div slot=\"input\">{{setItem.suffix}}</div>\r\n </chart-base-input>\r\n\r\n <!-- 显示网格线 -->\r\n <chart-base-switch :switchValue.sync=\"series.netLine.show\">\r\n <div slot=\"title\">{{setItem.showNet}}</div>\r\n </chart-base-switch>\r\n\r\n <div v-show=\"series.netLine.show\">\r\n <!-- 网格线宽度 -->\r\n <chart-base-slider\r\n :hideCol=\"true\"\r\n :max=\"20\"\r\n :min=\"1\"\r\n :baseSliderOption.sync=\"series.netLine.width\"\r\n :unit=\"'px'\"\r\n :content=\"setItem.content11\"\r\n >\r\n <div slot=\"title\">{{setItem.netWidth}}</div>\r\n </chart-base-slider>\r\n <!-- 网格线类型 -->\r\n <chart-base-select :selectOption=\"lineStyleOption\" :selectValue.sync=\"series.netLine.type\">\r\n <div slot=\"select\">{{setItem.netType}}</div>\r\n </chart-base-select>\r\n <!-- 网格线颜色 -->\r\n <el-row style=\"margin-top:15px;\">\r\n <el-col :span=\"8\" class=\"title\">{{setItem.netColor}}</el-col>\r\n <el-col :push=\"13\" :span=\"3\">\r\n <el-tooltip :open-delay=\"500\" :content=\"setItem.netColor\" effect=\"dark\" placement=\"bottom\">\r\n <el-color-picker :label=\"true\" size=\"mini\" v-model=\"series.netLine.color\"></el-color-picker>\r\n </el-tooltip>\r\n </el-col>\r\n </el-row>\r\n <!-- 网格线分割间隔数 -->\r\n <chart-base-select\r\n :selectOption=\"intervalOption\"\r\n :selectValue.sync=\"series.netLine.interval.value\"\r\n >\r\n <div slot=\"select\">{{setItem.netInterval}}</div>\r\n </chart-base-select>\r\n <!-- 自定义间隔数 -->\r\n <chart-base-slider\r\n v-if=\"series.netLine.interval.value == 'custom'\"\r\n :baseSliderOption.sync=\"series.netLine.interval.cusNumber\"\r\n :unit=\"'个'\"\r\n :content=\"setItem.content12\"\r\n ></chart-base-slider>\r\n </div>\r\n\r\n <!-- 显示网格区域 -->\r\n <chart-base-switch :switchValue.sync=\"series.netArea.show\">\r\n <div slot=\"title\">{{setItem.showArea}}</div>\r\n </chart-base-switch>\r\n <div v-show=\"series.netArea.show\">\r\n <!-- 网格区域分割间隔数 -->\r\n <chart-base-select\r\n :selectOption=\"intervalOption\"\r\n :selectValue.sync=\"series.netArea.interval.value\"\r\n >\r\n <div slot=\"select\">{{setItem.areaInterval}}</div>\r\n </chart-base-select>\r\n <!-- 自定义间隔数 -->\r\n <chart-base-slider\r\n v-if=\"series.netArea.interval.value == 'custom'\"\r\n :baseSliderOption.sync=\"series.netArea.interval.cusNumber\"\r\n :unit=\"'个'\"\r\n :content=\"setItem.content12\"\r\n ></chart-base-slider>\r\n\r\n <el-row style=\"margin-top: 15px;\">\r\n <el-col :span=\"6\">{{setItem.area1}}</el-col>\r\n <el-col :span=\"3\">\r\n <el-color-picker size=\"mini\" v-model=\"series.netArea.colorOne\"></el-color-picker>\r\n </el-col>\r\n <el-col :span=\"6\">{{setItem.area2}}</el-col>\r\n <el-col :span=\"3\">\r\n <el-color-picker size=\"mini\" v-model=\"series.netArea.colorTwo\"></el-color-picker>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n </div>\r\n </el-collapse-item>\r\n</template>\r\n\r\n<script>\r\nimport * as t from \"@/utils/importUtil\";\r\nimport {\r\n fontSizeOption,\r\n lineStyleOption,\r\n intervalOption,\r\n digitOption,\r\n ratioOption,\r\n} from \"@/data/chartJson\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\nexport default {\r\n name: \"ChartXaxis\",\r\n props: {\r\n chartAllType: String,\r\n axisOption: Object,\r\n router: String,\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n components: {\r\n ...t.importComp(t),\r\n },\r\n data() {\r\n return {\r\n axis: {},\r\n series: {}, //具体坐标轴配置\r\n fontSizeOption: \"\",\r\n lineStyleOption: \"\",\r\n ratioOption: \"\",\r\n digitOption: \"\",\r\n fzPosOption: [\r\n { value: \"middle\", label: \"居中\" },\r\n { value: \"start\", label: \"头部\" },\r\n { value: \"end\", label: \"尾部\" },\r\n { value: \"hidden\", label: \"隐藏\" },\r\n ],\r\n orient: [\r\n { label: \"朝内\", value: \"inside\" },\r\n { label: \"朝外\", value: \"outside\" },\r\n ],\r\n formatRotation: function (val) {\r\n return val + \" °\";\r\n },\r\n setItem: {},\r\n };\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.setItem = transCN[\"chartAxis\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartAxis\"];\r\n },\r\n watch: {\r\n axisOption: {\r\n handler(newVal) {\r\n if (t.isEqual(this.axis, this.axisOption)) {\r\n return;\r\n }\r\n this.axis = t.deepCopy(this.axisOption);\r\n this.series = this.axis[newVal.axisType];\r\n this.fontSizeOption = t.deepCopy(fontSizeOption);\r\n this.lineStyleOption = t.deepCopy(lineStyleOption);\r\n this.intervalOption = t.deepCopy(intervalOption);\r\n this.ratioOption = t.deepCopy(ratioOption);\r\n this.digitOption = t.deepCopy(digitOption);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n series: {\r\n handler: function (newVal, oldVal) {\r\n // 改变值就重新渲染\r\n if (oldVal) {\r\n this.changeAxis();\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n lang(val) {\r\n if (val == \"ch\") {\r\n this.setItem = transCN[\"chartAxis\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartAxis\"];\r\n },\r\n },\r\n computed: {\r\n chartType() {\r\n return this.chartAllType.split(\"|\")[1];\r\n },\r\n chartStyle() {\r\n return this.chartAllType.split(\"|\")[2];\r\n },\r\n axisGroup() {\r\n if (this.chartType == \"bar\" && this.chartStyle != \"compare\") {\r\n return [\r\n { value: \"xAxisDown\", label: \"Y轴(左侧垂直)\" },\r\n { value: \"xAxisUp\", label: \"Y轴(左侧垂直)\" },\r\n { value: \"yAxisLeft\", label: \"X轴(下方水平)\" },\r\n { value: \"yAxisRight\", label: \"X轴(上方水平)\" },\r\n ];\r\n } else if (this.chartStyle == \"compare\") {\r\n return [\r\n { value: \"xAxisDown\", label: \"Y轴(右侧坐标轴)\" },\r\n { value: \"xAxisUp\", label: \"Y轴(左侧坐标轴)\" },\r\n { value: \"yAxisLeft\", label: \"X轴(右侧坐标轴)\" },\r\n { value: \"yAxisRight\", label: \"X轴(左侧坐标轴)\" },\r\n ];\r\n } else {\r\n return [\r\n { value: \"xAxisDown\", label: \"X轴(下方水平)\" },\r\n { value: \"xAxisUp\", label: \"X轴(上方水平)\" },\r\n { value: \"yAxisLeft\", label: \"Y轴(左侧垂直)\" },\r\n { value: \"yAxisRight\", label: \"Y轴(右侧垂直)\" },\r\n ];\r\n }\r\n },\r\n showLabel() {\r\n if (\r\n (this.chartType == \"bar\" && this.axis.axisType.slice(0, 1) == \"x\") ||\r\n (this.chartType != \"bar\" && this.axis.axisType.slice(0, 1) == \"y\")\r\n ) {\r\n return true;\r\n }\r\n },\r\n },\r\n methods: {\r\n ...t.mapActions(\"chartSetting\", [\"updateChartItem\"]),\r\n changeAxis() {\r\n const updateObj = {\r\n updateObj: t.deepCopy(this.series),\r\n router: this.router + \"/\" + this.axis.axisType,\r\n };\r\n this.updateChartItem(updateObj);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n</style>","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartAxis.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartAxis.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartAxis.vue?vue&type=template&id=73317029&\"\nimport script from \"./ChartAxis.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartAxis.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"chartSetting\">\r\n <div style=\"overflow: hidden;height: 100%;\">\r\n <!-- 图表类型 -->\r\n <chart-list\r\n :chartAllType=\"currentChartType\"\r\n @closeChartShowList=\"showList=false\"\r\n :showList=\"showList\"\r\n :lang=\"lang\"\r\n ></chart-list>\r\n <!-- 数据选择框 -->\r\n <div>\r\n <!-- tab切换 -->\r\n <el-tabs @tab-click=\"handleClick\" v-model=\"activeName\" type=\"card\">\r\n <!-- 数据tab -->\r\n <el-tab-pane name=\"data\">\r\n <span slot=\"label\">\r\n <i class=\"el-icon-date\"></i>\r\n {{setItem.data}}\r\n </span>\r\n\r\n <el-row>\r\n <el-col :span=\"2\">\r\n <div>&nbsp;</div>\r\n </el-col>\r\n <el-col :span=\"22\">\r\n <!-- 图表类型 -->\r\n <div style=\"margin-top: 1px;\">{{setItem.chartType}}</div>\r\n <div style=\"margin-top: 10px;\">\r\n <el-button @click=\"showList = !showList\" size=\"small\" style=\"width:100%;\">\r\n <i :class=\"chartTypeTxt[0]\" class=\"iconfont\" style=\"float:left;\"></i>\r\n {{chartTypeTxt[1]}}\r\n <i\r\n class=\"iconfont icon-jiantou\"\r\n style=\"float:right;\"\r\n ></i>\r\n </el-button>\r\n </div>\r\n\r\n <div style=\"margin-top:25px;\"></div>\r\n <!-- X轴 -->\r\n <div v-if=\"chartXYSeriesList\">\r\n <div\r\n :key=\"item.title\"\r\n style=\"margin-top: 10px;\"\r\n v-for=\"item in chartXYSeriesList.fix\"\r\n >\r\n <el-row :gutter=\"10\">\r\n <el-col\r\n :span=\"4\"\r\n style=\"line-height: 28px;text-align:right;\"\r\n >{{ item.title }}:</el-col>\r\n <el-col :span=\"20\">\r\n <el-tag size=\"medium\" style=\"width:100%;text-align:center;\">\r\n <i :class=\"item.type\" class=\"iconfont\" style=\"float:left;\"></i>\r\n {{ item.field }}\r\n </el-tag>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n </div>\r\n\r\n <div style=\"margin-top:25px;\"></div>\r\n <!-- 系列 -->\r\n <div v-if=\"chartXYSeriesList\">\r\n <div\r\n :key=\"index\"\r\n style=\"margin-top: 10px;\"\r\n v-for=\"(item,index) in chartXYSeriesList.change\"\r\n >\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"4\" style=\"line-height: 28px;text-align:right;\">{{item.title}}:</el-col>\r\n <el-col :span=\"20\">\r\n <el-dropdown\r\n @command=\"handleSeriseCommand\"\r\n size=\"medium\"\r\n style=\"width:100%;\"\r\n trigger=\"click\"\r\n >\r\n <el-button size=\"mini\" style=\"width:100%;\">\r\n <i\r\n :class=\"item.type\"\r\n class=\"iconfont\"\r\n style=\"float:left;font-size:16px;\"\r\n ></i>\r\n {{item.field}}\r\n <i\r\n class=\"iconfont icon-jiantou\"\r\n style=\"float:right;\"\r\n ></i>\r\n </el-button>\r\n <el-dropdown-menu slot=\"dropdown\" style=\"min-width:306px;\">\r\n <el-dropdown-item\r\n :command=\"{series:item, option:ditem}\"\r\n :key=\"`A-${index}`\"\r\n v-for=\"(ditem,index) in chartXYSeriesList.option\"\r\n >\r\n {{ditem.field}}\r\n <i\r\n class=\"iconfont icon-dagou\"\r\n style=\"float:right;\"\r\n v-if=\"item.id==ditem.id\"\r\n ></i>\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n </div>\r\n\r\n <div style=\"margin-top:25px;\"></div>\r\n <!-- 转置 -->\r\n <el-row>\r\n <div style=\"margin: 25px 0;\"></div>\r\n <el-checkbox\r\n @change=\"checkBoxChange\"\r\n v-model=\"currentRangeConfigCheck\"\r\n >{{setItem.transpose}}</el-checkbox>\r\n <div style=\"margin: 15px 0;\"></div>\r\n <el-checkbox\r\n :disabled=\"checkRowDisabled\"\r\n @change=\"checkBoxChange\"\r\n v-model=\"currentRangeRowCheck.exits\"\r\n >{{setItem.row1}} {{getColRowCheckTxt(true)}} {{setItem.row2}}</el-checkbox>\r\n <div style=\"margin: 15px 0;\"></div>\r\n <el-checkbox\r\n :disabled=\"checkColDisabled\"\r\n @change=\"checkBoxChange\"\r\n v-model=\"currentRangeColCheck.exits\"\r\n >{{setItem.column1}} {{getColRowCheckTxt()}} {{setItem.column2}}</el-checkbox>\r\n </el-row>\r\n </el-col>\r\n </el-row>\r\n </el-tab-pane>\r\n\r\n <!-- 样式tab -->\r\n <el-tab-pane>\r\n <span slot=\"label\">\r\n <i class=\"el-icon-s-data\"></i>\r\n {{setItem.style}}\r\n </span>\r\n\r\n <el-row>\r\n <el-col :span=\"1\">\r\n <div>&nbsp;</div>\r\n </el-col>\r\n <el-col :span=\"22\">\r\n <el-collapse>\r\n <!-- 标题组件 -->\r\n <chart-title\r\n :router=\"'title'\"\r\n :chartAllType=\"currentChartType\"\r\n :titleOption=\"titleOption\"\r\n :lang=\"lang\"\r\n ></chart-title>\r\n\r\n <chart-sub-title\r\n :router=\"'subtitle'\"\r\n :chartAllType=\"currentChartType\"\r\n :subTitleOption=\"subTitleOption\"\r\n :lang=\"lang\"\r\n ></chart-sub-title>\r\n\r\n <!-- 鼠标提示组件 -->\r\n <chart-cursor\r\n :router=\"'tooltip'\"\r\n :chartAllType=\"currentChartType\"\r\n :cursorOption=\"cursorOption\"\r\n :lang=\"lang\"\r\n ></chart-cursor>\r\n\r\n <!-- 图例组件 -->\r\n <chart-legend\r\n :router=\"'legend'\"\r\n :chartAllType=\"currentChartType\"\r\n :legendOption=\"legendOption\"\r\n :lang=\"lang\"\r\n ></chart-legend>\r\n\r\n <!-- 坐标轴组件 -->\r\n <chart-axis\r\n v-if=\"currentChartType.split('|')[1]!='pie'\"\r\n :router=\"'axis'\"\r\n :axisOption=\"axisOption\"\r\n :chartAllType=\"currentChartType\"\r\n :lang=\"lang\"\r\n ></chart-axis>\r\n </el-collapse>\r\n </el-col>\r\n <el-col :span=\"1\">\r\n <div>&nbsp;</div>\r\n </el-col>\r\n </el-row>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ChartList from \"./ChartList\";\r\n// const ChartTitle = () => import(\"./chartChips/chart/ChartTitle\");\r\n// const ChartSubTitle = () => import(\"./chartChips/chart/ChartSubTitle\");\r\n// const ChartCursor = () => import(\"./chartChips/chart/ChartCursor\");\r\n// const ChartLegend = () => import(\"./chartChips/chart/ChartLegend\");\r\n// const ChartAxis = () => import(\"./chartChips/chart/ChartAxis\");\r\n\r\nimport { deepCopy } from \"@/utils/util\";\r\nimport { checkCurrentBoxChange, changeSeriesOrder } from \"@/utils/chartUtil\";\r\n// import { isEqual } from \"lodash\";\r\nimport isEqual from 'lodash/isEqual';\r\nimport { chartComponent, chartOptions } from \"@/data/chartJson\";\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport transCN from \"@/data/cn\";\r\nimport transEN from \"@/data/en\";\r\n\r\nimport ChartTitle from './chartChips/chart/ChartTitle'\r\nimport ChartSubTitle from './chartChips/chart/ChartSubTitle'\r\nimport ChartCursor from './chartChips/chart/ChartCursor'\r\nimport ChartLegend from './chartChips/chart/ChartLegend'\r\nimport ChartAxis from './chartChips/chart/ChartAxis'\r\n\r\nexport default {\r\n name: \"ChartSetting\",\r\n components: {\r\n \"chart-list\": ChartList,\r\n \"chart-title\": ChartTitle,\r\n \"chart-sub-title\": ChartSubTitle,\r\n \"chart-cursor\": ChartCursor,\r\n \"chart-legend\": ChartLegend,\r\n \"chart-axis\": ChartAxis,\r\n },\r\n props: {\r\n chartOptions: {\r\n type: Object,\r\n default: null,\r\n },\r\n lang: {\r\n type: String,\r\n default: \"cn\",\r\n },\r\n },\r\n data() {\r\n return {\r\n currentChartType: \"echarts|line|default\", //图表类型\r\n chart_id: '',\r\n titleOption: deepCopy(chartComponent.title), //标题设置\r\n subTitleOption: deepCopy(chartComponent.subtitle), //标题设置\r\n cursorOption: deepCopy(chartComponent.tooltip), //鼠标提示设置\r\n legendOption: deepCopy(chartComponent.legend), //图例设置\r\n axisOption: deepCopy(chartComponent.axis), //坐标轴设置\r\n showList: false,\r\n setItem: {\r\n echarts: {\r\n line: {\r\n default: '默认折线图'\r\n }\r\n }\r\n },\r\n activeName: 'data'\r\n };\r\n },\r\n mounted() {\r\n if (this.lang == \"ch\") {\r\n this.setItem = transCN[\"chartSetting\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartSetting\"];\r\n console.dir(this.setItem);\r\n },\r\n watch: {\r\n chartOptions: {\r\n handler: function (chartOption, oldV) {\r\n //此处必须使用function,不能用箭头函数\r\n if (\r\n chartOption == undefined ||\r\n !chartOption.hasOwnProperty(\"chartAllType\")\r\n ) {\r\n return;\r\n }\r\n this.currentChartType = chartOption.chartAllType;\r\n this.chart_id = chartOption.chart_id\r\n this.titleOption = chartOption.defaultOption.title;\r\n this.subTitleOption = chartOption.defaultOption.subtitle;\r\n this.cursorOption = chartOption.defaultOption.tooltip;\r\n this.legendOption = chartOption.defaultOption.legend;\r\n this.axisOption = chartOption.defaultOption.axis;\r\n },\r\n },\r\n lang(val) {\r\n if (val == \"ch\") {\r\n this.setItem = transCN[\"chartSetting\"];\r\n return;\r\n }\r\n this.setItem = transEN[\"chartSetting\"];\r\n },\r\n },\r\n computed: {\r\n ...mapState(\"chartSetting\", [\"chartLists\", \"currentChartIndex\"]),\r\n currentRangeColCheck: {\r\n get() {\r\n if (this.currentChartIndex == null) {\r\n return { exits: false, range: [0, 0] };\r\n }\r\n return this.chartLists[this.currentChartIndex].chartOptions\r\n .rangeColCheck;\r\n },\r\n set(val) {\r\n this.updateChartItemChartlistOne({ key: \"rangeColCheck\", value: val, chart_id: this.chart_id });\r\n },\r\n },\r\n currentRangeRowCheck: {\r\n get() {\r\n if (this.currentChartIndex == null) {\r\n return { exits: false, range: [0, 0] };\r\n }\r\n return this.chartLists[this.currentChartIndex].chartOptions\r\n .rangeRowCheck;\r\n },\r\n set(val) {\r\n this.updateChartItemChartlistOne({ key: \"rangeRowCheck\", value: val, chart_id: this.chart_id });\r\n },\r\n },\r\n checkRowDisabled() {\r\n if (\r\n this.currentChartIndex == null ||\r\n !this.chartLists[this.currentChartIndex].chartOptions.chartData ||\r\n this.chartLists[this.currentChartIndex].chartOptions.chartData.length ==\r\n 1\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n checkColDisabled() {\r\n if (\r\n this.currentChartIndex == null ||\r\n !this.chartLists[this.currentChartIndex].chartOptions.chartData ||\r\n this.chartLists[this.currentChartIndex].chartOptions.chartData.length ==\r\n 1\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n currentRangeConfigCheck: {\r\n get() {\r\n if (this.currentChartIndex == null) {\r\n return false;\r\n }\r\n return this.chartLists[this.currentChartIndex].chartOptions\r\n .rangeConfigCheck;\r\n },\r\n set(val) {\r\n this.updateChartItemChartlistOne({\r\n key: \"rangeConfigCheck\",\r\n value: val,\r\n chart_id: this.chart_id\r\n });\r\n },\r\n },\r\n chart_pro() {\r\n return this.currentChartType.split(\"|\")[0];\r\n },\r\n chart_type() {\r\n return this.currentChartType.split(\"|\")[1];\r\n },\r\n chart_style() {\r\n return this.currentChartType.split(\"|\")[2];\r\n },\r\n //图表选项的文本\r\n chartTypeTxt: function () {\r\n\r\n var head, main, icon;\r\n if (this.chart_pro == \"echarts\") {\r\n head = \"echarts\";\r\n } else if (this.chart_pro == \"highcharts\") {\r\n head = \"highcharts\";\r\n }\r\n\r\n if (this.chart_type == \"line\") {\r\n if (this.chart_style == \"default\") {\r\n main = this.setItem.echarts.line.default;\r\n }\r\n if (this.chart_style == \"smooth\") {\r\n main = this.setItem.echarts.line.smooth;\r\n }\r\n if (this.chart_style == \"label\") {\r\n main = this.setItem.echarts.line.label;\r\n }\r\n if (this.chart_style == \"doublex\") {\r\n main = \"双Y轴折线图\";\r\n }\r\n if (this.chart_style == \"linemix\") {\r\n main = \"折线柱状混合图\";\r\n }\r\n icon = \"icon-tubiaozhexiantu\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"area\") {\r\n if (this.chart_style == \"default\") {\r\n main = this.setItem.echarts.area.default;\r\n }\r\n if (this.chart_style == \"stack\") {\r\n main = this.setItem.echarts.area.stack;\r\n }\r\n if (this.chart_style == \"stackRatio\") {\r\n main = \"带标签的堆叠面积图\";\r\n }\r\n icon = \"icon-fsux_tubiao_duijimianjitu\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"column\") {\r\n if (this.chart_style == \"default\") {\r\n main = this.setItem.echarts.column.default;\r\n }\r\n if (this.chart_style == \"stack\") {\r\n main = this.setItem.echarts.column.stack;\r\n }\r\n if (this.chart_style == \"stackRatio\") {\r\n main = \"百分比堆叠柱状图\";\r\n }\r\n if (this.chart_style == \"costComposition\") {\r\n main = \"费用构成柱状图\";\r\n }\r\n if (this.chart_style == \"polarStack\") {\r\n main = \"极坐标系下的堆叠柱状图\";\r\n }\r\n if (this.chart_style == \"bar3DPunchCard\") {\r\n main = \"3D柱状图\";\r\n }\r\n if (this.chart_style == \"contain\") {\r\n main = \"比例图\";\r\n }\r\n if (this.chart_style == \"special\") {\r\n main = \"显示百分比图\";\r\n }\r\n if (this.chart_style == \"doubleX\") {\r\n main = \"双X轴\";\r\n }\r\n icon = \"icon-chart\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"bar\") {\r\n if (this.chart_style == \"default\") {\r\n main = this.setItem.echarts.bar.default;\r\n }\r\n if (this.chart_style == \"stack\") {\r\n main = this.setItem.echarts.bar.stack;\r\n }\r\n if (this.chart_style == \"stackRatio\") {\r\n main = \"百分比堆叠条形图\";\r\n }\r\n if (this.chart_style == \"compare\") {\r\n main = \"条形比较图\";\r\n }\r\n if (this.chart_style == \"contain\") {\r\n main = \"比例图\";\r\n }\r\n icon = \"icon-fsux_tubiao_duijizhuzhuangtu1\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"pie\") {\r\n if (this.chart_style == \"default\") {\r\n main = this.setItem.echarts.pie.default;\r\n }\r\n if (this.chart_style == \"split\") {\r\n main = this.setItem.echarts.pie.split;\r\n }\r\n if (this.chart_style == \"ring\") {\r\n main = this.setItem.echarts.pie.ring;\r\n }\r\n if (this.chart_style == \"ringnest\") {\r\n main = \"环形嵌套图\";\r\n }\r\n if (this.chart_style == \"3D\") {\r\n main = \"3D饼图\";\r\n }\r\n if (this.chart_style == \"rose\") {\r\n if (this.chart_pro == \"echarts\") {\r\n main = \"南丁格玫瑰图\";\r\n } else if (this.chart_pro == \"highcharts\") {\r\n main = \"可变宽度的环形图\";\r\n }\r\n }\r\n icon = \"icon-fsux_tubiao_nandingmeiguitu\";\r\n return [icon, head + \" - \" + main];\r\n }\r\n if (this.chart_type == \"scatter\") {\r\n if (this.chart_style == \"default\") {\r\n main = \"默认散点图\";\r\n }\r\n if (this.chart_style == \"label\") {\r\n main = \"带标签的散点图\";\r\n }\r\n if (this.chart_style == \"zoom\") {\r\n main = \"自由缩放散点图\";\r\n }\r\n if (this.chart_style == \"matrix\") {\r\n main = \"散点图矩阵\";\r\n }\r\n icon = \"icon-fsux_tubiao_qipaotu\";\r\n return [icon, head + \" - \" + main];\r\n }\r\n if (this.chart_type == \"radar\") {\r\n if (this.chart_style == \"default\") {\r\n main = \"默认雷达图\";\r\n }\r\n icon = \"icon-leidatu\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"funnel\") {\r\n if (this.chart_style == \"default\") {\r\n main = \"默认漏斗图\";\r\n }\r\n if (this.chart_style == \"inverse\") {\r\n main = \"逆漏斗图\";\r\n }\r\n icon = \"icon-fsux_tubiao_loudoutu\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"gauge\") {\r\n if (this.chart_style == \"default\") {\r\n main = \"仪表盘\";\r\n }\r\n if (this.chart_style == \"percent\") {\r\n main = \"百分比仪表盘\";\r\n }\r\n if (this.chart_style == \"solid\") {\r\n main = \"活动图\";\r\n }\r\n icon = \"icon-fsux_tubiao_yibiaopan\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"map\") {\r\n if (this.chart_style == \"china\") {\r\n main = \"中国地图\";\r\n } else if (this.chart_style == \"province\") {\r\n main = \"省份地图\";\r\n } else if (this.chart_style == \"cnscatter\") {\r\n main = \"中国地图散点图\";\r\n } else if (this.chart_style == \"pvscatter\") {\r\n main = \"省份地图散点图\";\r\n } else if (this.chart_style == \"percent\") {\r\n main = \"百分比地图\";\r\n }\r\n icon = \"icon-fsux_tubiao_ditu\";\r\n return [icon, head + \" - \" + main];\r\n } else if (this.chart_type == \"earth\") {\r\n return [icon, head + \" - \" + \"3D 地球\"];\r\n }\r\n },\r\n currentChartDataCache() {\r\n // get() {\r\n if (this.currentChartIndex == null) {\r\n return null;\r\n }\r\n return this.chartLists[this.currentChartIndex].chartOptions\r\n .chartDataCache;\r\n // },\r\n // set(val) {\r\n // this.updateChartItemChartlistOne({ key: \"rangeColCheck\", val });\r\n // },\r\n },\r\n chartXYSeriesList() {\r\n if (this.currentChartDataCache == null) {\r\n return;\r\n }\r\n let chartDataSeriesOrder = this.chartLists[this.currentChartIndex]\r\n .chartOptions.chartDataSeriesOrder;\r\n\r\n var chartAllTypeArray = this.currentChartType.split(\"|\");\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n var valueType = {\r\n num: \"icon-shuzi\",\r\n string: \"icon-format_icon\",\r\n date: \"icon-date\",\r\n };\r\n\r\n var ret = { fix: [], change: [], option: [] };\r\n if (\r\n chartType == \"line\" ||\r\n chartType == \"column\" ||\r\n chartType == \"area\" ||\r\n chartType == \"scatter\"\r\n ) {\r\n if (this.currentChartDataCache.title != null) {\r\n ret.fix.push({\r\n title: \"x轴\",\r\n type: valueType[\"string\"],\r\n field: this.currentChartDataCache.title.text,\r\n });\r\n }\r\n\r\n if (this.currentChartDataCache.label != null) {\r\n for (var i = 0; i < this.currentChartDataCache.label.length; i++) {\r\n var trueIndex = chartDataSeriesOrder[i];\r\n ret.change[trueIndex] = {\r\n title: \"系列\" + (trueIndex + 1),\r\n index: trueIndex,\r\n type: valueType[this.currentChartDataCache.series_tpye[i]],\r\n field: this.currentChartDataCache.label[i],\r\n id: i,\r\n };\r\n\r\n ret.option.push({\r\n field: this.currentChartDataCache.label[i],\r\n id: i,\r\n index: trueIndex,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n },\r\n currentChartDataSeriesOrder: {\r\n get() {\r\n if (this.currentChartIndex == null) {\r\n return {};\r\n }\r\n return this.chartLists[this.currentChartIndex].chartOptions\r\n .chartDataSeriesOrder;\r\n },\r\n set(val) {\r\n this.updateChartItemChartlistOne({\r\n key: \"chartDataSeriesOrder\",\r\n value: val,\r\n chart_id: this.chart_id\r\n });\r\n },\r\n },\r\n },\r\n methods: {\r\n ...mapActions(\"chartSetting\", [\"updateChartItemChartlistOne\"]),\r\n handleClick(tab) {\r\n if (tab.index != 0) {\r\n this.showList = false;\r\n }\r\n },\r\n //列/行头部的标题例如列A、行1\r\n getColRowCheckTxt: function (isRow) {\r\n if (!isRow) {\r\n var txt = \"\";\r\n if (\r\n this.currentRangeColCheck.range[0] ==\r\n this.currentRangeColCheck.range[1]\r\n ) {\r\n txt = this.currentRangeColCheck.range[0] + 1;\r\n } else {\r\n txt =\r\n this.currentRangeColCheck.range[0] +\r\n 1 +\r\n \"至\" +\r\n (this.currentRangeColCheck.range[1] + 1) +\r\n \"\";\r\n }\r\n\r\n return txt;\r\n } else {\r\n var txt = \"\";\r\n if (\r\n this.currentRangeRowCheck.range[0] ==\r\n this.currentRangeRowCheck.range[1]\r\n ) {\r\n txt = this.currentRangeRowCheck.range[0] + 1;\r\n } else {\r\n txt =\r\n this.currentRangeRowCheck.range[0] +\r\n 1 +\r\n \"至\" +\r\n (this.currentRangeRowCheck.range[1] + 1) +\r\n \"\";\r\n }\r\n\r\n return txt;\r\n }\r\n },\r\n // 转置行列操作\r\n checkBoxChange: function () {\r\n var chart_id = this.chartLists[this.currentChartIndex].chartOptions\r\n .chart_id;\r\n var rangeRowCheck = this.currentRangeRowCheck;\r\n var rangeColCheck = this.currentRangeColCheck;\r\n var rangeConfigCheck = this.currentRangeConfigCheck;\r\n\r\n checkCurrentBoxChange(\r\n chart_id,\r\n rangeRowCheck,\r\n rangeColCheck,\r\n rangeConfigCheck\r\n );\r\n },\r\n //系列列表的下拉菜单操作\r\n handleSeriseCommand: function (command) {\r\n var series = command.series,\r\n option = command.option;\r\n var newOrder = deepCopy(this.currentChartDataSeriesOrder);\r\n var newid = option.id,\r\n newTrueIndex = series.index;\r\n var exchangeid = series.id,\r\n exchangeTrueIndex = newOrder[newid];\r\n\r\n newOrder[newid] = newTrueIndex;\r\n newOrder[exchangeid] = exchangeTrueIndex;\r\n\r\n this.currentChartDataSeriesOrder = newOrder;\r\n\r\n changeSeriesOrder(\r\n this.chartLists[this.currentChartIndex].chartOptions,\r\n this.currentChartDataSeriesOrder\r\n );\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style lang='scss'>\r\n@import \"@/assets/css/chartMix.scss\";\r\n\r\n.chartSetting {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartSetting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartSetting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartSetting.vue?vue&type=template&id=dc2be93c&\"\nimport script from \"./ChartSetting.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartSetting.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChartSetting.vue?vue&type=style&index=0&id=dc2be93c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chartRender\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"chartRender\" ></div>\r\n</template>\r\n\r\n<script>\r\nimport { renderChart } from '@/utils/chartUtil'\r\nexport default {\r\n name: \"ChartRender\",\r\n props: {\r\n active:{\r\n type: Boolean,\r\n default: false\r\n },\r\n chart_id: {\r\n type: String,\r\n default: \"\"\r\n },\r\n chartOptions: {\r\n type: Object,\r\n default: null\r\n }\r\n },\r\n watch: {\r\n chartOptions: {\r\n handler: function(chartOptions) {//此处必须使用function,不能用箭头函数\r\n if(!chartOptions){\r\n return \r\n }\r\n this.renderCharts(chartOptions)\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n mounted() {\r\n //图表渲染, 部分需要修改默认配置的参数\r\n this.$nextTick(() => {\r\n let chartOptions = this.chartOptions\r\n this.renderCharts(chartOptions)\r\n });\r\n },\r\n methods: {\r\n // 渲染图表\r\n renderCharts(chartOptions){\r\n const renderChartObj = {\r\n chart_id: this.chart_id,\r\n chartOptions: chartOptions\r\n }\r\n renderChart(renderChartObj,this.$el);\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartRender.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartRender.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartRender.vue?vue&type=template&id=4be53480&scoped=true&\"\nimport script from \"./ChartRender.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartRender.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4be53480\",\n null\n \n)\n\nexport default component.exports","import store from '../store'\r\nimport Vue from 'vue'\r\nimport { generateRandomKey, deepCopy, getRowColCheck, getRangeSplitArray, getChartDataCache, getChartDataSeriesOrder, addDataToOption } from '../utils/util'\r\nimport { changeChartRange , changeChartCellData , renderChart } from '../utils/chartUtil'\r\nimport { chartOptions } from '../data/chartJson'\r\nimport echarts from 'echarts'\r\nimport $ from 'jquery'\r\n\r\nconst ChartSetting = store.state.chartSetting\r\n\r\n// init chart\r\nfunction initChart(outDom, lang) {\r\n let dom = document.createElement('div')\r\n dom.id = 'chartmix'\r\n outDom.appendChild(dom);\r\n\r\n new Vue({\r\n el: '#chartmix',\r\n store,\r\n data() {\r\n return {\r\n lang\r\n }\r\n },\r\n computed: {\r\n chartOptions() {\r\n if (!ChartSetting.currentChartIndex) {\r\n return null\r\n }\r\n return ChartSetting.chartLists[ChartSetting.currentChartIndex].chartOptions\r\n }\r\n },\r\n template: `<ChartSetting :lang=\"lang\" :chartOptions=\"chartOptions\"></ChartSetting>`\r\n })\r\n\r\n}\r\n\r\n/**\r\n * \r\n * @param {*} render 插入图表的容器\r\n * @param {*} chartData 框选的数据\r\n * @param {*} chart_id 图表ID\r\n * 返回容器/id/chart_json图表配置\r\n */\r\nfunction createChart(render, chartData, chart_id, rangeArray, rangeTxt) {\r\n\r\n let chart_Id = chart_id ? chart_id : generateRandomKey('chart')\r\n render.id = chart_Id\r\n\r\n chartOptions.defaultOption.series = []\r\n\r\n // 随机生成图表\r\n let ratio = Math.random() * 10\r\n if (ratio > 5) {\r\n chartOptions.chartAllType = 'echarts|pie|default'\r\n } else {\r\n chartOptions.chartAllType = 'echarts|line|default'\r\n }\r\n\r\n // 生成图表数据结构\r\n let chartOption = insertNewChart(chartOptions, chart_Id, chartOptions.chartAllType, chartData, rangeArray, rangeTxt)\r\n\r\n let renderDom = document.createElement('div')\r\n renderDom.id = 'render' + chart_Id\r\n render.appendChild(renderDom)\r\n\r\n let chart_json = {\r\n 'chart_id': chart_Id,\r\n 'active': true,\r\n 'chartOptions': deepCopy(chartOption)\r\n }\r\n\r\n ChartSetting.currentChartIndex = ChartSetting.chartLists.length\r\n ChartSetting.chartLists.push(chart_json)\r\n\r\n console.dir(chart_json)\r\n\r\n new Vue({\r\n el: '#render' + chart_Id,\r\n store,\r\n data() {\r\n return {\r\n chart_Id\r\n }\r\n },\r\n computed: {\r\n options() {\r\n let chartJson = ChartSetting.chartLists.find(item => item.chart_id == this.chart_Id)\r\n if (chartJson) {\r\n return chartJson.chartOptions\r\n } else {\r\n return null\r\n }\r\n },\r\n active() {\r\n let chartJson = ChartSetting.chartLists.find(item => item.chart_id == this.chart_Id)\r\n if (chartJson) {\r\n return chartJson.active\r\n } else {\r\n return null\r\n }\r\n }\r\n },\r\n template: `<ChartRender :chartOptions=\"options\" :chart_id=\"chart_Id\" :active=\"active\"></ChartRneder>`\r\n })\r\n\r\n return {\r\n render,\r\n chart_Id,\r\n chart_json\r\n }\r\n}\r\n\r\n// insert chart\r\nfunction insertNewChart(\r\n chartOptions,\r\n chart_id,\r\n chartAllType,\r\n chartData,\r\n rangeArray,\r\n rangeTxt,\r\n chartTheme,\r\n height,\r\n width,\r\n left,\r\n top\r\n) {\r\n var chart_json = {}\r\n\r\n var chartAllTypeArray = chartAllType.split('|')\r\n\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2]\r\n\r\n chart_json.chart_id = chart_id\r\n chart_json.chartAllType = chartAllType\r\n chart_json.chartPro = chartPro\r\n chart_json.chartType = chartType\r\n chart_json.chartStyle = chartStyle\r\n\r\n chart_json.height = height\r\n chart_json.width = width\r\n chart_json.left = left\r\n chart_json.top = top\r\n\r\n //按照图表类型得到图表的默认设置\r\n var defaultOptionIni = chartOptions.defaultOption\r\n //数据的sheet索引\r\n chart_json.chartData = chartData\r\n chart_json.rangeArray = rangeArray\r\n chart_json.rangeTxt = rangeTxt\r\n\r\n //根据数据集得到按钮状态,rangeColCheck表示首列是否标题,rangeRowCheck表示首行是否标题,rangeConfigCheck表示是否转置。\r\n var rowColCheck = getRowColCheck(chartData)\r\n var rangeRowCheck = rowColCheck[0],\r\n rangeColCheck = rowColCheck[1],\r\n rangeConfigCheck = false\r\n\r\n chart_json.rangeColCheck = rangeColCheck\r\n chart_json.rangeRowCheck = rangeRowCheck\r\n chart_json.rangeConfigCheck = rangeConfigCheck\r\n\r\n //按照数据范围文字得到具体数据范围\r\n var rangeSplitArray = getRangeSplitArray(\r\n chartData,\r\n rangeArray,\r\n rangeColCheck,\r\n rangeRowCheck\r\n )\r\n chart_json.rangeSplitArray = rangeSplitArray\r\n\r\n //根据数据集、功能按钮状态、图表类型,得到图表可操作的数据格式,例如:{ \"x\":[], \"y\":[], series:[] },可以按照次格式渲染数据页中的系列和轴控件。\r\n //数据为一行且为汉字的时候,chartDataCache的series为空数组\r\n var chartDataCache = getChartDataCache(\r\n chartData,\r\n rangeSplitArray,\r\n chartPro,\r\n chartType,\r\n chartStyle\r\n )\r\n chart_json.chartDataCache = chartDataCache\r\n\r\n //生成默认的系列顺序,默认根据series数组的位置,用户可以在界面上操作更改这个位置。\r\n var chartDataSeriesOrder = getChartDataSeriesOrder(\r\n chartDataCache.series[0].length\r\n )\r\n\r\n chart_json.chartDataSeriesOrder = chartDataSeriesOrder\r\n\r\n //设置图表皮肤\r\n chart_json.chartTheme = chartTheme\r\n\r\n //根据图表的默认设置、图表数据、图表系列顺序,等到一个完整的图表配置串。\r\n var defaultOption = addDataToOption(\r\n defaultOptionIni,\r\n chartDataCache,\r\n chartDataSeriesOrder,\r\n chartPro,\r\n chartType,\r\n chartStyle\r\n )\r\n\r\n //根据图表厂商选择渲染引擎,并根据设置渲染出图表\r\n chart_json.defaultOption = defaultOption\r\n return chart_json\r\n}\r\n\r\n// highlight current chart\r\nfunction highlightChart(chart_id) {\r\n let index = ChartSetting.chartLists.findIndex(item => item.chart_id == chart_id)\r\n ChartSetting.currentChartIndex = index\r\n return ChartSetting.chartLists[ChartSetting.currentChartIndex].chartOptions\r\n}\r\n\r\n// resize chart\r\nfunction resizeChart(chart_id) {\r\n let index = ChartSetting.chartLists.findIndex(item => item.chart_id == chart_id)\r\n var chartAllType = ChartSetting.chartLists[index].chartOptions.chartAllType;\r\n var chartAllTypeArray = chartAllType.split(\"|\");\r\n var chartPro = chartAllTypeArray[0],\r\n chartType = chartAllTypeArray[1],\r\n chartStyle = chartAllTypeArray[2];\r\n\r\n if (chartPro == \"echarts\") {\r\n echarts.getInstanceById($(\"#\" + chart_id).attr(\"_echarts_instance_\")).resize();\r\n } \r\n}\r\n\r\nfunction resizeChartAll(){\r\n for(let i = 0; i < ChartSetting.chartLists.length; i++){\r\n let chartJson = ChartSetting.chartLists[i].chartOptions\r\n if(chartJson.chartAllType.split('|')[0] == 'echarts'){\r\n echarts.getInstanceById($('#' + chartJson.chart_id).attr('_echarts_instance_')).resize()\r\n }\r\n }\r\n}\r\n\r\n// delete chart\r\nfunction deleteChart(chart_id) {\r\n let index = ChartSetting.chartLists.findIndex(item => item.chart_id == chart_id)\r\n ChartSetting.chartLists.splice(index, 1)\r\n ChartSetting.currentChartIndex--\r\n if (ChartSetting.currentChartIndex < 0) {\r\n if (ChartSetting.chartLists[0]) {\r\n ChartSetting.currentChartIndex = 0\r\n return\r\n }\r\n ChartSetting.currentChartIndex = null\r\n }\r\n}\r\n\r\nfunction getChartJson(chart_id){\r\n let index = ChartSetting.chartLists.findIndex(item => item.chart_id == chart_id)\r\n return ChartSetting.chartLists[index].chartOptions;\r\n}\r\n\r\nfunction insertToStore(chart_json){\r\n ChartSetting.chartLists.push(chart_json)\r\n}\r\n\r\nexport {\r\n initChart,\r\n createChart,\r\n highlightChart,\r\n deleteChart,\r\n resizeChart,\r\n resizeChartAll,\r\n changeChartRange,\r\n changeChartCellData,\r\n getChartJson,\r\n renderChart,\r\n insertToStore\r\n}","// import single vue component\r\nimport ChartSetting from './ChartMix/ChartSetting.vue'\r\nimport chartSetting from '../store/modules/chartSetting'\r\nimport ChartRender from './ChartMix/ChartRender.vue'\r\nimport { initChart , createChart , renderChart , highlightChart , deleteChart, insertToStore , resizeChart , changeChartRange , changeChartCellData , getChartJson } from '../utils/exportUtil'\r\n\r\n// all components\r\nconst components = [\r\n ChartSetting,\r\n ChartRender\r\n]\r\n\r\n/**\r\n * define install function\r\n *\r\n * @param {Object} Vue \r\n * @param {Object} [options={}] \r\n */\r\nconst install = function (Vue, options = {}) {\r\n if (!install.componentInstalled) {\r\n // map and register all global components\r\n components.map(component => {\r\n Vue.component(component.name, component)\r\n })\r\n\r\n install.componentInstalled = true\r\n }\r\n\r\n if (!install.storeRegistered) {\r\n // register store\r\n if (!options.store) {\r\n console.log('Please provide a store!!')\r\n } else {\r\n options.store.registerModule('chartSetting', chartSetting)\r\n\r\n install.storeRegistered = true;\r\n }\r\n }\r\n\r\n}\r\n\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n install(window.Vue)\r\n}\r\n\r\nexport default {\r\n // must use install function\r\n install,\r\n // components list\r\n ...components,\r\n initChart,\r\n createChart,\r\n highlightChart,\r\n deleteChart,\r\n resizeChart,\r\n changeChartRange,\r\n changeChartCellData,\r\n renderChart,\r\n getChartJson,\r\n insertToStore\r\n // ChartSetting,\r\n // ChartRender\r\n}","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""}