1 |
- {"version":3,"sources":["webpack:///./src/api/subject.js","webpack:///./src/api/productAttr.js","webpack:///./node_modules/core-js/library/modules/_array-from-iterable.js","webpack:///./src/api/coupon.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/library/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/library/modules/_set-collection-of.js","webpack:///./node_modules/core-js/library/modules/_collection-strong.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/modules/_array-methods.js","webpack:///./node_modules/core-js/library/modules/es7.set.to-json.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///src/views/pms/product/components/ProductInfoDetail.vue","webpack:///./src/views/pms/product/components/ProductInfoDetail.vue?ad4f","webpack:///./src/views/pms/product/components/ProductInfoDetail.vue","webpack:///src/views/pms/product/components/ProductSaleDetail.vue","webpack:///./src/api/memberLevel.js","webpack:///./src/views/pms/product/components/ProductSaleDetail.vue?ab6c","webpack:///./src/views/pms/product/components/ProductSaleDetail.vue","webpack:///src/components/Upload/multiUpload.vue","webpack:///./src/components/Upload/multiUpload.vue?ae33","webpack:///./src/components/Upload/multiUpload.vue","webpack:///src/components/Tinymce/components/editorImage.vue","webpack:///./src/components/Tinymce/components/editorImage.vue?4c4b","webpack:///./src/components/Tinymce/components/editorImage.vue","webpack:///src/components/Tinymce/index.vue","webpack:///./src/components/Tinymce/index.vue?2a41","webpack:///./src/components/Tinymce/index.vue","webpack:///src/views/pms/product/components/ProductAttrDetail.vue","webpack:///./src/views/pms/product/components/ProductAttrDetail.vue?af11","webpack:///./src/views/pms/product/components/ProductAttrDetail.vue","webpack:///src/views/pms/product/components/ProductRelationDetail.vue","webpack:///./src/api/prefrenceArea.js","webpack:///./src/views/pms/product/components/ProductRelationDetail.vue?e81c","webpack:///./src/views/pms/product/components/ProductRelationDetail.vue","webpack:///src/views/pms/product/components/ProductDetail.vue","webpack:///./src/views/pms/product/components/ProductDetail.vue?7e70","webpack:///./src/views/pms/product/components/ProductDetail.vue","webpack:///./src/api/order.js","webpack:///./node_modules/core-js/library/modules/_set-collection-from.js","webpack:///./src/api/productAttrCate.js","webpack:///./node_modules/core-js/library/modules/_validate-collection.js","webpack:///./src/api/homeAdvertise.js","webpack:///./src/api/resourceCategory.js","webpack:///./src/utils/oss-file-upload.js","webpack:///./src/api/role.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///src/components/Upload/singleUpload.vue","webpack:///./src/components/Upload/singleUpload.vue?f16b","webpack:///./src/components/Upload/singleUpload.vue","webpack:///./src/api/product.js","webpack:///./static/tinymce4.7.5/langs/zh_CN.js","webpack:///./node_modules/babel-runtime/regenerator/index.js","webpack:///./node_modules/babel-runtime/helpers/defineProperty.js","webpack:///./src/api/menu.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./node_modules/babel-runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/core-js/library/modules/es7.set.from.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/regenerator-runtime/runtime-module.js","webpack:///./node_modules/babel-runtime/core-js/set.js","webpack:///./node_modules/core-js/library/modules/_collection-to-json.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./src/api/productCate.js","webpack:///./node_modules/core-js/library/modules/es7.set.of.js","webpack:///./node_modules/core-js/library/modules/_array-species-create.js","webpack:///./node_modules/core-js/library/fn/set.js","webpack:///./node_modules/core-js/library/modules/_collection.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./src/api/brand.js","webpack:///./node_modules/core-js/library/modules/es6.set.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/cos-js-sdk-v5/dist/cos-js-sdk-v5.js","webpack:///./src/utils/date.js"],"names":["Object","__WEBPACK_IMPORTED_MODULE_0__utils_request__","url","method","params","cid","data","requestType","id","productCategoryId","forOf","__webpack_require__","module","exports","iter","ITERATOR","result","push","Array","from","isObject","isArray","SPECIES","original","C","constructor","prototype","undefined","$export","COLLECTION","S","of","length","arguments","A","this","dP","f","create","redefineAll","ctx","anInstance","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","that","key","entry","index","_i","_f","n","k","getConstructor","wrapper","NAME","IS_MAP","ADDER","iterable","_t","_l","clear","r","p","i","delete","next","prev","forEach","callbackfn","v","has","get","def","value","setStrong","iterated","kind","_k","$Object","it","desc","defineProperty","IObject","toObject","toLength","asc","TYPE","$create","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","val","res","O","self","P","R","toJSON","default","__esModule","$keys","ProductInfoDetail","name","props","isEdit","type","Boolean","isAdd","hasEditCreated","selectProductCateValue","productCateOptions","brandOptions","rules","required","message","trigger","min","max","brandId","requiredProp","price","pattern","originalPrice","showCascader","created","_this","asyncToGenerator_default","regenerator_default","a","mark","_callee","wrap","_context","getProductCateList","getBrandList","stop","computed","productId","watch","newValue","console","log","handleEditCreated","productCategoryName","getCateNameById","methods","cateParentId","_this2","productCate","then","response","list","children","j","label","_this3","brand","pageNum","pageSize","brandList","handleNext","formName","_this4","$refs","valid","$message","duration","$emit","handleBrandChange","brandName","components_ProductInfoDetail","render","_vm","_h","$createElement","_c","_self","staticStyle","margin-top","ref","width","attrs","model","label-width","size","prop","disabled","options","callback","$$v","expression","_e","_v","$set","placeholder","on","change","item","autoSize","staticClass","autocomplete","controls-position","text-align","click","$event","staticRenderFns","product_components_ProductInfoDetail","normalizeComponent","ssrContext","ProductSaleDetail","pickerOptions1","disabledDate","time","getTime","Date","now","defaultStatus","request","memberPriceList","memberLevelId","memberLevelName","selectServiceList","serviceIds","ids","split","Number","set","endsWith","substr","handleRemoveProductLadder","row","productLadderList","pop","count","discount","splice","handleAddProductLadder","handleRemoveFullReduction","fullReductionList","productFullReductionList","fullPrice","reducePrice","handleAddFullReduction","handlePrev","components_ProductSaleDetail","active-value","inactive-value","margin-right","margin-left","directives","rawName","promotionType","picker-options","class","littleMargin","_s","border","align","scopedSlots","_u","fn","scope","$index","product_components_ProductSaleDetail","ProductSaleDetail_normalizeComponent","multiUpload","maxCount","bucket_name","String","dataObj","policy","signature","KSSAccessKeyId","acl","dialogVisible","dialogImageUrl","useOss","ossUploadUrl","minioUploadUrl","fileList","emitInput","handleRemove","file","handlePreview","beforeUpload","promise_default","resolve","reject","obj","filename","bucketName","postData","oss_file_upload","kssAccessKeyId","ks3Options","uploadDomain","autoStart","document","body","ks3FileUploader","catch","err","handleUploadSuccess","info","objInfo","uploadUrl","sent","t0","handleExceed","files","Upload_multiUpload","action","list-type","file-list","before-upload","on-remove","http-request","on-preview","limit","on-exceed","visible","update:visible","src","alt","components_Upload_multiUpload","multiUpload_normalizeComponent","editorImage","color","listObj","checkAllSuccess","keys_default","every","hasSuccess","handleSubmit","arr","map","handleSuccess","uid","objKeyArr","len","fileName","unknowValueField","height","components_editorImage","style","background","borderColor","icon","append-to-body","multiple","show-file-list","Tinymce_components_editorImage","editorImage_normalizeComponent","plugins","toolbar","Tinymce","components","menubar","hasChange","hasInit","tinymceId","$nextTick","window","tinymce","setContent","mounted","initTinymce","activated","deactivated","destroyTinymce","init","selector","language","body_class","object_resizing","end_container_on_empty_block","powerpaste_word_import","code_dialog_height","code_dialog_width","advlist_bullet_styles","advlist_number_styles","imagetools_cors_hosts","default_link_target","link_title","init_instance_callback","editor","getContent","destroy","imageSuccessCBK","insertContent","destroyed","components_Tinymce","contenteditable","successCBK","src_components_Tinymce","Tinymce_normalizeComponent","ProductAttrDetail","SingleUpload","singleUpload","MultiUpload","productAttributeCategoryOptions","selectProductAttr","selectProductParam","selectProductAttrPics","addProductAttrValue","activeHtmlName","hasAttrPic","selectProductPics","pics","pic","albumPics","skuStockList","getProductAttrCateList","productAttributeCategoryId","handleProductAttrChange","productAttrCate","getProductAttrList","param","productAttr","values","handAddStatus","getEditAttrOptions","getEditAttrValues","inputList","refreshProductAttrPics","getEditParamValue","inputType","productAttributeValueList","attrValue","productAttributeId","strArr","set_default","sku","spData","JSON","parse","add","_i2","_sku","_spData","_i3","_sku2","_spData2","from_default","getInputListArr","handleAddProductAttrValue","idx","indexOf","handleRemoveProductAttrValue","getProductSkuSp","handleRefreshProductSkuList","$confirm","confirmButtonText","cancelButtonText","refreshProductSkuList","handleSyncProductSkuPrice","tempSkuList","concat","handleSyncProductSkuStock","_this5","stock","lowStock","skuList","attr","stringify_default","attr0","attr1","_i4","_attr","_attr2","attr2","_i5","_j","_spData4","_spData3","getProductSkuPic","mergeProductAttrValue","getOptionStr","_i6","mergeProductAttrPics","str","handleRemoveProductSku","getParamInputList","skuCode","flag","reg","element","match","error","handleFinishCommit","components_ProductAttrDetail","shadow","display","clearable","platformLock","littleMarginTop","product_components_ProductAttrDetail","ProductAttrDetail_normalizeComponent","ProductRelationDetail","subjectList","subjectTitles","prefrenceAreaList","prefrenceAreaTitles","getSubjectList","getPrefrenceAreaList","selectSubject","subjects","subjectProductRelationList","subjectId","selectPrefrenceArea","prefrenceAreas","prefrenceAreaProductRelationList","prefrenceAreaId","filterMethod","query","subject","title","components_ProductRelationDetail","filterable","filter-method","filter-placeholder","titles","defaultProductParam","deleteStatus","description","detailDesc","detailHtml","detailMobileHtml","detailTitle","feightTemplateId","flashPromotionCount","flashPromotionId","flashPromotionPrice","flashPromotionSort","giftPoint","giftGrowth","keywords","newStatus","note","previewStatus","productSn","promotionEndTime","promotionPerLimit","promotionPrice","promotionStartTime","publishStatus","recommandStatus","sale","sort","subTitle","unit","usePointLimit","verifyStatus","weight","ProductDetail","ProductRelationDetail_normalizeComponent","active","productParam","assign_default","showStatus","$route","product","hideAll","prevStep","nextStep","finishCommit","$router","back","components_ProductDetail","finish-status","align-center","is-edit","is-add","ProductDetail_Component","ProductDetail_normalizeComponent","__webpack_exports__","aFunction","source","mapping","cb","mapFn","nextItem","TypeError","_ref","_ref5","getUploadSign","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator___default","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default","ossType","bucket","tempPostData","abrupt","__WEBPACK_IMPORTED_MODULE_2__request__","post","pluginName","_x","apply","onOnlyFileUpload","_callee4","errorObj","_file","_errorObj","cos","_context4","Error","__WEBPACK_IMPORTED_MODULE_4_cos_js_sdk_v5___default","Domain","getAuthorization","_ref6","_callee3","_context3","Authorization","_x6","_x7","uploadFile","Bucket","Region","Key","Body","SliceSize","Location","_x4","_x5","roleId","global","Op","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","runtime","regeneratorRuntime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","call","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","setPrototypeOf","__proto__","awrap","arg","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","done","toString","keys","object","reverse","Context","reset","skipTempReset","_sent","delegate","tryEntries","resetTryEntry","charAt","isNaN","slice","rootRecord","completion","rval","dispatchException","exception","context","handle","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","complete","afterLoc","finish","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","Promise","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","Function","imageUrl","imageName","lastIndexOf","showFileList","Upload_singleUpload","slot","Component","__WEBPACK_IMPORTED_MODULE_1__utils_request__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default","addI18n","Cut","Heading 5","Header 2","Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.","Heading 4","Div","Heading 2","Paste","Close","Font Family","Pre","Align right","New document","Blockquote","Numbered list","Heading 1","Headings","Increase indent","Formats","Headers","Select all","Header 3","Blocks","Undo","Strikethrough","Bullet list","Header 1","Superscript","Clear formatting","Font Sizes","Subscript","Header 6","Redo","Paragraph","Ok","Bold","Code","Italic","Align center","Header 5","Heading 6","Heading 3","Decrease indent","Header 4","Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.","Underline","Cancel","Justify","Inline","Copy","Align left","Visual aids","Lower Greek","Square","Default","Lower Alpha","Circle","Disc","Upper Alpha","Upper Roman","Lower Roman","Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.","Name","Anchor","Id","You have unsaved changes are you sure you want to navigate away?","Restore last draft","Special character","Source code","Language","Insert/Edit code sample","B","G","Color","Right to left","Left to right","Emoticons","Robots","Document properties","Title","Keywords","Encoding","Description","Author","Fullscreen","Horizontal line","Horizontal space","Insert/edit image","General","Advanced","Source","Border","Constrain proportions","Vertical space","Image description","Style","Dimensions","Insert image","Image","Zoom in","Contrast","Back","Gamma","Flip horizontally","Resize","Sharpen","Zoom out","Image options","Apply","Brightness","Rotate clockwise","Rotate counterclockwise","Edit image","Color levels","Crop","Orientation","Flip vertically","Invert","Date/time","Insert date/time","Remove link","Url","Text to display","Anchors","Insert link","Link","New window","None","The URL you entered seems to be an external link. Do you want to add the required http:// prefix?","Paste or type a link","Target","The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?","Insert/edit link","Insert/edit video","Media","Alternative source","Paste your embed code below:","Insert video","Poster","Insert/edit media","Embed","Nonbreaking space","Page break","Paste as text","Preview","Print","Save","Could not find the specified string.","Replace","Next","Whole words","Find and replace","Replace with","Find","Replace all","Match case","Prev","Spellcheck","Finish","Ignore all","Ignore","Add to Dictionary","Insert row before","Rows","Height","Paste row after","Alignment","Border color","Column group","Row","Insert column before","Split cell","Cell padding","Cell spacing","Row type","Insert table","Caption","Footer","Delete row","Paste row before","Scope","Delete table","H Align","Top","Header cell","Column","Row group","Cell","Middle","Cell type","Copy row","Row properties","Table properties","Bottom","V Align","Header","Right","Insert column after","Cols","Insert row after","Width","Cell properties","Left","Cut row","Delete column","Center","Merge cells","Insert template","Templates","Background color","Custom...","Custom color","No color","Text color","Table of Contents","Show blocks","Show invisible characters","Words: {0}","Insert","File","Edit","Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help","Tools","View","Table","Format","_defineProperty","_defineProperty2","enumerable","configurable","writable","parentId","_promise","_promise2","gen","$defineProperty","createDesc","g","hadRuntime","getOwnPropertyNames","oldRuntime","e","classof","F","speciesConstructor","Set","meta","fails","hide","setToStringTag","each","common","IS_WEAK","Base","proto","entries","target","KEY","IS_ADDER","b","NEED","W","isArrayIter","createProperty","getIterFn","arrayLike","aLen","mapfn","iterFn","strong","core","exec","exp","factory","modules","installedModules","moduleId","l","m","c","d","getter","o","t","mode","ns","bind","property","s","./index.js","COS","./lib/base64.js","_Base64","b64chars","b64tab","fromCharCode","cb_utob","re_utob","utob","cb_encode","btoa","_encode","encode","re_btou","cb_btou","btou","cb_decode","atob","_decode","decode","Base64","bin","cc","charCodeAt","u","replace","ccc","padlen","ord","join","urisafe","m0","RegExp","cccc","offset","chars","VERSION","fromBase64","toBase64","encodeURI","noConflict","./lib/beacon.min.js","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","_typeof","assign","throw","trys","ops","emit","__EventsList","remove","one","h","A99","A100","lifeCycle","uploadJobQueue","additionalParams","delayTime","_normalLogPipeline","reduce","send","strategy","getUploadUrl","contentType","config","onReportSuccess","stringify","events","onReportFail","appkey","onUserAction","preReport","onDirectUserAction","isEventUpOnOff","isBlackEvent","isSampleEvent","onReport","errorReport","reportError","addAdditionalParams","setChannelId","commonInfo","channelID","setOpenId","openid","setUnionid","unid","getDeviceId","deviceId","getCommonInfo","removeSendingId","storage","getItem","setItem","requestParams","network","attaid","token","product_id","platform","uin","os","app_version","appVersion","sdk_version","sdkVersion","error_stack","isOversea","_dc","Math","random","error_msg","error_code","y","httpsUploadUrl","requestInterval","blacklist","samplelist","realSample","needQueryConfig","processData","needRequestConfig","requestConfig","platformId","wx","mainAppKey","osVersion","userAgent","packageName","A3","ret","beaconConfig","floor","w","getSessionStackDepth","beacon","getSession","createSession","sessionId","sessionStart","A21","navigator","test","parseFloat","$1","E","_I","reportOptions","canUseDB","indexedDB","openDB","version","stores","open","onsuccess","db","func","onerror","onupgradeneeded","createStore","useStore","storeName","deleteDB","closeDB","deleteDatabase","close","getStoreCount","getStore","clearStore","put","getStoreAllData","openCursor","continue","getDataRangeByIndex","IDBKeyRange","bound","removeDataByIndex","indexes","objectStoreNames","contains","deleteObjectStore","createObjectStore","createIndex","indexName","keyPath","transaction","objectStore","D","isReady","taskQueue","unique","getCount","readyExec","eventId","removeItem","updateItem","iterate","x","keyObject","_","dbEventCount","store","insertEvent","mapValue","getEvents","all","removeEvent","_P","T","decodeURIComponent","U","NaN","includes","isSkipEmpty","encodeURIComponent","equal","low","high","_q","interceptors","use","resolved","rejected","traverse","reduceRight","eject","J","defaults","timeout","redirect","credentials","headers","Accept","POST","Content-Type","PUT","PATCH","baseURL","polyfillUrl","V","Q","L","fetch","querySelectorAll","createElement","charset","getAttribute","setAttribute","dataset","tag","onload","onreadystatechange","readyState","appendChild","K","toUpperCase","M","hash","N","signal","setTimeout","AbortController","race","clearTimeout","abort","onReportBeforeSend","json","status","statusText","localStorage","getStoreKey","setSessionItem","sessionStorage","getSessionItem","createDeviceId","z","qimei36","uselessCycleTaskNum","underWeakNet","pauseSearching","doCustomCycleTask","code","monitorUploadFailed","isUnderIE8","isUnderIE","needInitQimei","getElementById","getElementsByTagName","removeChild","Fingerprint","getQimei36","q36","initCommonInfo","logidStartTime","initSession","initDelayTime","delay","cycleTask","sessionDuration","beaconSession","screen","devicePixelRatio","location","search","pixel","unionid","versionCode","strictMode","intervalID","setInterval","assembleData","generateData","shift","onSendBeacon","sendBeacon","A72","A88","eventCode","eventTime","sdkId","A2","A8","A12","A17","A23","A50","A76","A101","A102","href","A104","referrer","A119","A153","clearInterval","./lib/crypto.js","WordArray","CryptoJS","lib","extend","mixIn","$super","clone","words","sigBytes","q","clamp","ceil","enc","Hex","parseInt","Latin1","Utf8","escape","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","blockSize","_minBufferSize","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","SHA1","_hash","HmacSHA1","_hasher","_oKey","_iKey","wordArray","_map","base64Chars","triplet","paddingChar","base64Str","base64StrLength","paddingIndex","nBytes","bits1","bits2","./lib/json2xml.js","element_replace","not_safe_in_xml","objKeys","process_to_xml","node_data","makeNode","content","attributes","level","hasSubNodes","indent_value","indent","prettyPrint","removeIllegalNameCharacters","node","node_descriptor","nodes","xml_header","standalone","xmlHeader","xmlheader","docType","./lib/md5.js","process","ERROR","WINDOW","root","JS_MD5_NO_WINDOW","WEB_WORKER","NODE_JS","JS_MD5_NO_NODE_JS","versions","COMMON_JS","JS_MD5_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_MD5_NO_ARRAY_BUFFER","ArrayBuffer","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","BASE64_ENCODE_CHAR","blocks","buffer8","buffer","Uint8Array","Uint32Array","JS_MD5_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","isBinStr","Md5","createMethod","nodeWrap","getCtx","crypto","eval","Buffer","nodeMethod","createHash","digest","sharedMemory","h0","h1","h2","h3","start","bytes","hBytes","finalized","hashed","first","lastByteIndex","bc","da","hex","format","array","arrayBuffer","base64","v1","v2","v3","md5","./lib/request.js","stringifyPrimitive","isFinite","xhrRes","xhr","getAllResponseHeaders","trim","toLowerCase","statusCode","statusMessage","xhrBody","dataType","responseText","opt","sep","eq","qs","qsStr","ks","filter","XMLHttpRequest","responseType","xhrFields","xhrField","setRequestHeader","onProgress","upload","onprogress","onDownloadProgress","ontimeout","event","./lib/xml2json.js","DOMParser","xmlToJSON","mergeCDATA","normalize","stripElemPrefix","prefixMatch","grokType","sValue","parseString","xmlString","xml","stringToXML","parseXML","oXMLParent","vResult","nLength","sCollectedTxt","childNodes","oNode","sProp","vContent","nItem","nodeType","nodeValue","nodeName","xmlToString","xmlDoc","XMLSerializer","serializeToString","parseFromString","ActiveXObject","loadXML","./node_modules/@babel/runtime/helpers/classCallCheck.js","instance","Constructor","./node_modules/@babel/runtime/helpers/createClass.js","toPropertyKey","_defineProperties","descriptor","protoProps","staticProps","./node_modules/@babel/runtime/helpers/toPrimitive.js","input","hint","prim","toPrimitive","./node_modules/@babel/runtime/helpers/toPropertyKey.js","./node_modules/@babel/runtime/helpers/typeof.js","./node_modules/@xmldom/xmldom/lib/conventions.js","freeze","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","uri","SVG","XML","XMLNS","find","predicate","ac","./node_modules/@xmldom/xmldom/lib/dom-parser.js","conventions","dom","entities","sax","DOMImplementation","ParseError","XMLReader","normalizeLineEndings","locator","DOMHandler","cdata","position","lineNumber","columnNumber","_locator","systemId","_toString","java","lang","appendElement","hander","currentElement","doc","mimeType","domBuilder","errorHandler","defaultNSMap","xmlns","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","build","msg","buildErrorHandler","startDocument","createDocument","documentURI","startElement","namespaceURI","localName","qName","el","createElementNS","getURI","getValue","getQName","createAttributeNS","getLocator","setAttributeNode","endElement","current","tagName","parentNode","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","createTextNode","skippedEntity","endDocument","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","doctype","warning","warn","fatalError","__DOMHandler","./node_modules/@xmldom/xmldom/lib/dom.js","notEmptyString","orderedSetReducer","toOrderedSet","splitOnASCIIWhitespace","copy","dest","_extends","Class","Super","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_nsMap","_onAddAttribute","_removeNamedNode","lastIndex","Node","_xmlEncoder","_visitNode","firstChild","nextSibling","Document","_onUpdateChild","newChild","cs","child","_removeChild","previous","previousSibling","lastChild","isDocTypeNode","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidity1to5","parent","hasValidParentNodeType","hasInsertableNodeType","assertPreReplacementValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","pre","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","buf","refNode","documentElement","lookupPrefix","visibleNamespaces","namespace","needNamespaceDefine","addSerializedAttribute","qualifiedName","prefixedNodeName","defaultNS","ai","nsi","pubid","sysid","sub","internalSubset","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","cloneNode","deep","node2","attrs2","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","importedNode","rtv","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createDocumentFragment","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","substring","text","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","./node_modules/@xmldom/xmldom/lib/entities.js","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","And","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","ap","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","le","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","Map","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","Racute","racute","radic","raemptyv","Rang","rang","rangd","range","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","./node_modules/@xmldom/xmldom/lib/index.js","./node_modules/@xmldom/xmldom/lib/sax.js","nameStartChar","nameChar","tagNamePattern","S_TAG","S_ATTR","S_ATTR_SPACE","S_EQ","S_ATTR_NOQUOT_VALUE","S_ATTR_END","S_TAG_SPACE","S_TAG_CLOSE","copyLocator","parseElementStartPart","currentNSMap","entityReplacer","addAttribute","qname","startIndex","attributeNames","addValue","attrName","setTagName","closed","localNSMap","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","pos","parseDCC","end","matchs","lastMatch","endDTD","parseInstruction","ElementAttributes","defaultNSMapCopy","surrogate1","surrogate2","fixedFromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","endMatch","endIgnoreCaseMach","locator2","getLocalName","./node_modules/process/browser.js","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","noop","nextTick","args","browser","env","argv","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","./node_modules/webpack/buildin/amd-options.js","__webpack_amd_options__","./node_modules/webpack/buildin/global.js","./node_modules/webpack/buildin/module.js","webpackPolyfill","deprecate","paths","./package.json","./src/advance.js","session","Async","EventProxy","util","Tracker","wholeMultipartList","UploadList","sendParams","Prefix","calledBySdk","tracker","multipartList","Upload","IsTruncated","KeyMarker","NextKeyMarker","UploadIdMarker","NextUploadIdMarker","wholeMultipartListPart","PartList","UploadId","multipartListPart","Part","PartNumberMarker","NextPartNumberMarker","API_MAP","sliceUploadFile","FileSize","ep","TaskId","ChunkSize","AsyncLimit","StorageClass","ServerSideEncryption","onHashProgress","setParams","chunkSize","_isRunningTask","UploadData","UploadCompleteData","_UploadCompleteData","metaHeaders","shortKey","SliceList","ChunkRetryTimes","Parts","PartNumber","ETag","retry","tryCallback","multipartComplete","removeUsing","removeUploadId","loaded","total","uuid","getFileId","saveUploadId","UploadIdCacheLimit","setUsing","ChunkParallel","ChunkParallelLimit","SliceCount","FinishSize","needUploadSlices","SliceItem","_onProgress2","eachLimit","asyncCallback","currentSize","preAddSize","FileBody","ContentLength","headersWhiteList","PartItem","fileSlice","multipartUpload","Uploaded","throttleOnProgress","_params","ETagMap","isAvailableUploadList","PartCount","PartSliceSize","Size","chunkItem","getFileMd5","getChunkETag","chunk","errData","Query","multipartInit","UploadIdList","using","PartListData","isAvailable","AvailableUploadData","RemoteUploadIdList","LocalUploadIdList","getUploadIdList","isInArray","UploadID","AutoChunkSize","MaxPartNumber","SkipTask","putObject","abortUploadTask","Level","AbortArray","resultList","AbortItem","eachIndex","KeyNotMatch","multipartAbort","task","successList","errorList","taskList","fileInfo","EnableTracker","accelerate","UseAccelerate","region","apiName","fileKey","fileSize","deepTracker","DeepTracker","customId","CustomId","TrackerDelay","_onTaskReady","onTaskReady","tid","api","_onFileFinish","onFileFinish","formatResult","_addTasks","uploadFiles","TotalSize","TotalFinish","onTotalProgress","unFinishCount","_onTotalFileFinish","onTotalFileFinish","Index","fileParams","UseRawKey","PreAddSize","_onProgress","sliceCopyFile","CopySource","getSourceParams","SourceBucket","SourceRegion","SourceKey","CopySliceSize","CopyChunkSize","CopyChunkParallelLimit","ChunkCount","SourceResHeaders","SourceHeaders","TargetHeader","getCopyFileId","needCopySlices","CopySourceRange","uploadPartCopy","createNewUploadId","finishETagMap","partNumber","clearKey","restoreHeader","headObject","ErrorStatus","putObjectCopy","resHeaders","Cache-Control","Content-Disposition","Content-Encoding","Expires","x-cos-storage-class","transferToTaskMethod","apiWrapper","./src/async.js","completed","started","running","replenish","./src/base.js","REQUEST","submitBucketInventory","InventoryConfiguration","OptionalFields","Field","Destination","COSBucketDestination","Encryption","json2xml","b64","submitRequest","Action","decodeAcl","AccessControlPolicy","GrantFullControl","GrantWrite","GrantRead","GrantReadAcp","GrantWriteAcp","ACL","GrantMap","FULL_CONTROL","WRITE","READ","READ_ACP","WRITE_ACP","Grant","AccessControlList","PublicAcl","Grantee","ID","URI","Permission","Owner","uniqGrant","getUrl","longBucket","shortBucket","appId","domain","protocol","isBrowser","ForcePathStyle","camSafeUrlEncode","isLocation","getSignHost","useAccelerate","urlHost","Protocol","getAuthorizationAsync","headerHost","forceSignHost","ForceSignHost","SignHost","Host","cbDone","AuthData","XCosSecurityToken","SecurityToken","KeyName","Pathname","StsData","ResourceKey","ScopeKey","_StsCache","compareTime","round","getSkewTime","SystemClockOffset","StartTime","ExpiredTime","ScopeLimit","calcAuthByTmpKey","KeyTime","getAuth","SecretId","TmpSecretId","SecretKey","TmpSecretKey","Method","Token","ClientIP","ClientUA","checkAuthError","formatAllow","auth","AuthError","getSTS","VersionId","versionId","paramsUrl","tryTimes","oldClockOffset","signStartTime","retryTimes","signEndTime","httpStartTime","rawBody","isIOS_QQ","isCIHost","contentLength","DataType","Timeout","pathStyle","queryString","fullUrl","reqUrl","sender","Request","receive","hasReturned","killTask","statusSuccess","xml2json","xmlError","Message","httpEndTime","allowRetry","isTimeError","serverDate","date","ServerTime","errorCode","errorMessage","serverTime","CorrectClockSkew","abs","getService","ServiceDomain","AppId","standardHost","buckets","ListAllMyBucketsResult","Buckets","owner","putBucket","CreateBucketConfiguration","BucketAZConfig","headBucket","getBucket","reqParams","ListBucketResult","Contents","CommonPrefixes","deleteBucket","putBucketAcl","Grants","getBucketAcl","putBucketCors","CORSRules","rule","sKey","Conf","CORSRule","ResponseVary","CORSConfiguration","getBucketCors","deleteBucketCors","getBucketLocation","getBucketPolicy","Policy","putBucketPolicy","PolicyStr","deleteBucketPolicy","putBucketTagging","Tagging","Tags","TagSet","Tag","getBucketTagging","deleteBucketTagging","putBucketLifecycle","Rules","LifecycleConfiguration","Rule","getBucketLifecycle","deleteBucketLifecycle","putBucketVersioning","VersioningConfiguration","getBucketVersioning","putBucketReplication","ReplicationConfiguration","getBucketReplication","makeArray","deleteBucketReplication","putBucketWebsite","WebsiteConfiguration","RoutingRules","RoutingRule","getBucketWebsite","deleteBucketWebsite","putBucketReferer","RefererConfiguration","DomainList","Domains","getBucketReferer","putBucketDomain","DomainRule","DomainConfiguration","getBucketDomain","deleteBucketDomain","putBucketOrigin","OriginRule","OriginConfiguration","getBucketOrigin","deleteBucketOrigin","putBucketLogging","BucketLoggingStatus","getBucketLogging","putBucketInventory","postBucketInventory","getBucketInventory","listBucketInventory","continuation-token","ListInventoryConfigurationResult","InventoryConfigurations","deleteBucketInventory","putBucketAccelerate","configuration","AccelerateConfiguration","getBucketAccelerate","putBucketEncryption","conf","ServerSideEncryptionConfiguration","getBucketEncryption","EncryptionConfiguration","deleteBucketEncryption","getObject","reqParamsStr","QueryString","NotModified","listObjectVersions","ListVersionsResult","DeleteMarkers","DeleteMarker","Versions","Version","needCalcMd5","UploadAddMetaMd5","UploadCheckContentMd5","md5StartTime","getBodyMd5","md5EndTime","deleteObject","Recursive","BucketNotFound","getObjectAcl","putObjectAcl","optionsObject","OptionsForbidden","AccessControlAllowOrigin","AccessControlAllowMethods","AccessControlAllowHeaders","AccessControlExposeHeaders","AccessControlMaxAge","CopyObjectResult","deleteMultipleObject","Objects","Quiet","Delete","DeleteResult","Deleted","Errors","restoreObject","RestoreRequest","putObjectTagging","getObjectTagging","deleteObjectTagging","selectObjectContent","SelectRequest","select-type","parseSelectPayload","Payload","payload","appendObject","Position","uploadId","CopyPartResult","errorNode","InitiateMultipartUploadResult","getFileSize","CompleteMultipartUpload","CompleteMultipartUploadResult","ProcessResults","UploadResult","OriginalInfo","ImageInfo","ListMultipartUploadsResult","ListPartsResult","RawBody","getObjectUrl","queryParamsStr","obj2str","syncUrl","Sign","signUrl","urlParams","encodedParams","replaceUrlParamList","suffix","oldName","apiFn","warned","warnOldApi","./src/cos.js","advance","pkg","defaultOptions","FileParallelLimit","ProgressInterval","CompatibilityMode","UploadQueueSize","isNode","encodeBase64","./src/event.js","initEvent","getList","./src/session.js","cache","timer","cacheKey","setCache","changed","mtime","save","mod","lastModifiedDate","copySource","sourceHeaders","etag","lastModified","unshift","./src/task.js","originApiMap","apiMap","_addTask","tasks","uploadingFileCount","nextUploadIndex","formatTask","FilePath","speed","percent","hashPercent","_custom","emitListUpdate","clearQueue","isActive","startNextTask","onTaskStart","apiParams","formatParams","switchToState","waiting","pipe","toState","isTaskReadyWarning","ignoreAddEvent","TaskReady","getTaskList","cancelTask","pauseTask","restartTask","isUploadRunning","./src/tracker.js","_classCallCheck","_createClass","getBeacon","BeaconAction","utils","getUid","S4","getNetType","connection","mozConnection","webkitConnection","effectiveType","getOsType","agent","isMac","isMobile","isAndroid","isIOS","isOtherMobile","getDeviceName","explorer","ver","_match","_ver","_match2","_ver2","_match3","_ver3","_match4","_ver4","_match5","_ver5","_match6","_ver6","_match7","_ver7","constant","mobileOsType","pcOsType","deviceInfo","deviceType","devicePlatform","deviceName","sliceUploadMethods","uploadApi","downloadApi","camel2underline","traceId","appid","cossdkVersion","networkType","host","requestPath","httpMd5","httpSign","httpFull","tookTime","errorRequestId","errorStatusCode","errorServiceName","tracePlatform","startTime","endTime","_err$error","_err$error2","_err$error3","_err$error4","_err$error5","_err$error6","resource","Resource","requestId","errorType","fullError","execRes","sendEvents","formattedParams","reporterKeys","subParams","./src/util.js","getObjectKeys","forKey","compareVersion","signHeaders","readIntBE","8","16","Uint16Array","32","buf2str","isUtf8","charCode","retObj","fileSliceNeedCopy","ua","ChromeVersion","QBCoreVersion","QQBrowserVersion","x-cos-mfa","Content-MD5","Content-Length","Expect","Range","If-Modified-Since","If-Unmodified-Since","If-Match","If-None-Match","x-cos-copy-source","x-cos-copy-source-Range","x-cos-metadata-directive","x-cos-copy-source-If-Modified-Since","x-cos-copy-source-If-Unmodified-Since","x-cos-copy-source-If-Match","x-cos-copy-source-If-None-Match","x-cos-acl","x-cos-grant-read","x-cos-grant-write","x-cos-grant-full-control","x-cos-grant-read-acp","x-cos-grant-write-acp","x-cos-traffic-limit","x-cos-mime-limit","x-cos-server-side-encryption-customer-algorithm","x-cos-server-side-encryption-customer-key","x-cos-server-side-encryption-customer-key-MD5","x-cos-server-side-encryption","x-cos-server-side-encryption-cos-kms-key-id","x-cos-server-side-encryption-context","Pic-Operations","paramKey","headerKey","isQQ","generateSubTracker","byteLength","RequestId","_callback","errMsg","missingResult","checkBucket","checkRegion","checkParams","isSync","isUseToUpload","blob","mozSlice","webkitSlice","reader","FileReader","Blob","readAsArrayBuffer","md5ctx","readFun","fr","readAsBinaryString","fileData","binary","char","iaArr","defaultValue","time1","size0","size1","time0","immediately","sourceErr","stack","lowerCaseKey","keyList","pathname","queryParams","signHeaderObj","getSignHeaderObj","expires","qAk","qSignTime","qKeyTime","qHeaderList","qUrlParamList","signKey","formatString","stringToSign","header","records","totalLength","headerLength","payloadRestLength","headerNameLength","headerName","headerValueLength","headerValue","stats","Stats","errCode","errMessage","parser","CopySourceParser","globalThis","FileReaderSync","safe","replaceAll","padLeftZero","fmt","getFullYear","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds"],"mappings":"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C,MAAA,IACAC,MAAA,IACAC,OAAA,IACAC,MAAA,IACA/gF,GAAA,IACAghF,OAAA,IACAC,OAAA,IACAC,MAAA,IACAC,MAAA,IACAC,KAAA,IACAC,KAAA,IACAC,MAAA,IACAC,MAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,MAAA,IACAC,KAAA,KACAC,KAAA,KACAC,KAAA,KACAC,KAAA,KACAC,OAAA,IACAC,OAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,OAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,KACAC,KAAA,KACAC,KAAA,KACAC,KAAA,KACAC,MAAA,IACAC,OAAA,IACAC,OAAA,IACAC,SAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,KAAA,IACArjC,KAAA,IACAsjC,MAAA,IACAC,OAAA,IACAC,IAAA,IACAC,WAAA,IACAC,MAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,MAAA,IACAC,QAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,QAAA,IACAC,OAAA,IACAC,IAAA,IACAC,OAAA,IACAC,OAAA,IACAC,KAAA,IACAC,MAAA,KACAC,MAAA,IACAC,MAAA,IACAC,MAAA,IACAC,OAAA,IACAC,OAAA,IACAC,MAAA,IACAC,QAAA,IACAC,QAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,OAAA,IACAC,MAAA,IACAC,KAAA,IACAC,IAAA,IACAC,IAAA,IACAC,KAAA,IACAC,MAAA,IACAC,OAAA,IACAC,QAAA,IACAC,SAAA,IACAC,KAAA,IACAC,GAAA,IACAC,GAAA,IACAC,iBAAA,IACAC,UAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,oBAAA,IACAC,cAAA,IACAC,YAAA,IACAC,kBAAA,IACAC,kBAAA,IACA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","file":"static/js/0.22575540957b5e13d1a2.js","sourcesContent":["import request from '@/utils/request'\nexport function fetchListAll() {\n return request({\n url:'/subject/listAll',\n method:'get',\n })\n}\n\nexport function fetchList(params) {\n return request({\n url:'/subject/list',\n method:'get',\n params:params\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/subject.js","import request from '@/utils/request'\nexport function fetchList(cid,params) {\n return request({\n url:'/productAttribute/list/'+cid,\n method:'get',\n params:params\n })\n}\n\nexport function deleteProductAttr(data) {\n return request({\n url:'/productAttribute/delete',\n method:'post',\n data:data,\n requestType:'form'\n })\n}\n\nexport function createProductAttr(data) {\n return request({\n url:'/productAttribute/create',\n method:'post',\n data:data\n })\n}\n\nexport function updateProductAttr(id,data) {\n return request({\n url:'/productAttribute/update/'+id,\n method:'post',\n data:data\n })\n}\nexport function getProductAttr(id) {\n return request({\n url:'/productAttribute/'+id,\n method:'get'\n })\n}\n\nexport function getProductAttrInfo(productCategoryId) {\n return request({\n url:'/productAttribute/attrInfo/'+productCategoryId,\n method:'get'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/productAttr.js","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-from-iterable.js\n// module id = 4WTo\n// module chunks = 0","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/coupon/list',\n method:'get',\n params:params\n })\n}\n\nexport function createCoupon(data) {\n return request({\n url:'/coupon/create',\n method:'post',\n data:data\n })\n}\n\nexport function getCoupon(id) {\n return request({\n url:'/coupon/'+id,\n method:'get',\n })\n}\n\nexport function updateCoupon(id,data) {\n return request({\n url:'/coupon/update/'+id,\n method:'post',\n data:data\n })\n}\n\nexport function deleteCoupon(id) {\n return request({\n url:'/coupon/delete/'+id,\n method:'post',\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/coupon.js","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/from.js\n// module id = 5zde\n// module chunks = 0","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-species-constructor.js\n// module id = 7Doy\n// module chunks = 0","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-collection-of.js\n// module id = 9Bbf\n// module chunks = 0","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_collection-strong.js\n// module id = 9C8M\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 9bBU\n// module chunks = 0","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-methods.js\n// module id = ALrJ\n// module chunks = 0","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.set.to-json.js\n// module id = BDhv\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/define-property.js\n// module id = C4MV\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = Cdx3\n// module chunks = 0","<template>\n <div style=\"margin-top: 50px\">\n <el-form\n :model=\"value\"\n :rules=\"rules\"\n ref=\"productInfoForm\"\n label-width=\"120px\"\n style=\"width: 600px\"\n size=\"small\"\n >\n <el-form-item label=\"商品分类:\" prop=\"productCategoryId\">\n <el-cascader\n v-if=\"showCascader\"\n :disabled=\"!isEdit\"\n v-model=\"selectProductCateValue\"\n :options=\"productCateOptions\"\n >\n </el-cascader>\n </el-form-item>\n <el-form-item label=\"商品名称:\" prop=\"name\">\n <el-input v-model=\"value.name\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <!-- <el-form-item label=\"副标题:\" prop=\"subTitle\">\n <el-input v-model=\"value.subTitle\" :disabled=\"!isEdit\"></el-input>\n </el-form-item> -->\n <el-form-item label=\"商品品牌:\" prop=\"brandId\">\n <el-select\n v-model=\"value.brandId\"\n @change=\"handleBrandChange\"\n :disabled=\"!isEdit\"\n placeholder=\"请选择品牌\"\n >\n <el-option\n v-for=\"item in brandOptions\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"商品描述:\">\n <el-input\n :autoSize=\"true\"\n v-model=\"value.detailDesc\"\n :disabled=\"!isEdit\"\n type=\"textarea\"\n placeholder=\"请输入内容\"\n ></el-input>\n </el-form-item>\n <el-form-item label=\"商品货号:\">\n <el-input v-model=\"value.productSn\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"商品售价:\" prop=\"price\">\n <el-input-number\n v-model=\"value.price\"\n :disabled=\"!isEdit\"\n autocomplete=\"off\"\n controls-position=\"right\"\n class=\"number-input\"\n type=\"number\"\n ></el-input-number>\n </el-form-item>\n <el-form-item label=\"市场价:\" prop=\"originalPrice\">\n <el-input-number\n v-model=\"value.originalPrice\"\n type=\"number\"\n autocomplete=\"off\"\n controls-position=\"right\"\n class=\"number-input\"\n :disabled=\"!isEdit\"\n ></el-input-number>\n </el-form-item>\n <el-form-item label=\"商品库存:\">\n <el-input-number\n v-model=\"value.stock\"\n type=\"number\"\n autocomplete=\"off\"\n controls-position=\"right\"\n class=\"number-input\"\n :disabled=\"!isEdit\"\n ></el-input-number>\n </el-form-item>\n <!-- <el-form-item label=\"计量单位:\">\n <el-input-number\n v-model=\"value.unit\"\n :disabled=\"!isEdit\"\n ></el-input-number>\n </el-form-item> -->\n <!-- <el-form-item label=\"商品重量:\">\n <el-input-number\n v-model=\"value.weight\"\n type=\"number\"\n autocomplete=\"off\"\n controls-position=\"right\"\n class=\"number-input\"\n style=\"width: 300px\"\n :disabled=\"!isEdit\"\n ></el-input-number>\n <span style=\"margin-left: 20px\">克</span>\n </el-form-item> -->\n <el-form-item label=\"排序\">\n <el-input-number v-model=\"value.sort\" :disabled=\"!isEdit\"></el-input-number>\n </el-form-item>\n <el-form-item style=\"text-align: center\">\n <el-button type=\"primary\" size=\"medium\" @click=\"handleNext('productInfoForm')\"\n >下一步,填写商品促销</el-button\n >\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script>\nimport { fetchListWithChildren } from \"@/api/productCate\";\nimport { fetchList as fetchBrandList } from \"@/api/brand\";\nimport { getProduct } from \"@/api/product\";\n\nexport default {\n name: \"ProductInfoDetail\",\n props: {\n value: Object,\n isEdit: {\n type: Boolean,\n default: false,\n },\n isAdd: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n hasEditCreated: false,\n //选中商品分类的值\n selectProductCateValue: [],\n productCateOptions: [],\n brandOptions: [],\n rules: {\n name: [\n { required: true, message: \"请输入商品名称\", trigger: \"blur\" },\n {\n min: 2,\n max: 140,\n message: \"长度在 2 到 140 个字符\",\n trigger: \"blur\",\n },\n ],\n // subTitle: [\n // { required: true, message: \"请输入商品副标题\", trigger: \"blur\" },\n // ],\n productCategoryId: [\n { required: true, message: \"请选择商品分类\", trigger: \"blur\" },\n ],\n brandId: [{ required: true, message: \"请选择商品品牌\", trigger: \"blur\" }],\n // detailDesc: [\n // { required: true, message: \"请输入商品介绍\", trigger: \"blur\" },\n // ],\n requiredProp: [{ required: true, message: \"该项为必填项\", trigger: \"blur\" }],\n price: [\n {\n required: true,\n message: \"请输入正确的商品售价\",\n trigger: \"blur\",\n pattern: /(?!(^[0.]*$))((^[1-9]\\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\\d{1,2}$))/,\n },\n ],\n originalPrice: [\n {\n required: true,\n message: \"请输入正确的商品市场价\",\n trigger: \"blur\",\n pattern: /(?!(^[0.]*$))((^[1-9]\\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\\d{1,2}$))/,\n },\n ],\n },\n showCascader: false,\n };\n },\n async created() {\n if (this.isAdd) {\n this.showCascader = true;\n }\n await this.getProductCateList();\n await this.getBrandList();\n },\n computed: {\n //商品的编号\n productId() {\n return this.value.id;\n },\n },\n watch: {\n productId: function (newValue) {\n // if(!this.isEdit)return;\n if (this.hasEditCreated) return;\n if (newValue === undefined || newValue == null || newValue === 0) return;\n console.log(\"productId\", newValue);\n this.handleEditCreated();\n },\n selectProductCateValue: function (newValue) {\n console.log(newValue, \"newValue\", this.value);\n if (newValue != null && newValue.length === 2) {\n this.value.productCategoryId = newValue[1];\n this.value.productCategoryName = this.getCateNameById(\n this.value.productCategoryId\n );\n } else {\n this.value.productCategoryId = null;\n this.value.productCategoryName = null;\n }\n // this.handleEditCreated();\n },\n },\n methods: {\n //处理编辑逻辑\n handleEditCreated() {\n if (this.value.productCategoryId != null) {\n this.selectProductCateValue.push(this.value.cateParentId);\n this.selectProductCateValue.push(this.value.productCategoryId);\n }\n this.showCascader = true;\n this.hasEditCreated = true;\n },\n getProductCateList() {\n fetchListWithChildren().then((response) => {\n let list = response.data;\n this.productCateOptions = [];\n for (let i = 0; i < list.length; i++) {\n let children = [];\n if (list[i].children != null && list[i].children.length > 0) {\n for (let j = 0; j < list[i].children.length; j++) {\n children.push({\n label: list[i].children[j].name,\n value: list[i].children[j].id,\n });\n }\n }\n this.productCateOptions.push({\n label: list[i].name,\n value: list[i].id,\n children: children,\n });\n }\n // this.$set(this,'productCateOptions',this.productCateOptions)\n });\n },\n getBrandList() {\n fetchBrandList({ pageNum: 1, pageSize: 100 }).then((response) => {\n this.brandOptions = [];\n let brandList = response.data.list;\n for (let i = 0; i < brandList.length; i++) {\n this.brandOptions.push({\n label: brandList[i].name,\n value: brandList[i].id,\n });\n }\n });\n },\n getCateNameById(id) {\n let name = null;\n for (let i = 0; i < this.productCateOptions.length; i++) {\n for (let j = 0; j < this.productCateOptions[i].children.length; j++) {\n if (this.productCateOptions[i].children[j].value === id) {\n name = this.productCateOptions[i].children[j].label;\n return name;\n }\n }\n }\n return name;\n },\n handleNext(formName) {\n this.$refs[formName].validate((valid) => {\n if (valid) {\n this.$emit(\"nextStep\");\n } else {\n this.$message({\n message: \"验证失败\",\n type: \"error\",\n duration: 1000,\n });\n return false;\n }\n });\n },\n handleBrandChange(val) {\n let brandName = \"\";\n for (let i = 0; i < this.brandOptions.length; i++) {\n if (this.brandOptions[i].value === val) {\n brandName = this.brandOptions[i].label;\n break;\n }\n }\n this.value.brandName = brandName;\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\n.number-input {\n ::v-deep .el-input__inner {\n text-align: left;\n }\n\n width: 100%;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/pms/product/components/ProductInfoDetail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-top\":\"50px\"}},[_c('el-form',{ref:\"productInfoForm\",staticStyle:{\"width\":\"600px\"},attrs:{\"model\":_vm.value,\"rules\":_vm.rules,\"label-width\":\"120px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":\"商品分类:\",\"prop\":\"productCategoryId\"}},[(_vm.showCascader)?_c('el-cascader',{attrs:{\"disabled\":!_vm.isEdit,\"options\":_vm.productCateOptions},model:{value:(_vm.selectProductCateValue),callback:function ($$v) {_vm.selectProductCateValue=$$v},expression:\"selectProductCateValue\"}}):_vm._e()],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品名称:\",\"prop\":\"name\"}},[_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.value.name),callback:function ($$v) {_vm.$set(_vm.value, \"name\", $$v)},expression:\"value.name\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品品牌:\",\"prop\":\"brandId\"}},[_c('el-select',{attrs:{\"disabled\":!_vm.isEdit,\"placeholder\":\"请选择品牌\"},on:{\"change\":_vm.handleBrandChange},model:{value:(_vm.value.brandId),callback:function ($$v) {_vm.$set(_vm.value, \"brandId\", $$v)},expression:\"value.brandId\"}},_vm._l((_vm.brandOptions),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}))],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品描述:\"}},[_c('el-input',{attrs:{\"autoSize\":true,\"disabled\":!_vm.isEdit,\"type\":\"textarea\",\"placeholder\":\"请输入内容\"},model:{value:(_vm.value.detailDesc),callback:function ($$v) {_vm.$set(_vm.value, \"detailDesc\", $$v)},expression:\"value.detailDesc\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品货号:\"}},[_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.value.productSn),callback:function ($$v) {_vm.$set(_vm.value, \"productSn\", $$v)},expression:\"value.productSn\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品售价:\",\"prop\":\"price\"}},[_c('el-input-number',{staticClass:\"number-input\",attrs:{\"disabled\":!_vm.isEdit,\"autocomplete\":\"off\",\"controls-position\":\"right\",\"type\":\"number\"},model:{value:(_vm.value.price),callback:function ($$v) {_vm.$set(_vm.value, \"price\", $$v)},expression:\"value.price\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"市场价:\",\"prop\":\"originalPrice\"}},[_c('el-input-number',{staticClass:\"number-input\",attrs:{\"type\":\"number\",\"autocomplete\":\"off\",\"controls-position\":\"right\",\"disabled\":!_vm.isEdit},model:{value:(_vm.value.originalPrice),callback:function ($$v) {_vm.$set(_vm.value, \"originalPrice\", $$v)},expression:\"value.originalPrice\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品库存:\"}},[_c('el-input-number',{staticClass:\"number-input\",attrs:{\"type\":\"number\",\"autocomplete\":\"off\",\"controls-position\":\"right\",\"disabled\":!_vm.isEdit},model:{value:(_vm.value.stock),callback:function ($$v) {_vm.$set(_vm.value, \"stock\", $$v)},expression:\"value.stock\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"排序\"}},[_c('el-input-number',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.value.sort),callback:function ($$v) {_vm.$set(_vm.value, \"sort\", $$v)},expression:\"value.sort\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"text-align\":\"center\"}},[_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"medium\"},on:{\"click\":function($event){_vm.handleNext('productInfoForm')}}},[_vm._v(\"下一步,填写商品促销\")])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-9359d4a2\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/pms/product/components/ProductInfoDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-9359d4a2\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ProductInfoDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductInfoDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductInfoDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9359d4a2\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ProductInfoDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-9359d4a2\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/pms/product/components/ProductInfoDetail.vue\n// module id = null\n// module chunks = ","<template>\n <div style=\"margin-top: 50px\">\n <el-form :model=\"value\" ref=\"productSaleForm\" label-width=\"120px\" style=\"width: 600px\" size=\"small\">\n <!-- <el-form-item label=\"赠送积分:\">\n <el-input v-model=\"value.giftPoint\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"赠送成长值:\">\n <el-input v-model=\"value.giftGrowth\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"积分购买限制:\">\n <el-input v-model=\"value.usePointLimit\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"预告商品:\">\n <el-switch\n :disabled=\"!isEdit\"\n v-model=\"value.previewStatus\"\n :active-value=\"1\"\n :inactive-value=\"0\">\n </el-switch>\n </el-form-item> -->\n <el-form-item label=\"商品上架:\">\n <el-switch\n v-model=\"value.publishStatus\"\n :disabled=\"!isEdit\"\n :active-value=\"1\"\n :inactive-value=\"0\">\n </el-switch>\n </el-form-item>\n <el-form-item label=\"商品推荐:\">\n <span style=\"margin-right: 10px\">新品</span>\n <el-switch\n v-model=\"value.newStatus\"\n :disabled=\"!isEdit\"\n :active-value=\"1\"\n :inactive-value=\"0\">\n </el-switch>\n <span style=\"margin-left: 10px;margin-right: 10px\">推荐</span>\n <el-switch\n v-model=\"value.recommandStatus\"\n :disabled=\"!isEdit\"\n :active-value=\"1\"\n :inactive-value=\"0\">\n </el-switch>\n </el-form-item>\n <!-- <el-form-item label=\"服务保证:\">\n <el-checkbox-group v-model=\"selectServiceList\" :disabled=\"!isEdit\">\n <el-checkbox :label=\"1\">无忧退货</el-checkbox>\n <el-checkbox :label=\"2\">快速退款</el-checkbox>\n <el-checkbox :label=\"3\">免费包邮</el-checkbox>\n </el-checkbox-group>\n </el-form-item>\n <el-form-item label=\"详细页标题:\">\n <el-input v-model=\"value.detailTitle\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"详细页描述:\">\n <el-input v-model=\"value.detailDesc\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"商品关键字:\">\n <el-input v-model=\"value.keywords\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"商品备注:\">\n <el-input v-model=\"value.note\" type=\"textarea\" :autoSize=\"true\" :disabled=\"!isEdit\"></el-input>\n </el-form-item>\n <el-form-item label=\"选择优惠方式:\">\n <el-radio-group v-model=\"value.promotionType\" size=\"small\" :disabled=\"!isEdit\">\n <el-radio-button :label=\"0\">无优惠</el-radio-button>\n <el-radio-button :label=\"1\">特惠促销</el-radio-button>\n <el-radio-button :label=\"2\">会员价格</el-radio-button>\n <el-radio-button :label=\"3\">阶梯价格</el-radio-button>\n <el-radio-button :label=\"4\">满减价格</el-radio-button>\n </el-radio-group>\n </el-form-item> -->\n <el-form-item v-show=\"value.promotionType===1\">\n <div>\n 开始时间:\n <el-date-picker\n :disabled=\"!isEdit\"\n v-model=\"value.promotionStartTime\"\n type=\"datetime\"\n :picker-options=\"pickerOptions1\"\n placeholder=\"选择开始时间\">\n </el-date-picker>\n </div>\n <div class=\"littleMargin\">\n 结束时间:\n <el-date-picker\n v-model=\"value.promotionEndTime\"\n :disabled=\"!isEdit\"\n type=\"datetime\"\n :picker-options=\"pickerOptions1\"\n placeholder=\"选择结束时间\">\n </el-date-picker>\n </div>\n <div class=\"littleMargin\">\n 促销价格:\n <el-input style=\"width: 220px\" v-model=\"value.promotionPrice\" :disabled=\"!isEdit\" placeholder=\"输入促销价格\"></el-input>\n </div>\n\n </el-form-item>\n <el-form-item v-show=\"value.promotionType===2\">\n <div v-for=\"(item, index) in value.memberPriceList\" :class=\"{littleMargin:index!==0}\">\n {{item.memberLevelName}}:\n <el-input v-model=\"item.memberPrice\" :disabled=\"!isEdit\" style=\"width: 200px\"></el-input>\n </div>\n </el-form-item>\n <el-form-item v-show=\"value.promotionType===3\">\n <el-table :data=\"value.productLadderList\"\n style=\"width: 80%\" border>\n <el-table-column\n label=\"数量\"\n align=\"center\"\n width=\"120\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.count\" :disabled=\"!isEdit\"></el-input>\n </template>\n </el-table-column>\n <el-table-column\n label=\"折扣\"\n align=\"center\"\n width=\"120\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.discount\" :disabled=\"!isEdit\"></el-input>\n </template>\n </el-table-column>\n <el-table-column\n align=\"center\"\n label=\"操作\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" :disabled=\"!isEdit\" @click=\"handleRemoveProductLadder(scope.$index, scope.row)\">删除</el-button>\n <el-button type=\"text\" :disabled=\"!isEdit\" @click=\"handleAddProductLadder(scope.$index, scope.row)\">添加</el-button>\n </template>\n </el-table-column>\n </el-table>\n </el-form-item>\n <el-form-item v-show=\"value.promotionType===4\">\n <el-table :data=\"value.productFullReductionList\"\n style=\"width: 80%\" border>\n <el-table-column\n label=\"满\"\n align=\"center\"\n width=\"120\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.fullPrice\"></el-input>\n </template>\n </el-table-column>\n <el-table-column\n label=\"立减\"\n align=\"center\"\n width=\"120\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.reducePrice\"></el-input>\n </template>\n </el-table-column>\n <el-table-column\n align=\"center\"\n label=\"操作\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" :disabled=\"!isEdit\" @click=\"handleRemoveFullReduction(scope.$index, scope.row)\">删除</el-button>\n <el-button type=\"text\" :disabled=\"!isEdit\" @click=\"handleAddFullReduction(scope.$index, scope.row)\">添加</el-button>\n </template>\n </el-table-column>\n </el-table>\n </el-form-item>\n <el-form-item style=\"text-align: center\">\n <el-button size=\"medium\" @click=\"handlePrev\">上一步,填写商品信息</el-button>\n <el-button type=\"primary\" size=\"medium\" @click=\"handleNext\">下一步,填写商品属性</el-button>\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script>\n import {fetchList as fetchMemberLevelList} from '@/api/memberLevel'\n\n export default {\n name: \"ProductSaleDetail\",\n props: {\n value: Object,\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n //日期选择器配置\n pickerOptions1: {\n disabledDate(time) {\n return time.getTime() < Date.now();\n }\n }\n }\n },\n created() {\n if (this.isEdit) {\n // this.handleEditCreated();\n } else {\n fetchMemberLevelList({defaultStatus: 0}).then(response => {\n let memberPriceList = [];\n for (let i = 0; i < response.data.length; i++) {\n let item = response.data[i];\n memberPriceList.push({memberLevelId: item.id, memberLevelName: item.name})\n }\n this.value.memberPriceList = memberPriceList;\n });\n }\n },\n computed: {\n //选中的服务保证\n selectServiceList: {\n get() {\n let list = [];\n if (this.value.serviceIds === undefined || this.value.serviceIds == null || this.value.serviceIds === '') return list;\n let ids = this.value.serviceIds.split(',');\n for (let i = 0; i < ids.length; i++) {\n list.push(Number(ids[i]));\n }\n return list;\n },\n set(newValue) {\n let serviceIds = '';\n if (newValue != null && newValue.length > 0) {\n for (let i = 0; i < newValue.length; i++) {\n serviceIds += newValue[i] + ',';\n }\n if (serviceIds.endsWith(',')) {\n serviceIds = serviceIds.substr(0, serviceIds.length - 1)\n }\n this.value.serviceIds = serviceIds;\n } else {\n this.value.serviceIds = null;\n }\n }\n }\n },\n methods: {\n handleEditCreated() {\n let ids = this.value.serviceIds.split(',');\n console.log('handleEditCreated', ids);\n for (let i = 0; i < ids.length; i++) {\n this.selectServiceList.push(Number(ids[i]));\n }\n },\n handleRemoveProductLadder(index, row) {\n let productLadderList = this.value.productLadderList;\n if (productLadderList.length === 1) {\n productLadderList.pop();\n productLadderList.push({\n count: 0,\n discount: 0,\n price: 0\n })\n } else {\n productLadderList.splice(index, 1);\n }\n },\n handleAddProductLadder(index, row) {\n let productLadderList = this.value.productLadderList;\n if (productLadderList.length < 3) {\n productLadderList.push({\n count: 0,\n discount: 0,\n price: 0\n })\n } else {\n this.$message({\n message: '最多只能添加三条',\n type: 'warning'\n });\n }\n },\n handleRemoveFullReduction(index, row) {\n let fullReductionList = this.value.productFullReductionList;\n if (fullReductionList.length === 1) {\n fullReductionList.pop();\n fullReductionList.push({\n fullPrice: 0,\n reducePrice: 0\n });\n } else {\n fullReductionList.splice(index, 1);\n }\n },\n handleAddFullReduction(index, row) {\n let fullReductionList = this.value.productFullReductionList;\n if (fullReductionList.length < 3) {\n fullReductionList.push({\n fullPrice: 0,\n reducePrice: 0\n });\n } else {\n this.$message({\n message: '最多只能添加三条',\n type: 'warning'\n });\n }\n },\n handlePrev() {\n this.$emit('prevStep')\n },\n handleNext() {\n this.$emit('nextStep')\n }\n }\n }\n</script>\n\n<style scoped>\n .littleMargin {\n margin-top: 10px;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/pms/product/components/ProductSaleDetail.vue","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/memberLevel/list',\n method:'get',\n params:params\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/memberLevel.js","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-top\":\"50px\"}},[_c('el-form',{ref:\"productSaleForm\",staticStyle:{\"width\":\"600px\"},attrs:{\"model\":_vm.value,\"label-width\":\"120px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":\"商品上架:\"}},[_c('el-switch',{attrs:{\"disabled\":!_vm.isEdit,\"active-value\":1,\"inactive-value\":0},model:{value:(_vm.value.publishStatus),callback:function ($$v) {_vm.$set(_vm.value, \"publishStatus\", $$v)},expression:\"value.publishStatus\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品推荐:\"}},[_c('span',{staticStyle:{\"margin-right\":\"10px\"}},[_vm._v(\"新品\")]),_vm._v(\" \"),_c('el-switch',{attrs:{\"disabled\":!_vm.isEdit,\"active-value\":1,\"inactive-value\":0},model:{value:(_vm.value.newStatus),callback:function ($$v) {_vm.$set(_vm.value, \"newStatus\", $$v)},expression:\"value.newStatus\"}}),_vm._v(\" \"),_c('span',{staticStyle:{\"margin-left\":\"10px\",\"margin-right\":\"10px\"}},[_vm._v(\"推荐\")]),_vm._v(\" \"),_c('el-switch',{attrs:{\"disabled\":!_vm.isEdit,\"active-value\":1,\"inactive-value\":0},model:{value:(_vm.value.recommandStatus),callback:function ($$v) {_vm.$set(_vm.value, \"recommandStatus\", $$v)},expression:\"value.recommandStatus\"}})],1),_vm._v(\" \"),_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value.promotionType===1),expression:\"value.promotionType===1\"}]},[_c('div',[_vm._v(\"\\n 开始时间:\\n \"),_c('el-date-picker',{attrs:{\"disabled\":!_vm.isEdit,\"type\":\"datetime\",\"picker-options\":_vm.pickerOptions1,\"placeholder\":\"选择开始时间\"},model:{value:(_vm.value.promotionStartTime),callback:function ($$v) {_vm.$set(_vm.value, \"promotionStartTime\", $$v)},expression:\"value.promotionStartTime\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"littleMargin\"},[_vm._v(\"\\n 结束时间:\\n \"),_c('el-date-picker',{attrs:{\"disabled\":!_vm.isEdit,\"type\":\"datetime\",\"picker-options\":_vm.pickerOptions1,\"placeholder\":\"选择结束时间\"},model:{value:(_vm.value.promotionEndTime),callback:function ($$v) {_vm.$set(_vm.value, \"promotionEndTime\", $$v)},expression:\"value.promotionEndTime\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"littleMargin\"},[_vm._v(\"\\n 促销价格:\\n \"),_c('el-input',{staticStyle:{\"width\":\"220px\"},attrs:{\"disabled\":!_vm.isEdit,\"placeholder\":\"输入促销价格\"},model:{value:(_vm.value.promotionPrice),callback:function ($$v) {_vm.$set(_vm.value, \"promotionPrice\", $$v)},expression:\"value.promotionPrice\"}})],1)]),_vm._v(\" \"),_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value.promotionType===2),expression:\"value.promotionType===2\"}]},_vm._l((_vm.value.memberPriceList),function(item,index){return _c('div',{class:{littleMargin:index!==0}},[_vm._v(\"\\n \"+_vm._s(item.memberLevelName)+\":\\n \"),_c('el-input',{staticStyle:{\"width\":\"200px\"},attrs:{\"disabled\":!_vm.isEdit},model:{value:(item.memberPrice),callback:function ($$v) {_vm.$set(item, \"memberPrice\", $$v)},expression:\"item.memberPrice\"}})],1)})),_vm._v(\" \"),_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value.promotionType===3),expression:\"value.promotionType===3\"}]},[_c('el-table',{staticStyle:{\"width\":\"80%\"},attrs:{\"data\":_vm.value.productLadderList,\"border\":\"\"}},[_c('el-table-column',{attrs:{\"label\":\"数量\",\"align\":\"center\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(scope.row.count),callback:function ($$v) {_vm.$set(scope.row, \"count\", $$v)},expression:\"scope.row.count\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"折扣\",\"align\":\"center\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(scope.row.discount),callback:function ($$v) {_vm.$set(scope.row, \"discount\", $$v)},expression:\"scope.row.discount\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"align\":\"center\",\"label\":\"操作\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"disabled\":!_vm.isEdit},on:{\"click\":function($event){_vm.handleRemoveProductLadder(scope.$index, scope.row)}}},[_vm._v(\"删除\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"disabled\":!_vm.isEdit},on:{\"click\":function($event){_vm.handleAddProductLadder(scope.$index, scope.row)}}},[_vm._v(\"添加\")])]}}])})],1)],1),_vm._v(\" \"),_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value.promotionType===4),expression:\"value.promotionType===4\"}]},[_c('el-table',{staticStyle:{\"width\":\"80%\"},attrs:{\"data\":_vm.value.productFullReductionList,\"border\":\"\"}},[_c('el-table-column',{attrs:{\"label\":\"满\",\"align\":\"center\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{model:{value:(scope.row.fullPrice),callback:function ($$v) {_vm.$set(scope.row, \"fullPrice\", $$v)},expression:\"scope.row.fullPrice\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"立减\",\"align\":\"center\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{model:{value:(scope.row.reducePrice),callback:function ($$v) {_vm.$set(scope.row, \"reducePrice\", $$v)},expression:\"scope.row.reducePrice\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"align\":\"center\",\"label\":\"操作\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"disabled\":!_vm.isEdit},on:{\"click\":function($event){_vm.handleRemoveFullReduction(scope.$index, scope.row)}}},[_vm._v(\"删除\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"disabled\":!_vm.isEdit},on:{\"click\":function($event){_vm.handleAddFullReduction(scope.$index, scope.row)}}},[_vm._v(\"添加\")])]}}])})],1)],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"text-align\":\"center\"}},[_c('el-button',{attrs:{\"size\":\"medium\"},on:{\"click\":_vm.handlePrev}},[_vm._v(\"上一步,填写商品信息\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"medium\"},on:{\"click\":_vm.handleNext}},[_vm._v(\"下一步,填写商品属性\")])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6baf4303\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/pms/product/components/ProductSaleDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6baf4303\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ProductSaleDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductSaleDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductSaleDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6baf4303\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ProductSaleDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6baf4303\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/pms/product/components/ProductSaleDetail.vue\n// module id = null\n// module chunks = ","<template>\n \n <div>\n <el-upload\n :disabled=\"disabled\"\n :action=\"ossUploadUrl\"\n :data=\"useOss ? dataObj : null\"\n list-type=\"picture-card\"\n :file-list=\"fileList\"\n :before-upload=\"beforeUpload\"\n :on-remove=\"handleRemove\"\n :http-request=\"handleUploadSuccess\"\n :on-preview=\"handlePreview\"\n :limit=\"maxCount\"\n :on-exceed=\"handleExceed\"\n >\n <i class=\"el-icon-plus\"></i>\n </el-upload>\n <el-dialog :visible.sync=\"dialogVisible\">\n <img width=\"100%\" :src=\"dialogImageUrl\" alt=\"\" />\n </el-dialog>\n </div>\n</template>\n<script>\nimport { policy } from \"@/api/oss\";\nimport { getUploadSign, onOnlyFileUpload } from \"@/utils/oss-file-upload\";\nexport default {\n name: \"multiUpload\",\n props: {\n //图片属性数组\n value: Array,\n //最大上传图片数量\n maxCount: {\n type: Number,\n default: 5,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n bucket_name: {\n type: String,\n default: \"mall\",\n },\n },\n data() {\n return {\n dataObj: {\n policy: \"\",\n signature: \"\",\n key: \"\",\n KSSAccessKeyId: \"\",\n // dir: \"\",\n acl: \"public-read\",\n name: \"\",\n },\n dialogVisible: false,\n dialogImageUrl: null,\n useOss: true, //使用oss->true;使用MinIO->false\n // ossUploadUrl: \"https://ks3-cn-beijing.ksyuncs.com/\" + this.bucket_name,\n ossUploadUrl: `https://${this.bucket_name}.ks3-cn-beijing.ksyuncs.com`,\n minioUploadUrl: \"http://localhost:8080/minio/upload\",\n };\n },\n computed: {\n fileList() {\n let fileList = [];\n for (let i = 0; i < this.value.length; i++) {\n fileList.push({ url: this.value[i] });\n }\n return fileList;\n },\n },\n methods: {\n emitInput(fileList) {\n let value = [];\n for (let i = 0; i < fileList.length; i++) {\n value.push(fileList[i].url);\n }\n this.$emit(\"input\", value);\n },\n handleRemove(file, fileList) {\n this.emitInput(fileList);\n },\n handlePreview(file) {\n this.dialogVisible = true;\n this.dialogImageUrl = file.url;\n },\n beforeUpload(file) {\n let _self = this;\n if (!this.useOss) {\n //不使用oss不需要获取策略\n return true;\n }\n return new Promise((resolve, reject) => {\n // console.log(file, \"file\");\n let key = new Date().getTime() + file.name;\n let obj = {\n filename: file.name,\n bucketName: this.bucket_name,\n postData: {\n filename: file.name,\n acl: \"public-read\",\n key: key,\n },\n };\n getUploadSign(obj).then(response => {\n _self.dataObj.policy = response.data.policy;\n _self.dataObj.signature = response.data.signature;\n _self.dataObj.KSSAccessKeyId = response.data.kssAccessKeyId;\n _self.dataObj.key = key;\n _self.dataObj.name = key;\n _self.dataObj.acl = \"public-read\";\n var ks3Options = {\n KSSAccessKeyId: response.data.kssAccessKeyId,\n policy: response.data.policy,\n signature: response.data.signature,\n key: key,\n acl: \"public-read\", //此处需要与policy中的acl值保持一致,默认值:private。\n uploadDomain:\n \"https://ks3-cn-beijing.ksyuncs.com/\" + this.bucket_name, //北京region\n autoStart: true,\n };\n var pluploadOptions = {\n drop_element: document.body,\n };\n var tempUpload = new ks3FileUploader(ks3Options);\n resolve(true);\n })\n .catch((err) => {\n console.log(err);\n reject(false);\n });\n });\n },\n async handleUploadSuccess(info, file) {\n // let url = this.ossUploadUrl + \"/\" + this.dataObj.key;\n // if (!this.useOss) {\n // //不使用oss直接获取图片路径\n // url = res.data.url;\n // }\n // this.fileList.push({ name: file.name, url: url });\n // this.emitInput(this.fileList);\n try {\n const objInfo = {\n policy: info.data.policy,\n signature: info.data.signature,\n key: info.data.key,\n KSSAccessKeyId: info.data.kssAccessKeyId,\n acl: \"public-read\",\n name: info.data.key,\n file: info.file\n };\n console.log(objInfo, 'objInfo')\n const uploadUrl = await onOnlyFileUpload(this.ossUploadUrl, objInfo)\n this.fileList.push({ name: info.file.name, url: uploadUrl });\n this.emitInput(this.fileList);\n } catch (err) {\n console.log(err, 'err')\n }\n },\n handleExceed(files, fileList) {\n this.$message({\n message: \"最多只能上传\" + this.maxCount + \"张图片\",\n type: \"warning\",\n duration: 1000,\n });\n },\n },\n};\n</script>\n<style></style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Upload/multiUpload.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-upload',{attrs:{\"disabled\":_vm.disabled,\"action\":_vm.ossUploadUrl,\"data\":_vm.useOss ? _vm.dataObj : null,\"list-type\":\"picture-card\",\"file-list\":_vm.fileList,\"before-upload\":_vm.beforeUpload,\"on-remove\":_vm.handleRemove,\"http-request\":_vm.handleUploadSuccess,\"on-preview\":_vm.handlePreview,\"limit\":_vm.maxCount,\"on-exceed\":_vm.handleExceed}},[_c('i',{staticClass:\"el-icon-plus\"})]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.dialogVisible},on:{\"update:visible\":function($event){_vm.dialogVisible=$event}}},[_c('img',{attrs:{\"width\":\"100%\",\"src\":_vm.dialogImageUrl,\"alt\":\"\"}})])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-64866314\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Upload/multiUpload.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-64866314\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./multiUpload.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./multiUpload.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./multiUpload.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-64866314\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./multiUpload.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Upload/multiUpload.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"upload-container\">\n <el-button\n :disabled=\"disabled\"\n icon=\"el-icon-upload\"\n size=\"mini\"\n :style=\"{ background: color, borderColor: color }\"\n @click=\"dialogVisible = true\"\n type=\"primary\"\n >上传图片\n </el-button>\n <el-dialog append-to-body :visible.sync=\"dialogVisible\">\n <el-upload\n :disabled=\"disabled\"\n class=\"editor-slide-upload\"\n :action=\"ossUploadUrl\"\n :data=\"dataObj\"\n :multiple=\"false\"\n :file-list=\"fileList\"\n :show-file-list=\"true\"\n list-type=\"picture-card\"\n :on-remove=\"handleRemove\"\n :http-request=\"handleSuccess\"\n :before-upload=\"beforeUpload\"\n >\n <el-button size=\"small\" type=\"primary\">点击上传</el-button>\n </el-upload>\n <el-button @click=\"dialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"handleSubmit\">确 定</el-button>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport { policy } from \"@/api/oss\";\nimport { getUploadSign, onOnlyFileUpload } from \"@/utils/oss-file-upload\";\nexport default {\n name: \"editorSlideUpload\",\n props: {\n color: {\n type: String,\n default: \"#1890ff\",\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n bucket_name: {\n type: String,\n default: \"mall\",\n },\n },\n data() {\n return {\n dialogVisible: false,\n listObj: {},\n fileList: [],\n dataObj: {\n policy: \"\",\n signature: \"\",\n key: \"\",\n KSSAccessKeyId: \"\",\n // dir: \"\",\n acl: \"public-read\",\n name: \"\",\n },\n // ossUploadUrl: \"https://ks3-cn-beijing.ksyuncs.com/mall\",\n ossUploadUrl: \"https://mall.ks3-cn-beijing.ksyuncs.com\",\n };\n },\n methods: {\n checkAllSuccess() {\n return Object.keys(this.listObj).every(\n (item) => this.listObj[item].hasSuccess\n );\n },\n handleSubmit() {\n const arr = Object.keys(this.listObj).map((v) => this.listObj[v]);\n if (!this.checkAllSuccess()) {\n this.$message(\n \"请等待所有图片上传成功 或 出现了网络问题,请刷新页面重新上传!\"\n );\n return;\n }\n console.log(arr);\n this.$emit(\"successCBK\", arr);\n this.listObj = {};\n this.fileList = [];\n this.dialogVisible = false;\n },\n async handleSuccess(info, file) {\n try {\n const objInfo = {\n policy: info.data.policy,\n signature: info.data.signature,\n key: info.data.key,\n KSSAccessKeyId: info.data.kssAccessKeyId,\n acl: \"public-read\",\n name: info.data.key,\n file: info.file\n };\n // console.log(objInfo, 'objInfo')\n const uploadUrl = await onOnlyFileUpload(this.ossUploadUrl, objInfo)\n // console.log(uploadUrl, 'uploadUrl')\n this.listObj[info.file.uid].url = uploadUrl;\n this.listObj[info.file.uid].hasSuccess = true;\n } catch (err) {\n console.log(err, 'err')\n }\n // const uid = file.uid;\n\n // const objKeyArr = Object.keys(this.listObj);\n // console.log(objKeyArr, \"objKeyArr\", this.listObj);\n // for (let i = 0, len = objKeyArr.length; i < len; i++) {\n // if (this.listObj[objKeyArr[i]].uid === uid) {\n // this.listObj[objKeyArr[i]].url =\n // this.ossUploadUrl + \"/\" + this.listObj[objKeyArr[i]].key;\n // this.listObj[objKeyArr[i]].hasSuccess = true;\n // return;\n // }\n // }\n },\n handleRemove(file) {\n const uid = file.uid;\n const objKeyArr = Object.keys(this.listObj);\n for (let i = 0, len = objKeyArr.length; i < len; i++) {\n if (this.listObj[objKeyArr[i]].uid === uid) {\n delete this.listObj[objKeyArr[i]];\n return;\n }\n }\n },\n beforeUpload(file) {\n console.log(file, \"试试批量上传\");\n const _self = this;\n const fileName = file.uid;\n this.listObj[fileName] = {};\n return new Promise((resolve, reject) => {\n let key = new Date().getTime() + file.name;\n let obj = {\n filename: file.name,\n bucketName: this.bucket_name,\n postData: {\n filename: file.name,\n acl: \"public-read\",\n key: key,\n unknowValueField: [],\n },\n };\n // policy(obj)\n // .then((response) => {\n // _self.dataObj.policy = response.data.policy;\n // _self.dataObj.signature = response.data.signature;\n // _self.dataObj.KSSAccessKeyId = response.data.kssAccessKeyId;\n // _self.dataObj.key = key;\n // _self.dataObj.name = file.name;\n // _self.dataObj.acl = \"public-read\";\n // _self.listObj[fileName] = {\n // hasSuccess: false,\n // uid: file.uid,\n // width: this.width,\n // height: this.height,\n // name: file.name,\n // key: key,\n // };\n\n // resolve(true);\n // })\n // .catch((err) => {\n // console.log(err);\n // reject(false);\n // });\n getUploadSign(obj).then(response => {\n _self.dataObj.policy = response.data.policy;\n _self.dataObj.signature = response.data.signature;\n _self.dataObj.KSSAccessKeyId = response.data.kssAccessKeyId;\n _self.dataObj.key = key;\n _self.dataObj.name = key;\n _self.dataObj.acl = \"public-read\";\n _self.listObj[fileName] = {\n hasSuccess: false,\n uid: file.uid,\n width: this.width,\n height: this.height,\n name: key,\n key: key,\n };\n resolve(true);\n })\n .catch((err) => {\n console.log(err);\n reject(false);\n });\n });\n },\n },\n};\n</script>\n\n<style rel=\"stylesheet/scss\" lang=\"scss\" scoped>\n.upload-container .editor-slide-upload {\n margin-bottom: 20px;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tinymce/components/editorImage.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"upload-container\"},[_c('el-button',{style:({ background: _vm.color, borderColor: _vm.color }),attrs:{\"disabled\":_vm.disabled,\"icon\":\"el-icon-upload\",\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.dialogVisible = true}}},[_vm._v(\"上传图片\\n \")]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"append-to-body\":\"\",\"visible\":_vm.dialogVisible},on:{\"update:visible\":function($event){_vm.dialogVisible=$event}}},[_c('el-upload',{staticClass:\"editor-slide-upload\",attrs:{\"disabled\":_vm.disabled,\"action\":_vm.ossUploadUrl,\"data\":_vm.dataObj,\"multiple\":false,\"file-list\":_vm.fileList,\"show-file-list\":true,\"list-type\":\"picture-card\",\"on-remove\":_vm.handleRemove,\"http-request\":_vm.handleSuccess,\"before-upload\":_vm.beforeUpload}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"}},[_vm._v(\"点击上传\")])],1),_vm._v(\" \"),_c('el-button',{on:{\"click\":function($event){_vm.dialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.handleSubmit}},[_vm._v(\"确 定\")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5775fba0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Tinymce/components/editorImage.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5775fba0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./editorImage.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./editorImage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./editorImage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5775fba0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./editorImage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5775fba0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tinymce/components/editorImage.vue\n// module id = null\n// module chunks = ","<template>\n <div :class=\"disabled?'disable':''\">\n <div\n class=\"tinymce-container editor-container\"\n :disabled=\"disabled\"\n :contenteditable=\"disabled\"\n >\n <textarea\n class=\"tinymce-textarea\"\n :contenteditable=\"disabled\"\n :disabled=\"disabled\"\n :id=\"tinymceId\"\n ></textarea>\n <div class=\"editor-custom-btn-container\">\n <editorImage\n :disabled=\"disabled\"\n color=\"#1890ff\"\n class=\"editor-upload-btn\"\n @successCBK=\"imageSuccessCBK\"\n ></editorImage>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport editorImage from \"./components/editorImage\";\nimport \"../../../static/tinymce4.7.5/langs/zh_CN\";\n\nconst plugins = [\n `advlist anchor autolink autosave code codesample colorpicker colorpicker\n contextmenu directionality emoticons fullscreen hr image imagetools importcss insertdatetime\n legacyoutput link lists media nonbreaking noneditable pagebreak paste preview print save searchreplace\n spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount`,\n];\nconst toolbar = [\n `bold italic underline strikethrough alignleft aligncenter\n alignright outdent indent blockquote undo redo removeformat code`,\n `hr bullist numlist link image charmap\t preview anchor pagebreak\n fullscreen insertdatetime media table forecolor backcolor`,\n];\nexport default {\n name: \"tinymce\",\n components: { editorImage },\n props: {\n id: {\n type: String,\n },\n value: {\n type: String,\n default: \"\",\n },\n toolbar: {\n type: Array,\n required: false,\n default() {\n return [];\n },\n },\n menubar: {\n default: \"file edit insert view format table\",\n },\n height: {\n type: Number,\n required: false,\n default: 360,\n },\n width: {\n type: Number,\n required: false,\n default: 720,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n hasChange: false,\n hasInit: false,\n tinymceId: this.id || \"vue-tinymce-\" + +new Date(),\n };\n },\n watch: {\n value(val) {\n if (!this.hasChange && this.hasInit) {\n this.$nextTick(() =>\n window.tinymce.get(this.tinymceId).setContent(val)\n );\n }\n },\n },\n mounted() {\n this.initTinymce();\n },\n activated() {\n this.initTinymce();\n },\n deactivated() {\n this.destroyTinymce();\n },\n methods: {\n initTinymce() {\n const _this = this;\n window.tinymce.init({\n selector: `#${this.tinymceId}`,\n width: this.width,\n height: this.height,\n language: \"zh_CN\",\n body_class: \"panel-body \",\n object_resizing: false,\n toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,\n menubar: false,\n plugins: plugins,\n end_container_on_empty_block: true,\n powerpaste_word_import: \"clean\",\n code_dialog_height: 450,\n code_dialog_width: 1000,\n advlist_bullet_styles: \"square\",\n advlist_number_styles: \"default\",\n imagetools_cors_hosts: [\"www.tinymce.com\", \"codepen.io\"],\n default_link_target: \"_blank\",\n link_title: false,\n init_instance_callback: (editor) => {\n if (_this.value) {\n editor.setContent(_this.value);\n }\n _this.hasInit = true;\n editor.on(\"NodeChange Change KeyUp SetContent\", () => {\n this.hasChange = true;\n this.$emit(\"input\", editor.getContent());\n });\n },\n });\n },\n destroyTinymce() {\n if (window.tinymce.get(this.tinymceId)) {\n window.tinymce.get(this.tinymceId).destroy();\n }\n },\n setContent(value) {\n window.tinymce.get(this.tinymceId).setContent(value);\n },\n getContent() {\n window.tinymce.get(this.tinymceId).getContent();\n },\n imageSuccessCBK(arr) {\n const _this = this;\n arr.forEach((v) => {\n window.tinymce\n .get(_this.tinymceId)\n .insertContent(`<img class=\"wscnph\" src=\"${v.url}\" >`);\n });\n },\n },\n destroyed() {\n this.destroyTinymce();\n },\n};\n</script>\n\n<style scoped>\n.tinymce-container {\n position: relative;\n}\n\n.tinymce-container >>> .mce-fullscreen {\n z-index: 10000;\n}\n\n.tinymce-textarea {\n visibility: hidden;\n z-index: -1;\n}\n\n.editor-custom-btn-container {\n position: absolute;\n right: 10px;\n top: 2px;\n /*z-index: 2005;*/\n}\n\n.editor-upload-btn {\n display: inline-block;\n}\n.disable {\n pointer-events: none;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tinymce/index.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.disabled?'disable':''},[_c('div',{staticClass:\"tinymce-container editor-container\",attrs:{\"disabled\":_vm.disabled,\"contenteditable\":_vm.disabled}},[_c('textarea',{staticClass:\"tinymce-textarea\",attrs:{\"contenteditable\":_vm.disabled,\"disabled\":_vm.disabled,\"id\":_vm.tinymceId}}),_vm._v(\" \"),_c('div',{staticClass:\"editor-custom-btn-container\"},[_c('editorImage',{staticClass:\"editor-upload-btn\",attrs:{\"disabled\":_vm.disabled,\"color\":\"#1890ff\"},on:{\"successCBK\":_vm.imageSuccessCBK}})],1)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-8823119a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Tinymce/index.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-8823119a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./index.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8823119a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-8823119a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tinymce/index.vue\n// module id = null\n// module chunks = ","<template>\n <div style=\"margin-top: 50px\">\n <el-form\n :model=\"value\"\n ref=\"productAttrForm\"\n label-width=\"120px\"\n style=\"width: 720px\"\n size=\"small\"\n >\n <el-form-item label=\"属性类型:\">\n <el-select\n v-model=\"value.productAttributeCategoryId\"\n :disabled=\"!isEdit\"\n placeholder=\"请选择属性类型\"\n @change=\"handleProductAttrChange\"\n >\n <el-option\n v-for=\"item in productAttributeCategoryOptions\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item\n label=\"商品规格:\"\n :rules=\"[{ required: true, message: '请选择商品规格', trigger: 'blur' }]\"\n >\n <el-card shadow=\"never\" class=\"cardBg\">\n <div v-for=\"(productAttr, idx) in selectProductAttr\">\n {{ productAttr.name }}:\n <el-checkbox-group\n v-if=\"productAttr.handAddStatus === 0\"\n v-model=\"selectProductAttr[idx].values\"\n :disabled=\"!isEdit\"\n >\n <el-checkbox\n v-for=\"item in getInputListArr(productAttr.inputList)\"\n :label=\"item\"\n :key=\"item\"\n :disabled=\"!isEdit\"\n class=\"littleMarginLeft\"\n ></el-checkbox>\n </el-checkbox-group>\n <div v-else>\n <el-checkbox-group\n v-model=\"selectProductAttr[idx].values\"\n :disabled=\"!isEdit\"\n >\n <div\n v-for=\"(item, index) in selectProductAttr[idx].options\"\n style=\"display: inline-block\"\n class=\"littleMarginLeft\"\n >\n <el-checkbox\n :label=\"item\"\n :key=\"item\"\n :disabled=\"!isEdit\"\n ></el-checkbox>\n <el-button\n :disabled=\"!isEdit\"\n type=\"text\"\n class=\"littleMarginLeft\"\n @click=\"handleRemoveProductAttrValue(idx, index)\"\n >删除\n </el-button>\n </div>\n </el-checkbox-group>\n <el-input\n v-model=\"addProductAttrValue\"\n :disabled=\"!isEdit\"\n style=\"width: 160px; margin-left: 10px\"\n clearable\n ></el-input>\n <el-button\n :disabled=\"!isEdit\"\n class=\"littleMarginLeft\"\n @click=\"handleAddProductAttrValue(idx)\"\n >增加</el-button\n >\n </div>\n </div>\n </el-card>\n <el-table style=\"width: 100%; margin-top: 20px\" :data=\"skuStockList\" border>\n <el-table-column\n v-for=\"(item, index) in selectProductAttr\"\n :label=\"item.name\"\n :key=\"item.id\"\n align=\"center\"\n >\n <template slot-scope=\"scope\">\n {{ getProductSkuSp(scope.row, index) }}\n </template>\n </el-table-column>\n <el-table-column label=\"销售价格\" width=\"80\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.price\" :disabled=\"!isEdit\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"商品库存\" width=\"80\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.stock\" :disabled=\"!isEdit\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"库存预警值\" width=\"80\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-input v-model=\"scope.row.lowStock\" :disabled=\"!isEdit\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"SKU编号\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-input\n v-model=\"scope.row.skuCode\"\n :disabled=\"scope.row.platformLock || !isEdit\"\n ></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" width=\"80\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button\n v-if=\"!scope.row.platformLock\"\n :disabled=\"!isEdit\"\n type=\"text\"\n @click=\"handleRemoveProductSku(scope.$index, scope.row)\"\n >删除\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-button\n type=\"primary\"\n style=\"margin-top: 20px\"\n :disabled=\"!isEdit\"\n @click=\"handleRefreshProductSkuList\"\n >刷新列表\n </el-button>\n <el-button\n type=\"primary\"\n style=\"margin-top: 20px\"\n :disabled=\"!isEdit\"\n @click=\"handleSyncProductSkuPrice\"\n >同步价格\n </el-button>\n <el-button\n type=\"primary\"\n style=\"margin-top: 20px\"\n :disabled=\"!isEdit\"\n @click=\"handleSyncProductSkuStock\"\n >同步库存\n </el-button>\n </el-form-item>\n <el-form-item label=\"属性图片:\" v-if=\"hasAttrPic\">\n <el-card shadow=\"never\" class=\"cardBg\">\n <div v-for=\"(item, index) in selectProductAttrPics\">\n <span>{{ item.name }}:</span>\n <single-upload\n v-model=\"item.pic\"\n :disabled=\"!isEdit\"\n style=\"width: 300px; display: inline-block; margin-left: 10px\"\n ></single-upload>\n </div>\n </el-card>\n </el-form-item>\n <el-form-item label=\"商品参数:\">\n <el-card shadow=\"never\" class=\"cardBg\">\n <div\n v-for=\"(item, index) in selectProductParam\"\n :class=\"{ littleMarginTop: index !== 0 }\"\n >\n <div class=\"paramInputLabel\">{{ item.name }}:</div>\n <el-select\n v-if=\"item.inputType === 1\"\n :disabled=\"!isEdit\"\n class=\"paramInput\"\n v-model=\"selectProductParam[index].value\"\n >\n <el-option\n v-for=\"item in getParamInputList(item.inputList)\"\n :key=\"item\"\n :label=\"item\"\n :value=\"item\"\n >\n </el-option>\n </el-select>\n <el-input\n v-else\n class=\"paramInput\"\n :disabled=\"!isEdit\"\n v-model=\"selectProductParam[index].value\"\n ></el-input>\n </div>\n </el-card>\n </el-form-item>\n <el-form-item label=\"商品相册:\">\n <multi-upload v-model=\"selectProductPics\" :disabled=\"!isEdit\"></multi-upload>\n </el-form-item>\n <el-form-item label=\"规格参数:\">\n <el-tabs v-model=\"activeHtmlName\" type=\"card\">\n <el-tab-pane label=\"电脑端详情\" name=\"pc\">\n <tinymce\n :width=\"595\"\n :height=\"300\"\n v-model=\"value.detailHtml\"\n :disabled=\"!isEdit\"\n ></tinymce>\n </el-tab-pane>\n <el-tab-pane label=\"移动端详情\" name=\"mobile\">\n <tinymce\n :width=\"595\"\n :height=\"300\"\n v-model=\"value.detailMobileHtml\"\n :disabled=\"!isEdit\"\n ></tinymce>\n </el-tab-pane>\n </el-tabs>\n </el-form-item>\n <el-form-item style=\"text-align: center\">\n <el-button size=\"medium\" @click=\"handlePrev\">上一步,填写商品促销</el-button>\n <!-- <el-button type=\"primary\" size=\"medium\" @click=\"handleNext\"\n >下一步,选择商品关联</el-button\n > -->\n <el-button type=\"primary\" size=\"medium\" @click=\"handleFinishCommit\"\n >完成,提交商品</el-button\n >\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script>\nimport { fetchList as fetchProductAttrCateList } from \"@/api/productAttrCate\";\nimport { fetchList as fetchProductAttrList } from \"@/api/productAttr\";\nimport SingleUpload from \"@/components/Upload/singleUpload\";\nimport MultiUpload from \"@/components/Upload/multiUpload\";\nimport Tinymce from \"@/components/Tinymce\";\n\nexport default {\n name: \"ProductAttrDetail\",\n components: { SingleUpload, MultiUpload, Tinymce },\n props: {\n value: Object,\n isEdit: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n //编辑模式时是否初始化成功\n hasEditCreated: false,\n //商品属性分类下拉选项\n productAttributeCategoryOptions: [],\n //选中的商品属性\n selectProductAttr: [],\n //选中的商品参数\n selectProductParam: [],\n //选中的商品属性图片\n selectProductAttrPics: [],\n //可手动添加的商品属性\n addProductAttrValue: \"\",\n //商品富文本详情激活类型\n activeHtmlName: \"pc\",\n };\n },\n computed: {\n //是否有商品属性图片\n hasAttrPic() {\n if (this.selectProductAttrPics.length < 1) {\n return false;\n }\n return true;\n },\n //商品的编号\n productId() {\n return this.value.id;\n },\n //商品的主图和画册图片\n selectProductPics: {\n get: function () {\n let pics = [];\n if (\n this.value.pic === undefined ||\n this.value.pic == null ||\n this.value.pic === \"\"\n ) {\n return pics;\n }\n pics.push(this.value.pic);\n if (\n this.value.albumPics === undefined ||\n this.value.albumPics == null ||\n this.value.albumPics === \"\"\n ) {\n return pics;\n }\n let albumPics = this.value.albumPics.split(\",\");\n for (let i = 0; i < albumPics.length; i++) {\n pics.push(albumPics[i]);\n }\n return pics;\n },\n set: function (newValue) {\n if (newValue == null || newValue.length === 0) {\n this.value.pic = null;\n this.value.albumPics = null;\n } else {\n this.value.pic = newValue[0];\n this.value.albumPics = \"\";\n if (newValue.length > 1) {\n for (let i = 1; i < newValue.length; i++) {\n this.value.albumPics += newValue[i];\n if (i !== newValue.length - 1) {\n this.value.albumPics += \",\";\n }\n }\n }\n }\n },\n },\n skuStockList() {\n // if (this.value&&this.value.skuStockList[0]&&this.value.skuStockList[0].productId){\n // console.log('调用')\n\n // };\n\n return this.value.skuStockList;\n },\n },\n created() {},\n mounted() {\n console.log(this.value.skuStockList, \"skuStockList\");\n this.handleEditCreated();\n this.getProductAttrCateList();\n },\n watch: {\n productId: function (newValue) {\n // if (!this.isEdit) return;\n if (this.hasEditCreated) return;\n if (!newValue) return;\n this.handleEditCreated();\n },\n },\n methods: {\n handleEditCreated() {\n //根据商品属性分类id获取属性和参数\n if (this.value.productAttributeCategoryId != null) {\n this.handleProductAttrChange(this.value.productAttributeCategoryId);\n }\n this.hasEditCreated = true;\n },\n getProductAttrCateList() {\n let param = { pageNum: 1, pageSize: 100 };\n fetchProductAttrCateList(param).then((response) => {\n this.productAttributeCategoryOptions = [];\n let list = response.data.list;\n for (let i = 0; i < list.length; i++) {\n this.productAttributeCategoryOptions.push({\n label: list[i].name,\n value: list[i].id,\n });\n }\n });\n },\n getProductAttrList(type, cid) {\n console.log(\"getProductAttrList\", \"调用\");\n let param = { pageNum: 1, pageSize: 100, type: type };\n fetchProductAttrList(cid, param).then((response) => {\n let list = response.data.list;\n if (type === 0) {\n this.selectProductAttr = [];\n for (let i = 0; i < list.length; i++) {\n let options = [];\n let values = [];\n if (this.isEdit) {\n if (list[i].handAddStatus === 1) {\n //编辑状态下获取手动添加编辑属性\n options = this.getEditAttrOptions(list[i].id);\n }\n //编辑状态下获取选中属性\n values = this.getEditAttrValues(i);\n }\n this.selectProductAttr.push({\n id: list[i].id,\n name: list[i].name,\n handAddStatus: list[i].handAddStatus,\n inputList: list[i].inputList,\n values: values,\n options: options,\n });\n }\n if (this.isEdit) {\n //编辑模式下刷新商品属性图片\n console.log(\"编辑模式刷新属性\");\n this.refreshProductAttrPics();\n }\n } else {\n this.selectProductParam = [];\n for (let i = 0; i < list.length; i++) {\n let value = null;\n if (this.isEdit) {\n //编辑模式下获取参数属性\n value = this.getEditParamValue(list[i].id);\n }\n this.selectProductParam.push({\n id: list[i].id,\n name: list[i].name,\n value: value,\n inputType: list[i].inputType,\n inputList: list[i].inputList,\n });\n }\n }\n });\n },\n //获取设置的可手动添加属性值\n getEditAttrOptions(id) {\n let options = [];\n for (let i = 0; i < this.value.productAttributeValueList.length; i++) {\n let attrValue = this.value.productAttributeValueList[i];\n if (attrValue.productAttributeId === id) {\n let strArr = attrValue.value.split(\",\");\n for (let j = 0; j < strArr.length; j++) {\n options.push(strArr[j]);\n }\n break;\n }\n }\n return options;\n },\n //获取选中的属性值\n getEditAttrValues(index) {\n let values = new Set();\n if (index === 0) {\n for (let i = 0; i < this.value.skuStockList.length; i++) {\n let sku = this.value.skuStockList[i];\n let spData = JSON.parse(sku.spData);\n if (spData != null && spData.length >= 1) {\n values.add(spData[0].value);\n }\n }\n } else if (index === 1) {\n for (let i = 0; i < this.value.skuStockList.length; i++) {\n let sku = this.value.skuStockList[i];\n let spData = JSON.parse(sku.spData);\n if (spData != null && spData.length >= 2) {\n values.add(spData[1].value);\n }\n }\n } else {\n for (let i = 0; i < this.value.skuStockList.length; i++) {\n let sku = this.value.skuStockList[i];\n let spData = JSON.parse(sku.spData);\n if (spData != null && spData.length >= 3) {\n values.add(spData[2].value);\n }\n }\n }\n return Array.from(values);\n },\n //获取属性的值\n getEditParamValue(id) {\n for (let i = 0; i < this.value.productAttributeValueList.length; i++) {\n if (id === this.value.productAttributeValueList[i].productAttributeId) {\n return this.value.productAttributeValueList[i].value;\n }\n }\n },\n handleProductAttrChange(value) {\n this.getProductAttrList(0, value);\n this.getProductAttrList(1, value);\n },\n getInputListArr(inputList) {\n return inputList.split(\",\");\n },\n handleAddProductAttrValue(idx) {\n let options = this.selectProductAttr[idx].options;\n if (this.addProductAttrValue == null || this.addProductAttrValue == \"\") {\n this.$message({\n message: \"属性值不能为空\",\n type: \"warning\",\n duration: 1000,\n });\n return;\n }\n if (options.indexOf(this.addProductAttrValue) !== -1) {\n this.$message({\n message: \"属性值不能重复\",\n type: \"warning\",\n duration: 1000,\n });\n return;\n }\n this.selectProductAttr[idx].options.push(this.addProductAttrValue);\n this.addProductAttrValue = null;\n },\n handleRemoveProductAttrValue(idx, index) {\n this.selectProductAttr[idx].options.splice(index, 1);\n },\n getProductSkuSp(row, index) {\n let spData = JSON.parse(row.spData);\n if (spData != null && index < spData.length) {\n return spData[index].value;\n } else {\n return null;\n }\n },\n handleRefreshProductSkuList() {\n this.$confirm(\"刷新列表将导致sku信息重新生成,是否要刷新\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n }).then(() => {\n this.refreshProductAttrPics();\n this.refreshProductSkuList();\n });\n },\n handleSyncProductSkuPrice() {\n this.$confirm(\"将同步第一个sku的价格到所有sku,是否继续\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n }).then(() => {\n if (this.value.skuStockList !== null && this.value.skuStockList.length > 0) {\n let tempSkuList = [];\n tempSkuList = tempSkuList.concat(tempSkuList, this.value.skuStockList);\n let price = this.value.skuStockList[0].price;\n for (let i = 0; i < tempSkuList.length; i++) {\n tempSkuList[i].price = price;\n }\n this.value.skuStockList = [];\n this.value.skuStockList = this.value.skuStockList.concat(\n this.value.skuStockList,\n tempSkuList\n );\n }\n });\n },\n handleSyncProductSkuStock() {\n this.$confirm(\"将同步第一个sku的库存到所有sku,是否继续\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n }).then(() => {\n if (this.value.skuStockList !== null && this.value.skuStockList.length > 0) {\n let tempSkuList = [];\n tempSkuList = tempSkuList.concat(tempSkuList, this.value.skuStockList);\n let stock = this.value.skuStockList[0].stock;\n let lowStock = this.value.skuStockList[0].lowStock;\n for (let i = 0; i < tempSkuList.length; i++) {\n tempSkuList[i].stock = stock;\n tempSkuList[i].lowStock = lowStock;\n }\n this.value.skuStockList = [];\n this.value.skuStockList = this.value.skuStockList.concat(\n this.value.skuStockList,\n tempSkuList\n );\n }\n });\n },\n refreshProductSkuList() {\n this.value.skuStockList = [];\n let skuList = this.value.skuStockList;\n //只有一个属性时\n if (this.selectProductAttr.length === 1) {\n let attr = this.selectProductAttr[0];\n for (let i = 0; i < attr.values.length; i++) {\n skuList.push({\n spData: JSON.stringify([{ key: attr.name, value: attr.values[i] }]),\n });\n }\n } else if (this.selectProductAttr.length === 2) {\n let attr0 = this.selectProductAttr[0];\n let attr1 = this.selectProductAttr[1];\n for (let i = 0; i < attr0.values.length; i++) {\n if (attr1.values.length === 0) {\n skuList.push({\n spData: JSON.stringify([{ key: attr0.name, value: attr0.values[i] }]),\n });\n continue;\n }\n for (let j = 0; j < attr1.values.length; j++) {\n let spData = [];\n spData.push({ key: attr0.name, value: attr0.values[i] });\n spData.push({ key: attr1.name, value: attr1.values[j] });\n skuList.push({\n spData: JSON.stringify(spData),\n });\n }\n }\n } else {\n let attr0 = this.selectProductAttr[0];\n let attr1 = this.selectProductAttr[1];\n let attr2 = this.selectProductAttr[2];\n for (let i = 0; i < attr0.values.length; i++) {\n if (attr1.values.length === 0) {\n skuList.push({\n spData: JSON.stringify([{ key: attr0.name, value: attr0.values[i] }]),\n });\n continue;\n }\n for (let j = 0; j < attr1.values.length; j++) {\n if (attr2.values.length === 0) {\n let spData = [];\n spData.push({ key: attr0.name, value: attr0.values[i] });\n spData.push({ key: attr1.name, value: attr1.values[j] });\n skuList.push({\n spData: JSON.stringify(spData),\n });\n continue;\n }\n for (let k = 0; k < attr2.values.length; k++) {\n let spData = [];\n spData.push({ key: attr0.name, value: attr0.values[i] });\n spData.push({ key: attr1.name, value: attr1.values[j] });\n spData.push({ key: attr2.name, value: attr2.values[k] });\n skuList.push({\n spData: JSON.stringify(spData),\n });\n }\n }\n }\n }\n },\n refreshProductAttrPics() {\n this.selectProductAttrPics = [];\n if (this.selectProductAttr.length >= 1) {\n let values = this.selectProductAttr[0].values;\n for (let i = 0; i < values.length; i++) {\n let pic = null;\n if (this.isEdit) {\n //编辑状态下获取图片\n pic = this.getProductSkuPic(values[i]);\n }\n this.selectProductAttrPics.push({ name: values[i], pic: pic });\n }\n }\n },\n //获取商品相关属性的图片\n getProductSkuPic(name) {\n for (let i = 0; i < this.value.skuStockList.length; i++) {\n let spData = JSON.parse(this.value.skuStockList[i].spData);\n if (name === spData[0].value) {\n return this.value.skuStockList[i].pic;\n }\n }\n return null;\n },\n //合并商品属性\n mergeProductAttrValue() {\n this.value.productAttributeValueList = [];\n for (let i = 0; i < this.selectProductAttr.length; i++) {\n let attr = this.selectProductAttr[i];\n if (attr.handAddStatus === 1 && attr.options != null && attr.options.length > 0) {\n this.value.productAttributeValueList.push({\n productAttributeId: attr.id,\n value: this.getOptionStr(attr.options),\n });\n }\n }\n for (let i = 0; i < this.selectProductParam.length; i++) {\n let param = this.selectProductParam[i];\n this.value.productAttributeValueList.push({\n productAttributeId: param.id,\n value: param.value,\n });\n }\n },\n //合并商品属性图片\n mergeProductAttrPics() {\n for (let i = 0; i < this.selectProductAttrPics.length; i++) {\n for (let j = 0; j < this.value.skuStockList.length; j++) {\n let spData = JSON.parse(this.value.skuStockList[j].spData);\n if (spData[0].value === this.selectProductAttrPics[i].name) {\n this.value.skuStockList[j].pic = this.selectProductAttrPics[i].pic;\n }\n }\n }\n },\n getOptionStr(arr) {\n let str = \"\";\n for (let i = 0; i < arr.length; i++) {\n str += arr[i];\n if (i != arr.length - 1) {\n str += \",\";\n }\n }\n return str;\n },\n handleRemoveProductSku(index, row) {\n let list = this.value.skuStockList;\n if (list.length === 1) {\n list.pop();\n } else {\n list.splice(index, 1);\n }\n },\n getParamInputList(inputList) {\n return inputList.split(\",\");\n },\n handlePrev() {\n this.$emit(\"prevStep\");\n },\n handleNext() {\n if (\n !this.value.skuStockList ||\n this.value.skuStockList.length <= 0 ||\n !(this.value.skuStockList[0].price + \"\") ||\n !(this.value.skuStockList[0].stock + \"\") ||\n !(this.value.skuStockList[0].lowStock + \"\") ||\n !(this.value.skuStockList[0].skuCode + \"\")\n ) {\n this.$message.error(\"请编辑商品规格\");\n return;\n }\n let flag = false;\n const reg = /(?!(^[0.]*$))((^[1-9]\\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\\d{1,2}$))/;\n this.value.skuStockList.forEach((element) => {\n console.log(element, \"element.price\", (element.price + \"\").match(reg));\n if (!(element.price + \"\").match(reg)) {\n flag = true;\n }\n });\n if (flag) {\n this.$message.error(\"请填写正确的销售价格\");\n return;\n }\n this.mergeProductAttrValue();\n this.mergeProductAttrPics();\n this.$emit(\"nextStep\");\n },\n\n handleFinishCommit() {\n if (\n !this.value.skuStockList ||\n this.value.skuStockList.length <= 0 ||\n !(this.value.skuStockList[0].price + \"\") ||\n !(this.value.skuStockList[0].stock + \"\") ||\n !(this.value.skuStockList[0].lowStock + \"\") ||\n !(this.value.skuStockList[0].skuCode + \"\")\n ) {\n this.$message.error(\"请编辑商品规格\");\n return;\n }\n let flag = false;\n const reg = /(?!(^[0.]*$))((^[1-9]\\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\\d{1,2}$))/;\n this.value.skuStockList.forEach((element) => {\n console.log(element, \"element.price\", (element.price + \"\").match(reg));\n if (!(element.price + \"\").match(reg)) {\n flag = true;\n }\n });\n if (flag) {\n this.$message.error(\"请填写正确的销售价格\");\n return;\n }\n this.mergeProductAttrValue();\n this.mergeProductAttrPics();\n this.$emit(\"finishCommit\", this.isEdit);\n },\n },\n};\n</script>\n\n<style scoped>\n.littleMarginLeft {\n margin-left: 10px;\n}\n\n.littleMarginTop {\n margin-top: 10px;\n}\n\n.paramInput {\n width: 250px;\n}\n\n.paramInputLabel {\n display: inline-block;\n width: 100px;\n text-align: right;\n padding-right: 10px;\n}\n\n.cardBg {\n background: #f8f9fc;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/pms/product/components/ProductAttrDetail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-top\":\"50px\"}},[_c('el-form',{ref:\"productAttrForm\",staticStyle:{\"width\":\"720px\"},attrs:{\"model\":_vm.value,\"label-width\":\"120px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":\"属性类型:\"}},[_c('el-select',{attrs:{\"disabled\":!_vm.isEdit,\"placeholder\":\"请选择属性类型\"},on:{\"change\":_vm.handleProductAttrChange},model:{value:(_vm.value.productAttributeCategoryId),callback:function ($$v) {_vm.$set(_vm.value, \"productAttributeCategoryId\", $$v)},expression:\"value.productAttributeCategoryId\"}},_vm._l((_vm.productAttributeCategoryOptions),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}))],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品规格:\",\"rules\":[{ required: true, message: '请选择商品规格', trigger: 'blur' }]}},[_c('el-card',{staticClass:\"cardBg\",attrs:{\"shadow\":\"never\"}},_vm._l((_vm.selectProductAttr),function(productAttr,idx){return _c('div',[_vm._v(\"\\n \"+_vm._s(productAttr.name)+\":\\n \"),(productAttr.handAddStatus === 0)?_c('el-checkbox-group',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.selectProductAttr[idx].values),callback:function ($$v) {_vm.$set(_vm.selectProductAttr[idx], \"values\", $$v)},expression:\"selectProductAttr[idx].values\"}},_vm._l((_vm.getInputListArr(productAttr.inputList)),function(item){return _c('el-checkbox',{key:item,staticClass:\"littleMarginLeft\",attrs:{\"label\":item,\"disabled\":!_vm.isEdit}})})):_c('div',[_c('el-checkbox-group',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.selectProductAttr[idx].values),callback:function ($$v) {_vm.$set(_vm.selectProductAttr[idx], \"values\", $$v)},expression:\"selectProductAttr[idx].values\"}},_vm._l((_vm.selectProductAttr[idx].options),function(item,index){return _c('div',{staticClass:\"littleMarginLeft\",staticStyle:{\"display\":\"inline-block\"}},[_c('el-checkbox',{key:item,attrs:{\"label\":item,\"disabled\":!_vm.isEdit}}),_vm._v(\" \"),_c('el-button',{staticClass:\"littleMarginLeft\",attrs:{\"disabled\":!_vm.isEdit,\"type\":\"text\"},on:{\"click\":function($event){_vm.handleRemoveProductAttrValue(idx, index)}}},[_vm._v(\"删除\\n \")])],1)})),_vm._v(\" \"),_c('el-input',{staticStyle:{\"width\":\"160px\",\"margin-left\":\"10px\"},attrs:{\"disabled\":!_vm.isEdit,\"clearable\":\"\"},model:{value:(_vm.addProductAttrValue),callback:function ($$v) {_vm.addProductAttrValue=$$v},expression:\"addProductAttrValue\"}}),_vm._v(\" \"),_c('el-button',{staticClass:\"littleMarginLeft\",attrs:{\"disabled\":!_vm.isEdit},on:{\"click\":function($event){_vm.handleAddProductAttrValue(idx)}}},[_vm._v(\"增加\")])],1)],1)})),_vm._v(\" \"),_c('el-table',{staticStyle:{\"width\":\"100%\",\"margin-top\":\"20px\"},attrs:{\"data\":_vm.skuStockList,\"border\":\"\"}},[_vm._l((_vm.selectProductAttr),function(item,index){return _c('el-table-column',{key:item.id,attrs:{\"label\":item.name,\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.getProductSkuSp(scope.row, index))+\"\\n \")]}}])})}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"销售价格\",\"width\":\"80\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(scope.row.price),callback:function ($$v) {_vm.$set(scope.row, \"price\", $$v)},expression:\"scope.row.price\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"商品库存\",\"width\":\"80\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(scope.row.stock),callback:function ($$v) {_vm.$set(scope.row, \"stock\", $$v)},expression:\"scope.row.stock\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"库存预警值\",\"width\":\"80\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(scope.row.lowStock),callback:function ($$v) {_vm.$set(scope.row, \"lowStock\", $$v)},expression:\"scope.row.lowStock\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"SKU编号\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{attrs:{\"disabled\":scope.row.platformLock || !_vm.isEdit},model:{value:(scope.row.skuCode),callback:function ($$v) {_vm.$set(scope.row, \"skuCode\", $$v)},expression:\"scope.row.skuCode\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"width\":\"80\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(!scope.row.platformLock)?_c('el-button',{attrs:{\"disabled\":!_vm.isEdit,\"type\":\"text\"},on:{\"click\":function($event){_vm.handleRemoveProductSku(scope.$index, scope.row)}}},[_vm._v(\"删除\\n \")]):_vm._e()]}}])})],2),_vm._v(\" \"),_c('el-button',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"primary\",\"disabled\":!_vm.isEdit},on:{\"click\":_vm.handleRefreshProductSkuList}},[_vm._v(\"刷新列表\\n \")]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"primary\",\"disabled\":!_vm.isEdit},on:{\"click\":_vm.handleSyncProductSkuPrice}},[_vm._v(\"同步价格\\n \")]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"primary\",\"disabled\":!_vm.isEdit},on:{\"click\":_vm.handleSyncProductSkuStock}},[_vm._v(\"同步库存\\n \")])],1),_vm._v(\" \"),(_vm.hasAttrPic)?_c('el-form-item',{attrs:{\"label\":\"属性图片:\"}},[_c('el-card',{staticClass:\"cardBg\",attrs:{\"shadow\":\"never\"}},_vm._l((_vm.selectProductAttrPics),function(item,index){return _c('div',[_c('span',[_vm._v(_vm._s(item.name)+\":\")]),_vm._v(\" \"),_c('single-upload',{staticStyle:{\"width\":\"300px\",\"display\":\"inline-block\",\"margin-left\":\"10px\"},attrs:{\"disabled\":!_vm.isEdit},model:{value:(item.pic),callback:function ($$v) {_vm.$set(item, \"pic\", $$v)},expression:\"item.pic\"}})],1)}))],1):_vm._e(),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品参数:\"}},[_c('el-card',{staticClass:\"cardBg\",attrs:{\"shadow\":\"never\"}},_vm._l((_vm.selectProductParam),function(item,index){return _c('div',{class:{ littleMarginTop: index !== 0 }},[_c('div',{staticClass:\"paramInputLabel\"},[_vm._v(_vm._s(item.name)+\":\")]),_vm._v(\" \"),(item.inputType === 1)?_c('el-select',{staticClass:\"paramInput\",attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.selectProductParam[index].value),callback:function ($$v) {_vm.$set(_vm.selectProductParam[index], \"value\", $$v)},expression:\"selectProductParam[index].value\"}},_vm._l((_vm.getParamInputList(item.inputList)),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})})):_c('el-input',{staticClass:\"paramInput\",attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.selectProductParam[index].value),callback:function ($$v) {_vm.$set(_vm.selectProductParam[index], \"value\", $$v)},expression:\"selectProductParam[index].value\"}})],1)}))],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"商品相册:\"}},[_c('multi-upload',{attrs:{\"disabled\":!_vm.isEdit},model:{value:(_vm.selectProductPics),callback:function ($$v) {_vm.selectProductPics=$$v},expression:\"selectProductPics\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"规格参数:\"}},[_c('el-tabs',{attrs:{\"type\":\"card\"},model:{value:(_vm.activeHtmlName),callback:function ($$v) {_vm.activeHtmlName=$$v},expression:\"activeHtmlName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"电脑端详情\",\"name\":\"pc\"}},[_c('tinymce',{attrs:{\"width\":595,\"height\":300,\"disabled\":!_vm.isEdit},model:{value:(_vm.value.detailHtml),callback:function ($$v) {_vm.$set(_vm.value, \"detailHtml\", $$v)},expression:\"value.detailHtml\"}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"移动端详情\",\"name\":\"mobile\"}},[_c('tinymce',{attrs:{\"width\":595,\"height\":300,\"disabled\":!_vm.isEdit},model:{value:(_vm.value.detailMobileHtml),callback:function ($$v) {_vm.$set(_vm.value, \"detailMobileHtml\", $$v)},expression:\"value.detailMobileHtml\"}})],1)],1)],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"text-align\":\"center\"}},[_c('el-button',{attrs:{\"size\":\"medium\"},on:{\"click\":_vm.handlePrev}},[_vm._v(\"上一步,填写商品促销\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"medium\"},on:{\"click\":_vm.handleFinishCommit}},[_vm._v(\"完成,提交商品\")])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-16422e94\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/pms/product/components/ProductAttrDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-16422e94\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ProductAttrDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductAttrDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductAttrDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-16422e94\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ProductAttrDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-16422e94\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/pms/product/components/ProductAttrDetail.vue\n// module id = null\n// module chunks = ","<template>\n <div style=\"margin-top: 50px\">\n <el-form :model=\"value\"\n ref=\"productRelationForm\"\n label-width=\"120px\"\n style=\"width: 680px\"\n size=\"small\">\n <el-form-item label=\"关联专题:\">\n <el-transfer\n style=\"display: inline-block\"\n :disabled=\"!isEdit\"\n filterable\n :filter-method=\"filterMethod\"\n filter-placeholder=\"请输入专题名称\"\n v-model=\"selectSubject\"\n :titles=\"subjectTitles\"\n :data=\"subjectList\">\n </el-transfer>\n </el-form-item>\n <el-form-item label=\"关联优选:\">\n <el-transfer\n style=\"display: inline-block\"\n :disabled=\"!isEdit\"\n filterable\n :filter-method=\"filterMethod\"\n filter-placeholder=\"请输入优选名称\"\n v-model=\"selectPrefrenceArea\"\n :titles=\"prefrenceAreaTitles\"\n :data=\"prefrenceAreaList\">\n </el-transfer>\n </el-form-item>\n <el-form-item style=\"text-align: center\">\n <el-button size=\"medium\" @click=\"handlePrev\">上一步,填写商品属性</el-button>\n <el-button type=\"primary\" size=\"medium\" @click=\"handleFinishCommit\">完成,提交商品</el-button>\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script>\n import {fetchListAll as fetchSubjectList} from '@/api/subject'\n import {fetchList as fetchPrefrenceAreaList} from '@/api/prefrenceArea'\n\n export default {\n name: \"ProductRelationDetail\",\n props: {\n value: Object,\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n //所有专题列表\n subjectList: [],\n //专题左右标题\n subjectTitles: ['待选择', '已选择'],\n //所有专题列表\n prefrenceAreaList: [],\n //专题左右标题\n prefrenceAreaTitles: ['待选择', '已选择']\n };\n },\n created() {\n this.getSubjectList();\n this.getPrefrenceAreaList();\n },\n computed:{\n //选中的专题\n selectSubject:{\n get:function () {\n let subjects =[];\n if(this.value.subjectProductRelationList==null||this.value.subjectProductRelationList.length<=0){\n return subjects;\n }\n for(let i=0;i<this.value.subjectProductRelationList.length;i++){\n subjects.push(this.value.subjectProductRelationList[i].subjectId);\n }\n return subjects;\n },\n set:function (newValue) {\n this.value.subjectProductRelationList=[];\n for(let i=0;i<newValue.length;i++){\n this.value.subjectProductRelationList.push({subjectId:newValue[i]});\n }\n }\n },\n //选中的优选\n selectPrefrenceArea:{\n get:function () {\n let prefrenceAreas =[];\n if(this.value.prefrenceAreaProductRelationList==null||this.value.prefrenceAreaProductRelationList.length<=0){\n return prefrenceAreas;\n }\n for(let i=0;i<this.value.prefrenceAreaProductRelationList.length;i++){\n prefrenceAreas.push(this.value.prefrenceAreaProductRelationList[i].prefrenceAreaId);\n }\n return prefrenceAreas;\n },\n set:function (newValue) {\n this.value.prefrenceAreaProductRelationList=[];\n for(let i=0;i<newValue.length;i++){\n this.value.prefrenceAreaProductRelationList.push({prefrenceAreaId:newValue[i]});\n }\n }\n }\n },\n methods: {\n filterMethod(query, item) {\n return item.label.indexOf(query) > -1;\n },\n getSubjectList() {\n fetchSubjectList().then(response => {\n let list = response.data;\n for (let i = 0; i < list.length; i++) {\n this.subjectList.push({\n label: list[i].title,\n key: list[i].id,\n disabled:!this.isEdit\n });\n }\n });\n },\n getPrefrenceAreaList() {\n fetchPrefrenceAreaList().then(response=>{\n let list = response.data;\n for (let i = 0; i < list.length; i++) {\n this.prefrenceAreaList.push({\n label: list[i].name,\n key: list[i].id,\n disabled:!this.isEdit\n });\n }\n });\n },\n handlePrev(){\n this.$emit('prevStep')\n },\n handleFinishCommit(){\n this.$emit('finishCommit',this.isEdit);\n }\n }\n }\n</script>\n\n<style scoped>\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/pms/product/components/ProductRelationDetail.vue","import request from '@/utils/request'\nexport function fetchList() {\n return request({\n url:'/prefrenceArea/listAll',\n method:'get',\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/prefrenceArea.js","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-top\":\"50px\"}},[_c('el-form',{ref:\"productRelationForm\",staticStyle:{\"width\":\"680px\"},attrs:{\"model\":_vm.value,\"label-width\":\"120px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":\"关联专题:\"}},[_c('el-transfer',{staticStyle:{\"display\":\"inline-block\"},attrs:{\"disabled\":!_vm.isEdit,\"filterable\":\"\",\"filter-method\":_vm.filterMethod,\"filter-placeholder\":\"请输入专题名称\",\"titles\":_vm.subjectTitles,\"data\":_vm.subjectList},model:{value:(_vm.selectSubject),callback:function ($$v) {_vm.selectSubject=$$v},expression:\"selectSubject\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"关联优选:\"}},[_c('el-transfer',{staticStyle:{\"display\":\"inline-block\"},attrs:{\"disabled\":!_vm.isEdit,\"filterable\":\"\",\"filter-method\":_vm.filterMethod,\"filter-placeholder\":\"请输入优选名称\",\"titles\":_vm.prefrenceAreaTitles,\"data\":_vm.prefrenceAreaList},model:{value:(_vm.selectPrefrenceArea),callback:function ($$v) {_vm.selectPrefrenceArea=$$v},expression:\"selectPrefrenceArea\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"text-align\":\"center\"}},[_c('el-button',{attrs:{\"size\":\"medium\"},on:{\"click\":_vm.handlePrev}},[_vm._v(\"上一步,填写商品属性\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"medium\"},on:{\"click\":_vm.handleFinishCommit}},[_vm._v(\"完成,提交商品\")])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7b66fb39\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/pms/product/components/ProductRelationDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7b66fb39\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ProductRelationDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductRelationDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductRelationDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7b66fb39\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ProductRelationDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7b66fb39\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/pms/product/components/ProductRelationDetail.vue\n// module id = null\n// module chunks = ","<template>\n \n <el-card class=\"form-container\" shadow=\"never\">\n <el-steps :active=\"active\" finish-status=\"success\" align-center>\n <el-step title=\"填写商品信息\"></el-step>\n <el-step title=\"填写商品促销\"></el-step>\n <el-step title=\"填写商品属性\"></el-step>\n <!-- <el-step title=\"选择商品关联\"></el-step> -->\n </el-steps>\n <product-info-detail\n v-show=\"showStatus[0]\"\n v-model=\"productParam\"\n :is-edit=\"isEdit\"\n :is-add=\"isAdd\"\n @nextStep=\"nextStep\"\n >\n </product-info-detail>\n <product-sale-detail\n v-if=\"showStatus[1]\"\n v-model=\"productParam\"\n :is-edit=\"isEdit\"\n :is-add=\"isAdd\"\n @nextStep=\"nextStep\"\n @prevStep=\"prevStep\"\n >\n </product-sale-detail>\n <product-attr-detail\n v-if=\"showStatus[2]\"\n v-model=\"productParam\"\n :is-edit=\"isEdit\"\n :is-add=\"isAdd\"\n @nextStep=\"nextStep\"\n @prevStep=\"prevStep\"\n @finishCommit=\"finishCommit\"\n >\n </product-attr-detail>\n <!-- <product-relation-detail\n v-if=\"showStatus[3]\"\n v-model=\"productParam\"\n :is-edit=\"isEdit\"\n @prevStep=\"prevStep\"\n @finishCommit=\"finishCommit\"\n >\n </product-relation-detail> -->\n </el-card>\n</template>\n<script>\nimport ProductInfoDetail from \"./ProductInfoDetail\";\nimport ProductSaleDetail from \"./ProductSaleDetail\";\nimport ProductAttrDetail from \"./ProductAttrDetail\";\nimport ProductRelationDetail from \"./ProductRelationDetail\";\nimport { createProduct, getProduct, updateProduct } from \"@/api/product\";\n\nconst defaultProductParam = {\n albumPics: \"\",\n brandId: null,\n brandName: \"\",\n deleteStatus: 0,\n description: \"\",\n detailDesc: \"\",\n detailHtml: \"\",\n detailMobileHtml: \"\",\n detailTitle: \"\",\n feightTemplateId: 0,\n flashPromotionCount: 0,\n flashPromotionId: 0,\n flashPromotionPrice: 0,\n flashPromotionSort: 0,\n giftPoint: 0,\n giftGrowth: 0,\n keywords: \"\",\n lowStock: 0,\n name: \"\",\n newStatus: 0,\n note: \"\",\n originalPrice: 0,\n pic: \"\",\n //会员价格{memberLevelId: 0,memberPrice: 0,memberLevelName: null}\n memberPriceList: [],\n //商品满减\n productFullReductionList: [{ fullPrice: 0, reducePrice: 0 }],\n //商品阶梯价格\n productLadderList: [{ count: 0, discount: 0, price: 0 }],\n previewStatus: 0,\n price: 0,\n productAttributeCategoryId: null,\n //商品属性相关{productAttributeId: 0, value: ''}\n productAttributeValueList: [],\n //商品sku库存信息{lowStock: 0, pic: '', price: 0, sale: 0, skuCode: '', spData: '', stock: 0}\n skuStockList: [],\n //商品相关专题{subjectId: 0}\n subjectProductRelationList: [],\n //商品相关优选{prefrenceAreaId: 0}\n prefrenceAreaProductRelationList: [],\n productCategoryId: null,\n productCategoryName: \"\",\n productSn: \"\",\n promotionEndTime: \"\",\n promotionPerLimit: 0,\n promotionPrice: null,\n promotionStartTime: \"\",\n promotionType: 0,\n publishStatus: 0,\n recommandStatus: 0,\n sale: 0,\n serviceIds: \"\",\n sort: 0,\n stock: 0,\n subTitle: \"\",\n unit: \"\",\n usePointLimit: 0,\n verifyStatus: 0,\n weight: 0,\n};\nexport default {\n name: \"ProductDetail\",\n components: {\n ProductInfoDetail,\n ProductSaleDetail,\n ProductAttrDetail,\n ProductRelationDetail,\n },\n props: {\n isEdit: {\n type: Boolean,\n default: false,\n },\n isAdd: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n active: 0,\n productParam: Object.assign({}, defaultProductParam),\n showStatus: [true, false, false, false],\n };\n },\n created() {\n // if(this.isEdit){\n if (this.$route.query.id) {\n getProduct(this.$route.query.id).then((response) => {\n this.productParam = response.data;\n });\n }\n\n // }\n },\n methods: {\n hideAll() {\n for (let i = 0; i < this.showStatus.length; i++) {\n this.showStatus[i] = false;\n }\n },\n prevStep() {\n if (this.active > 0 && this.active < this.showStatus.length) {\n this.active--;\n this.hideAll();\n this.showStatus[this.active] = true;\n }\n },\n nextStep() {\n if (this.active < this.showStatus.length - 1) {\n this.active++;\n this.hideAll();\n this.showStatus[this.active] = true;\n }\n },\n finishCommit(isEdit) {\n if (this.$route.query.id && isEdit) {\n this.$confirm(\"是否要提交该产品\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n }).then(() => {\n updateProduct(this.$route.query.id, this.productParam).then((response) => {\n this.$message({\n type: \"success\",\n message: \"提交成功\",\n duration: 1000,\n });\n this.$router.back();\n });\n });\n } else if (!this.$route.query.id && isEdit) {\n this.$confirm(\"是否要提交该产品\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n }).then(() => {\n createProduct(this.productParam).then((response) => {\n this.$message({\n type: \"success\",\n message: \"提交成功\",\n duration: 1000,\n });\n this.$router.back();\n });\n });\n } else {\n this.$router.back();\n }\n },\n },\n};\n</script>\n<style>\n.form-container {\n width: 800px;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/pms/product/components/ProductDetail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:\"form-container\",attrs:{\"shadow\":\"never\"}},[_c('el-steps',{attrs:{\"active\":_vm.active,\"finish-status\":\"success\",\"align-center\":\"\"}},[_c('el-step',{attrs:{\"title\":\"填写商品信息\"}}),_vm._v(\" \"),_c('el-step',{attrs:{\"title\":\"填写商品促销\"}}),_vm._v(\" \"),_c('el-step',{attrs:{\"title\":\"填写商品属性\"}})],1),_vm._v(\" \"),_c('product-info-detail',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showStatus[0]),expression:\"showStatus[0]\"}],attrs:{\"is-edit\":_vm.isEdit,\"is-add\":_vm.isAdd},on:{\"nextStep\":_vm.nextStep},model:{value:(_vm.productParam),callback:function ($$v) {_vm.productParam=$$v},expression:\"productParam\"}}),_vm._v(\" \"),(_vm.showStatus[1])?_c('product-sale-detail',{attrs:{\"is-edit\":_vm.isEdit,\"is-add\":_vm.isAdd},on:{\"nextStep\":_vm.nextStep,\"prevStep\":_vm.prevStep},model:{value:(_vm.productParam),callback:function ($$v) {_vm.productParam=$$v},expression:\"productParam\"}}):_vm._e(),_vm._v(\" \"),(_vm.showStatus[2])?_c('product-attr-detail',{attrs:{\"is-edit\":_vm.isEdit,\"is-add\":_vm.isAdd},on:{\"nextStep\":_vm.nextStep,\"prevStep\":_vm.prevStep,\"finishCommit\":_vm.finishCommit},model:{value:(_vm.productParam),callback:function ($$v) {_vm.productParam=$$v},expression:\"productParam\"}}):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-c9923cfc\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/pms/product/components/ProductDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-c9923cfc\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ProductDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProductDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c9923cfc\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ProductDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/pms/product/components/ProductDetail.vue\n// module id = null\n// module chunks = ","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/order/list',\n method:'get',\n params:params\n })\n}\n\nexport function closeOrder(params) {\n return request({\n url:'/order/update/close',\n method:'post',\n requestType:'form',\n // params:params,\n // noCleanDeep:true,\n data:params,\n\n })\n}\n\nexport function deleteOrder(params) {\n return request({\n url:'/order/delete',\n method:'post',\n params:params\n })\n}\n\nexport function deliveryOrder(data) {\n return request({\n url:'/order/update/delivery',\n method:'post',\n data:data\n });\n}\n\nexport function getOrderDetail(id) {\n return request({\n url:'/order/'+id,\n method:'get'\n });\n}\n\nexport function updateReceiverInfo(data) {\n return request({\n url:'/order/update/receiverInfo',\n method:'post',\n data:data\n });\n}\n\nexport function updateMoneyInfo(data) {\n return request({\n url:'/order/update/moneyInfo',\n method:'post',\n data:data\n });\n}\n\nexport function updateOrderNote(params) {\n return request({\n url:'/order/update/note',\n method:'post',\n params:params\n })\n}\n\n// 获取物流信息\nexport function getSelectCourier(params) {\n return request({\n url:'/order/selectCourier',\n method:'get',\n params:params\n })\n}\n\n// 刷新物流信息\nexport function refreshCourier(params) {\n return request({\n url:'/order/refreshCourier',\n method:'get',\n params:params\n })\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/order.js","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-collection-from.js\n// module id = HpRW\n// module chunks = 0","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/productAttribute/category/list',\n method:'get',\n params:params\n })\n}\n\nexport function createProductAttrCate(data) {\n return request({\n url:'/productAttribute/category/create',\n method:'post',\n data:data,\n requestType:'form'\n })\n}\n\nexport function deleteProductAttrCate(id) {\n return request({\n url:'/productAttribute/category/delete/'+id,\n method:'get'\n })\n}\n\nexport function updateProductAttrCate(id,data) {\n return request({\n url:'/productAttribute/category/update/'+id,\n method:'post',\n data:data,\n requestType:'form'\n })\n}\nexport function fetchListWithAttr() {\n return request({\n url:'/productAttribute/category/list/withAttr',\n method:'get'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/productAttrCate.js","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_validate-collection.js\n// module id = LIJb\n// module chunks = 0","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/home/advertise/list',\n method:'get',\n params:params\n })\n}\nexport function updateStatus(id,params) {\n return request({\n url:'/home/advertise/update/status/'+id,\n method:'post',\n params:params\n })\n}\nexport function deleteHomeAdvertise(data) {\n return request({\n url:'/home/advertise/delete',\n method:'post',\n data:data,\n requestType: 'form'\n })\n}\nexport function createHomeAdvertise(data) {\n return request({\n url:'/home/advertise/create',\n method:'post',\n data:data,\n\n })\n}\nexport function getHomeAdvertise(id) {\n return request({\n url:'/home/advertise/'+id,\n method:'get',\n })\n}\n\nexport function updateHomeAdvertise(id,data) {\n return request({\n url:'/home/advertise/update/'+id,\n method:'post',\n data:data\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/homeAdvertise.js","import request from '@/utils/request'\n\nexport function listAllCate() {\n return request({\n url: '/resourceCategory/listAll',\n method: 'get'\n })\n}\n\nexport function createResourceCategory(data) {\n return request({\n url: '/resourceCategory/create',\n method: 'post',\n data: data\n })\n}\n\nexport function updateResourceCategory(id, data) {\n return request({\n url: '/resourceCategory/update/' + id,\n method: 'post',\n data: data\n })\n}\n\nexport function deleteResourceCategory(id) {\n return request({\n url: '/resourceCategory/delete/' + id,\n method: 'post'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/resourceCategory.js","import request from \"./request\";\nimport axios from \"axios\";\n// import umiRequest from \"umi-request\";\nimport COS from \"cos-js-sdk-v5\";\nexport const ossSwitch = \"tencent\"; //as 'ks3' | 'tencent'; // 上传文件服务商\nconst tencentBucket = \"daya-online-1303457149\";\n\n/**\n * 管乐团 gyt/\n * 酷乐秀 klx/\n * 课堂乐器 ktqy/\n * 管乐迷 klx/\n */\n\n// 定义一个cos 对象\n/**\n * 获取上传文件签名\n * @param params 上传对应参数\n * { filename: fileName,\n bucketName: props.bucketName,\n postData: {\n filename: fileName,\n acl: 'public-read',\n key: fileName,\n unknowValueField: []\n }}\n * @param oss 服务商 ks3 tencent\n * @returns ”{'signatur'':'',''kssAccessKeyI'':'',''policy': '' }“\n */\nexport const getUploadSign = async (params) => {\n const { bucketName, filename, postData } = params;\n const ossType = ossSwitch;\n let bucket = bucketName;\n let file = filename;\n // const key = postData.key;\n let tempPostData = {};\n if (ossType === \"tencent\") {\n bucket = tencentBucket;\n file = \"klx/\" + filename;\n\n tempPostData = {\n key: \"klx/\" + postData.key,\n };\n } else {\n tempPostData = postData;\n }\n return request.post(\"/api-admin/getUploadSign?pluginName=\" + ossType, {\n postData: tempPostData,\n pluginName: ossType,\n bucketName: bucket,\n filename: file,\n });\n};\n\n/**\n * 使用组件上传时,调用方法\n * @param param0\n */\nexport const onFileUpload = ({\n file,\n action,\n data,\n onProgress,\n onFinish,\n onError,\n}) => {\n if (ossSwitch === \"ks3\") {\n const fileParams = {\n policy: data.policy,\n signature: data.signature,\n key: data.key,\n acl: \"public-read\",\n KSSAccessKeyId: data.KSSAccessKeyId,\n name: data.name,\n };\n const formData = new FormData();\n for (const key in fileParams) {\n formData.append(key, fileParams[key]);\n }\n formData.append(\"file\", data.file);\n axios\n .post(action, formData, {\n onUploadProgress: ({ progress }) => {\n onProgress({ percent: Math.ceil((progress || 0) * 100) });\n },\n })\n .then(() => {\n file.url = action + data.key;\n onFinish();\n })\n .catch((error) => {\n onError(error);\n });\n } else {\n const cos = new COS({\n Domain: \"https://oss.dayaedu.com\",\n Protocol: \"https\",\n // getAuthorization 必选参数\n getAuthorization: async (options, callback) => {\n callback({ Authorization: data.signature });\n },\n });\n cos\n .uploadFile({\n Bucket: tencentBucket /* 填写自己的 bucket,必须字段 */,\n Region: \"ap-nanjing\" /* 存储桶所在地域,必须字段 */,\n Key: `klx/${data.name}`,\n /* 存储在桶里的对象键(例如:1.jpg,a/b/test.txt,图片.jpg)支持中文,必须字段 */\n Body: data.file.file, // 上传文件对象\n SliceSize:\n 1024 *\n 1024 *\n 500 /* 触发分块上传的阈值,超过5MB使用分块上传,小于5MB使用简单上传。可自行设置,非必须 */,\n onProgress: function (progressData) {\n onProgress({ percent: Math.ceil((progressData.percent || 0) * 100) });\n },\n })\n .then((res) => {\n // file.url = 'https://' + res.Location;\n if (res.Location && res.Location.indexOf(\"http\") >= 0) {\n file.url = res.Location;\n } else {\n file.url = \"https://\" + res.Location;\n }\n onFinish();\n })\n .catch(() => {\n onError();\n });\n }\n};\n\nexport const onOnlyFileUpload = async (action, params) => {\n if (ossSwitch === \"ks3\") {\n const fileParams = {\n policy: params.policy,\n signature: params.signature,\n key: params.key,\n acl: \"public-read\",\n KSSAccessKeyId: params.KSSAccessKeyId,\n name: params.name,\n };\n const formData = new FormData();\n for (const key in fileParams) {\n formData.append(key, fileParams[key]);\n }\n formData.append(\"file\", params.file);\n let file = \"\";\n let errorObj = null;\n await axios\n .post(action, formData, {\n // onUploadProgress: ({ progress }) => {\n // console.log(progress);\n // onProgress({ percent: Math.ceil((progress || 0) * 100) });\n // }\n })\n .then(() => {\n file = action + params.key;\n })\n .catch((error) => {\n // onError(error);\n errorObj = error;\n // throw new Error(error);\n });\n if (file) {\n return file;\n } else {\n throw new Error(errorObj);\n }\n } else {\n let file = \"\";\n let errorObj = null;\n // console.log(params, \"params\");\n const cos = new COS({\n Domain: \"https://oss.dayaedu.com\",\n // getAuthorization 必选参数\n getAuthorization: async (options, callback) => {\n callback({ Authorization: params.signature });\n },\n });\n\n await cos\n .uploadFile({\n Bucket: tencentBucket /* 填写自己的 bucket,必须字段 */,\n Region: \"ap-nanjing\" /* 存储桶所在地域,必须字段 */,\n Key: `klx/${params.name}`,\n /* 存储在桶里的对象键(例如:1.jpg,a/b/test.txt,图片.jpg)支持中文,必须字段 */\n Body: params.file, // 上传文件对象\n SliceSize:\n 1024 *\n 1024 *\n 500 /* 触发分块上传的阈值,超过5MB使用分块上传,小于5MB使用简单上传。可自行设置,非必须 */,\n // onProgress: function (progressData) {\n // onProgress({ percent: Math.ceil((progressData.percent || 0) * 100) });\n // }\n })\n .then((res) => {\n // file.url = 'https://' + res.Location;\n // file = 'https://' + res.Location;\n if (res.Location && res.Location.indexOf(\"http\") >= 0) {\n file = res.Location;\n } else {\n file = \"https://\" + res.Location;\n }\n // onFinish();\n })\n .catch((error) => {\n // console.log(error, 'error');\n // onError();\n // throw new Error(error);\n errorObj = error;\n });\n if (file) {\n return file;\n } else {\n throw new Error(errorObj);\n }\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/oss-file-upload.js","import request from '@/utils/request'\n\nexport function fetchList(params) {\n return request({\n url: '/role/list',\n method: 'get',\n params: params\n })\n}\n\nexport function createRole(data) {\n return request({\n url: '/role/create',\n method: 'post',\n data: data\n })\n}\n\nexport function updateRole(id, data) {\n return request({\n url: '/role/update/' + id,\n method: 'post',\n data: data\n })\n}\n\nexport function updateStatus(id, params) {\n return request({\n url: '/role/updateStatus/' + id,\n method: 'post',\n params: params\n })\n}\n\nexport function deleteRole(data) {\n return request({\n url:'/role/delete',\n method:'post',\n data:data,\n requestType:'form'\n })\n}\n\nexport function fetchAllRoleList() {\n return request({\n url: '/role/listAll',\n method: 'get'\n })\n}\n\nexport function listMenuByRole(roleId) {\n return request({\n url: '/role/listMenu/'+roleId,\n method: 'get'\n })\n}\n\nexport function listResourceByRole(roleId) {\n return request({\n url: '/role/listResource/'+roleId,\n method: 'get'\n })\n}\n\nexport function allocMenu(data) {\n return request({\n url: '/role/allocMenu',\n method: 'post',\n data:data,\n requestType:'form'\n })\n}\n\nexport function allocResource(data) {\n return request({\n url: '/role/allocResource',\n method: 'post',\n data:data,\n requestType:'form'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/role.js","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime.js\n// module id = SldL\n// module chunks = 0","<template>\n \n <div>\n <el-upload\n :disabled=\"disabled\"\n :action=\"ossUploadUrl\"\n :data=\"useOss ? dataObj : null\"\n list-type=\"picture\"\n :multiple=\"false\"\n :show-file-list=\"showFileList\"\n :file-list=\"fileList\"\n :before-upload=\"beforeUpload\"\n :on-remove=\"handleRemove\"\n :http-request=\"handleUploadSuccess\"\n :on-preview=\"handlePreview\"\n >\n <el-button size=\"small\" type=\"primary\">点击上传</el-button>\n <div slot=\"tip\" class=\"el-upload__tip\">\n 只能上传jpg/png文件,且不超过10MB\n </div>\n </el-upload>\n <el-dialog :visible.sync=\"dialogVisible\">\n <img width=\"100%\" :src=\"fileList[0].url\" alt=\"\" />\n </el-dialog>\n </div>\n</template>\n<script>\nimport { policy } from \"@/api/oss\";\nimport { getUploadSign, onOnlyFileUpload } from \"@/utils/oss-file-upload\";\nexport default {\n name: \"singleUpload\",\n props: {\n value: String,\n disabled: {\n type: Boolean,\n default: false,\n },\n bucket_name: {\n type: String,\n default: \"mall\",\n },\n },\n computed: {\n imageUrl() {\n return this.value;\n },\n imageName() {\n if (this.value != null && this.value !== \"\") {\n return this.value.substr(this.value.lastIndexOf(\"/\") + 1);\n } else {\n return null;\n }\n },\n fileList() {\n return [\n {\n name: this.imageName,\n url: this.imageUrl,\n },\n ];\n },\n showFileList: {\n get: function () {\n return (\n this.value !== null && this.value !== \"\" && this.value !== undefined\n );\n },\n set: function (newValue) {},\n },\n },\n data() {\n return {\n dataObj: {\n policy: \"\",\n signature: \"\",\n key: \"\",\n KSSAccessKeyId: \"\",\n // dir: \"\",\n acl: \"public-read\",\n name: \"\",\n },\n dialogVisible: false,\n useOss: true, //使用oss->true;使用MinIO->false\n // ossUploadUrl: \"https://ks3-cn-beijing.ksyuncs.com/\" + this.bucket_name,\n ossUploadUrl: `https://${this.bucket_name}.ks3-cn-beijing.ksyuncs.com`,\n minioUploadUrl: \"http://localhost:8080/minio/upload\",\n };\n },\n methods: {\n emitInput(val) {\n this.$emit(\"input\", val);\n },\n handleRemove(file, fileList) {\n this.emitInput(\"\");\n },\n handlePreview(file) {\n this.dialogVisible = true;\n },\n beforeUpload(file) {\n let _self = this;\n if (!this.useOss) {\n //不使用oss不需要获取策略\n return true;\n }\n console.log(file, \"掉用beforeUpload\");\n\n return new Promise((resolve, reject) => {\n let key = new Date().getTime() + file.name;\n // let key = `20150115/${file.name}`\n let obj = {\n filename: file.name,\n bucketName: this.bucket_name,\n postData: {\n filename: file.name,\n acl: \"public-read\",\n key: key,\n unknowValueField: [],\n },\n };\n getUploadSign(obj).then(response => {\n _self.dataObj.policy = response.data.policy;\n _self.dataObj.signature = response.data.signature;\n _self.dataObj.KSSAccessKeyId = response.data.kssAccessKeyId;\n _self.dataObj.key = key;\n _self.dataObj.name = key;\n _self.dataObj.acl = \"public-read\";\n var ks3Options = {\n KSSAccessKeyId: response.data.kssAccessKeyId,\n policy: response.data.policy,\n signature: response.data.signature,\n\n key: key,\n acl: \"public-read\", //此处需要与policy中的acl值保持一致,默认值:private。\n uploadDomain:\n \"https://ks3-cn-beijing.ksyuncs.com/\" + this.bucket_name, //北京region\n autoStart: true,\n };\n console.log(ks3Options, \"ks3Options\");\n var pluploadOptions = {\n drop_element: document.body,\n };\n var tempUpload = new ks3FileUploader(ks3Options);\n resolve(true);\n })\n .catch((err) => {\n console.log(err);\n reject(false);\n });\n });\n },\n async handleUploadSuccess(info, file) {\n // let url = this.ossUploadUrl + \"/\" + this.dataObj.key;\n // this.showFileList = true;\n // this.fileList.pop();\n // if (!this.useOss) {\n // //不使用oss直接获取图片路径\n // url = res.data.url;\n // }\n // this.fileList.push({ name: file.name, url: url });\n // this.emitInput(this.fileList[0].url);\n try {\n const objInfo = {\n policy: info.data.policy,\n signature: info.data.signature,\n key: info.data.key,\n KSSAccessKeyId: info.data.kssAccessKeyId,\n acl: \"public-read\",\n name: info.data.key,\n file: info.file\n };\n console.log(objInfo, 'objInfo')\n const uploadUrl = await onOnlyFileUpload(this.ossUploadUrl, objInfo)\n\n this.showFileList = true;\n this.fileList.pop();\n this.fileList.push({ name: info.file.name, url: uploadUrl });\n this.emitInput(uploadUrl);\n } catch (err) {\n console.log(err, 'err')\n }\n\n },\n },\n};\n</script>\n<style></style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Upload/singleUpload.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-upload',{attrs:{\"disabled\":_vm.disabled,\"action\":_vm.ossUploadUrl,\"data\":_vm.useOss ? _vm.dataObj : null,\"list-type\":\"picture\",\"multiple\":false,\"show-file-list\":_vm.showFileList,\"file-list\":_vm.fileList,\"before-upload\":_vm.beforeUpload,\"on-remove\":_vm.handleRemove,\"http-request\":_vm.handleUploadSuccess,\"on-preview\":_vm.handlePreview}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"}},[_vm._v(\"点击上传\")]),_vm._v(\" \"),_c('div',{staticClass:\"el-upload__tip\",attrs:{\"slot\":\"tip\"},slot:\"tip\"},[_vm._v(\"\\n 只能上传jpg/png文件,且不超过10MB\\n \")])],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.dialogVisible},on:{\"update:visible\":function($event){_vm.dialogVisible=$event}}},[_c('img',{attrs:{\"width\":\"100%\",\"src\":_vm.fileList[0].url,\"alt\":\"\"}})])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7ef79f26\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Upload/singleUpload.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true,\\\"publicPath\\\":\\\"../../\\\"}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7ef79f26\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./singleUpload.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./singleUpload.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./singleUpload.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7ef79f26\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./singleUpload.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Upload/singleUpload.vue\n// module id = null\n// module chunks = ","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/product/list',\n method:'get',\n params:params\n })\n}\n\nexport function fetchSimpleList(params) {\n return request({\n url:'/product/simpleList',\n method:'get',\n params:params\n })\n}\n\nexport function updateDeleteStatus(params) {\n return request({\n url:'/product/update/deleteStatus',\n method:'post',\n params:params\n })\n}\n\nexport function updateNewStatus(params) {\n return request({\n url:'/product/update/newStatus',\n method:'post',\n params:params\n })\n}\n\nexport function updateRecommendStatus(params) {\n return request({\n url:'/product/update/recommendStatus',\n method:'post',\n params:params,\n data:params,\n params\n })\n}\n\nexport function updatePublishStatus(params) {\n return request({\n url:'/product/update/publishStatus',\n method:'post',\n data:params,\n params\n })\n}\n\nexport function createProduct(data) {\n return request({\n url:'/product/create',\n method:'post',\n data:data\n })\n}\n\nexport function updateProduct(id,data) {\n return request({\n url:'/product/update/'+id,\n method:'post',\n data:data\n })\n}\n\nexport function getProduct(id) {\n return request({\n url:'/product/updateInfo/'+id,\n method:'get',\n })\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/product.js","tinymce.addI18n('zh_CN',{\n\"Cut\": \"\\u526a\\u5207\",\n\"Heading 5\": \"\\u6807\\u98985\",\n\"Header 2\": \"\\u6807\\u98982\",\n\"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\\/C\\/V keyboard shortcuts instead.\": \"\\u4f60\\u7684\\u6d4f\\u89c8\\u5668\\u4e0d\\u652f\\u6301\\u5bf9\\u526a\\u8d34\\u677f\\u7684\\u8bbf\\u95ee\\uff0c\\u8bf7\\u4f7f\\u7528Ctrl+X\\/C\\/V\\u952e\\u8fdb\\u884c\\u590d\\u5236\\u7c98\\u8d34\\u3002\",\n\"Heading 4\": \"\\u6807\\u98984\",\n\"Div\": \"Div\\u533a\\u5757\",\n\"Heading 2\": \"\\u6807\\u98982\",\n\"Paste\": \"\\u7c98\\u8d34\",\n\"Close\": \"\\u5173\\u95ed\",\n\"Font Family\": \"\\u5b57\\u4f53\",\n\"Pre\": \"\\u9884\\u683c\\u5f0f\\u6587\\u672c\",\n\"Align right\": \"\\u53f3\\u5bf9\\u9f50\",\n\"New document\": \"\\u65b0\\u6587\\u6863\",\n\"Blockquote\": \"\\u5f15\\u7528\",\n\"Numbered list\": \"\\u7f16\\u53f7\\u5217\\u8868\",\n\"Heading 1\": \"\\u6807\\u98981\",\n\"Headings\": \"\\u6807\\u9898\",\n\"Increase indent\": \"\\u589e\\u52a0\\u7f29\\u8fdb\",\n\"Formats\": \"\\u683c\\u5f0f\",\n\"Headers\": \"\\u6807\\u9898\",\n\"Select all\": \"\\u5168\\u9009\",\n\"Header 3\": \"\\u6807\\u98983\",\n\"Blocks\": \"\\u533a\\u5757\",\n\"Undo\": \"\\u64a4\\u6d88\",\n\"Strikethrough\": \"\\u5220\\u9664\\u7ebf\",\n\"Bullet list\": \"\\u9879\\u76ee\\u7b26\\u53f7\",\n\"Header 1\": \"\\u6807\\u98981\",\n\"Superscript\": \"\\u4e0a\\u6807\",\n\"Clear formatting\": \"\\u6e05\\u9664\\u683c\\u5f0f\",\n\"Font Sizes\": \"\\u5b57\\u53f7\",\n\"Subscript\": \"\\u4e0b\\u6807\",\n\"Header 6\": \"\\u6807\\u98986\",\n\"Redo\": \"\\u91cd\\u590d\",\n\"Paragraph\": \"\\u6bb5\\u843d\",\n\"Ok\": \"\\u786e\\u5b9a\",\n\"Bold\": \"\\u7c97\\u4f53\",\n\"Code\": \"\\u4ee3\\u7801\",\n\"Italic\": \"\\u659c\\u4f53\",\n\"Align center\": \"\\u5c45\\u4e2d\",\n\"Header 5\": \"\\u6807\\u98985\",\n\"Heading 6\": \"\\u6807\\u98986\",\n\"Heading 3\": \"\\u6807\\u98983\",\n\"Decrease indent\": \"\\u51cf\\u5c11\\u7f29\\u8fdb\",\n\"Header 4\": \"\\u6807\\u98984\",\n\"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.\": \"\\u5f53\\u524d\\u4e3a\\u7eaf\\u6587\\u672c\\u7c98\\u8d34\\u6a21\\u5f0f\\uff0c\\u518d\\u6b21\\u70b9\\u51fb\\u53ef\\u4ee5\\u56de\\u5230\\u666e\\u901a\\u7c98\\u8d34\\u6a21\\u5f0f\\u3002\",\n\"Underline\": \"\\u4e0b\\u5212\\u7ebf\",\n\"Cancel\": \"\\u53d6\\u6d88\",\n\"Justify\": \"\\u4e24\\u7aef\\u5bf9\\u9f50\",\n\"Inline\": \"\\u6587\\u672c\",\n\"Copy\": \"\\u590d\\u5236\",\n\"Align left\": \"\\u5de6\\u5bf9\\u9f50\",\n\"Visual aids\": \"\\u7f51\\u683c\\u7ebf\",\n\"Lower Greek\": \"\\u5c0f\\u5199\\u5e0c\\u814a\\u5b57\\u6bcd\",\n\"Square\": \"\\u65b9\\u5757\",\n\"Default\": \"\\u9ed8\\u8ba4\",\n\"Lower Alpha\": \"\\u5c0f\\u5199\\u82f1\\u6587\\u5b57\\u6bcd\",\n\"Circle\": \"\\u7a7a\\u5fc3\\u5706\",\n\"Disc\": \"\\u5b9e\\u5fc3\\u5706\",\n\"Upper Alpha\": \"\\u5927\\u5199\\u82f1\\u6587\\u5b57\\u6bcd\",\n\"Upper Roman\": \"\\u5927\\u5199\\u7f57\\u9a6c\\u5b57\\u6bcd\",\n\"Lower Roman\": \"\\u5c0f\\u5199\\u7f57\\u9a6c\\u5b57\\u6bcd\",\n\"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.\": \"\\u6807\\u8bc6\\u7b26\\u5e94\\u8be5\\u4ee5\\u5b57\\u6bcd\\u5f00\\u5934\\uff0c\\u540e\\u8ddf\\u5b57\\u6bcd\\u3001\\u6570\\u5b57\\u3001\\u7834\\u6298\\u53f7\\u3001\\u70b9\\u3001\\u5192\\u53f7\\u6216\\u4e0b\\u5212\\u7ebf\\u3002\",\n\"Name\": \"\\u540d\\u79f0\",\n\"Anchor\": \"\\u951a\\u70b9\",\n\"Id\": \"\\u6807\\u8bc6\\u7b26\",\n\"You have unsaved changes are you sure you want to navigate away?\": \"\\u4f60\\u8fd8\\u6709\\u6587\\u6863\\u5c1a\\u672a\\u4fdd\\u5b58\\uff0c\\u786e\\u5b9a\\u8981\\u79bb\\u5f00\\uff1f\",\n\"Restore last draft\": \"\\u6062\\u590d\\u4e0a\\u6b21\\u7684\\u8349\\u7a3f\",\n\"Special character\": \"\\u7279\\u6b8a\\u7b26\\u53f7\",\n\"Source code\": \"\\u6e90\\u4ee3\\u7801\",\n\"Language\": \"\\u8bed\\u8a00\",\n\"Insert\\/Edit code sample\": \"\\u63d2\\u5165\\/\\u7f16\\u8f91\\u4ee3\\u7801\\u793a\\u4f8b\",\n\"B\": \"B\",\n\"R\": \"R\",\n\"G\": \"G\",\n\"Color\": \"\\u989c\\u8272\",\n\"Right to left\": \"\\u4ece\\u53f3\\u5230\\u5de6\",\n\"Left to right\": \"\\u4ece\\u5de6\\u5230\\u53f3\",\n\"Emoticons\": \"\\u8868\\u60c5\",\n\"Robots\": \"\\u673a\\u5668\\u4eba\",\n\"Document properties\": \"\\u6587\\u6863\\u5c5e\\u6027\",\n\"Title\": \"\\u6807\\u9898\",\n\"Keywords\": \"\\u5173\\u952e\\u8bcd\",\n\"Encoding\": \"\\u7f16\\u7801\",\n\"Description\": \"\\u63cf\\u8ff0\",\n\"Author\": \"\\u4f5c\\u8005\",\n\"Fullscreen\": \"\\u5168\\u5c4f\",\n\"Horizontal line\": \"\\u6c34\\u5e73\\u5206\\u5272\\u7ebf\",\n\"Horizontal space\": \"\\u6c34\\u5e73\\u8fb9\\u8ddd\",\n\"Insert\\/edit image\": \"\\u63d2\\u5165\\/\\u7f16\\u8f91\\u56fe\\u7247\",\n\"General\": \"\\u666e\\u901a\",\n\"Advanced\": \"\\u9ad8\\u7ea7\",\n\"Source\": \"\\u5730\\u5740\",\n\"Border\": \"\\u8fb9\\u6846\",\n\"Constrain proportions\": \"\\u4fdd\\u6301\\u7eb5\\u6a2a\\u6bd4\",\n\"Vertical space\": \"\\u5782\\u76f4\\u8fb9\\u8ddd\",\n\"Image description\": \"\\u56fe\\u7247\\u63cf\\u8ff0\",\n\"Style\": \"\\u6837\\u5f0f\",\n\"Dimensions\": \"\\u5927\\u5c0f\",\n\"Insert image\": \"\\u63d2\\u5165\\u56fe\\u7247\",\n\"Image\": \"\\u56fe\\u7247\",\n\"Zoom in\": \"\\u653e\\u5927\",\n\"Contrast\": \"\\u5bf9\\u6bd4\\u5ea6\",\n\"Back\": \"\\u540e\\u9000\",\n\"Gamma\": \"\\u4f3d\\u9a6c\\u503c\",\n\"Flip horizontally\": \"\\u6c34\\u5e73\\u7ffb\\u8f6c\",\n\"Resize\": \"\\u8c03\\u6574\\u5927\\u5c0f\",\n\"Sharpen\": \"\\u9510\\u5316\",\n\"Zoom out\": \"\\u7f29\\u5c0f\",\n\"Image options\": \"\\u56fe\\u7247\\u9009\\u9879\",\n\"Apply\": \"\\u5e94\\u7528\",\n\"Brightness\": \"\\u4eae\\u5ea6\",\n\"Rotate clockwise\": \"\\u987a\\u65f6\\u9488\\u65cb\\u8f6c\",\n\"Rotate counterclockwise\": \"\\u9006\\u65f6\\u9488\\u65cb\\u8f6c\",\n\"Edit image\": \"\\u7f16\\u8f91\\u56fe\\u7247\",\n\"Color levels\": \"\\u989c\\u8272\\u5c42\\u6b21\",\n\"Crop\": \"\\u88c1\\u526a\",\n\"Orientation\": \"\\u65b9\\u5411\",\n\"Flip vertically\": \"\\u5782\\u76f4\\u7ffb\\u8f6c\",\n\"Invert\": \"\\u53cd\\u8f6c\",\n\"Date\\/time\": \"\\u65e5\\u671f\\/\\u65f6\\u95f4\",\n\"Insert date\\/time\": \"\\u63d2\\u5165\\u65e5\\u671f\\/\\u65f6\\u95f4\",\n\"Remove link\": \"\\u5220\\u9664\\u94fe\\u63a5\",\n\"Url\": \"\\u5730\\u5740\",\n\"Text to display\": \"\\u663e\\u793a\\u6587\\u5b57\",\n\"Anchors\": \"\\u951a\\u70b9\",\n\"Insert link\": \"\\u63d2\\u5165\\u94fe\\u63a5\",\n\"Link\": \"\\u94fe\\u63a5\",\n\"New window\": \"\\u5728\\u65b0\\u7a97\\u53e3\\u6253\\u5f00\",\n\"None\": \"\\u65e0\",\n\"The URL you entered seems to be an external link. Do you want to add the required http:\\/\\/ prefix?\": \"\\u4f60\\u6240\\u586b\\u5199\\u7684URL\\u5730\\u5740\\u5c5e\\u4e8e\\u5916\\u90e8\\u94fe\\u63a5\\uff0c\\u9700\\u8981\\u52a0\\u4e0ahttp:\\/\\/:\\u524d\\u7f00\\u5417\\uff1f\",\n\"Paste or type a link\": \"\\u7c98\\u8d34\\u6216\\u8f93\\u5165\\u94fe\\u63a5\",\n\"Target\": \"\\u6253\\u5f00\\u65b9\\u5f0f\",\n\"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?\": \"\\u4f60\\u6240\\u586b\\u5199\\u7684URL\\u5730\\u5740\\u4e3a\\u90ae\\u4ef6\\u5730\\u5740\\uff0c\\u9700\\u8981\\u52a0\\u4e0amailto:\\u524d\\u7f00\\u5417\\uff1f\",\n\"Insert\\/edit link\": \"\\u63d2\\u5165\\/\\u7f16\\u8f91\\u94fe\\u63a5\",\n\"Insert\\/edit video\": \"\\u63d2\\u5165\\/\\u7f16\\u8f91\\u89c6\\u9891\",\n\"Media\": \"\\u5a92\\u4f53\",\n\"Alternative source\": \"\\u955c\\u50cf\",\n\"Paste your embed code below:\": \"\\u5c06\\u5185\\u5d4c\\u4ee3\\u7801\\u7c98\\u8d34\\u5728\\u4e0b\\u9762:\",\n\"Insert video\": \"\\u63d2\\u5165\\u89c6\\u9891\",\n\"Poster\": \"\\u5c01\\u9762\",\n\"Insert\\/edit media\": \"\\u63d2\\u5165\\/\\u7f16\\u8f91\\u5a92\\u4f53\",\n\"Embed\": \"\\u5185\\u5d4c\",\n\"Nonbreaking space\": \"\\u4e0d\\u95f4\\u65ad\\u7a7a\\u683c\",\n\"Page break\": \"\\u5206\\u9875\\u7b26\",\n\"Paste as text\": \"\\u7c98\\u8d34\\u4e3a\\u6587\\u672c\",\n\"Preview\": \"\\u9884\\u89c8\",\n\"Print\": \"\\u6253\\u5370\",\n\"Save\": \"\\u4fdd\\u5b58\",\n\"Could not find the specified string.\": \"\\u672a\\u627e\\u5230\\u641c\\u7d22\\u5185\\u5bb9.\",\n\"Replace\": \"\\u66ff\\u6362\",\n\"Next\": \"\\u4e0b\\u4e00\\u4e2a\",\n\"Whole words\": \"\\u5168\\u5b57\\u5339\\u914d\",\n\"Find and replace\": \"\\u67e5\\u627e\\u548c\\u66ff\\u6362\",\n\"Replace with\": \"\\u66ff\\u6362\\u4e3a\",\n\"Find\": \"\\u67e5\\u627e\",\n\"Replace all\": \"\\u5168\\u90e8\\u66ff\\u6362\",\n\"Match case\": \"\\u533a\\u5206\\u5927\\u5c0f\\u5199\",\n\"Prev\": \"\\u4e0a\\u4e00\\u4e2a\",\n\"Spellcheck\": \"\\u62fc\\u5199\\u68c0\\u67e5\",\n\"Finish\": \"\\u5b8c\\u6210\",\n\"Ignore all\": \"\\u5168\\u90e8\\u5ffd\\u7565\",\n\"Ignore\": \"\\u5ffd\\u7565\",\n\"Add to Dictionary\": \"\\u6dfb\\u52a0\\u5230\\u5b57\\u5178\",\n\"Insert row before\": \"\\u5728\\u4e0a\\u65b9\\u63d2\\u5165\",\n\"Rows\": \"\\u884c\",\n\"Height\": \"\\u9ad8\",\n\"Paste row after\": \"\\u7c98\\u8d34\\u5230\\u4e0b\\u65b9\",\n\"Alignment\": \"\\u5bf9\\u9f50\\u65b9\\u5f0f\",\n\"Border color\": \"\\u8fb9\\u6846\\u989c\\u8272\",\n\"Column group\": \"\\u5217\\u7ec4\",\n\"Row\": \"\\u884c\",\n\"Insert column before\": \"\\u5728\\u5de6\\u4fa7\\u63d2\\u5165\",\n\"Split cell\": \"\\u62c6\\u5206\\u5355\\u5143\\u683c\",\n\"Cell padding\": \"\\u5355\\u5143\\u683c\\u5185\\u8fb9\\u8ddd\",\n\"Cell spacing\": \"\\u5355\\u5143\\u683c\\u5916\\u95f4\\u8ddd\",\n\"Row type\": \"\\u884c\\u7c7b\\u578b\",\n\"Insert table\": \"\\u63d2\\u5165\\u8868\\u683c\",\n\"Body\": \"\\u8868\\u4f53\",\n\"Caption\": \"\\u6807\\u9898\",\n\"Footer\": \"\\u8868\\u5c3e\",\n\"Delete row\": \"\\u5220\\u9664\\u884c\",\n\"Paste row before\": \"\\u7c98\\u8d34\\u5230\\u4e0a\\u65b9\",\n\"Scope\": \"\\u8303\\u56f4\",\n\"Delete table\": \"\\u5220\\u9664\\u8868\\u683c\",\n\"H Align\": \"\\u6c34\\u5e73\\u5bf9\\u9f50\",\n\"Top\": \"\\u9876\\u90e8\\u5bf9\\u9f50\",\n\"Header cell\": \"\\u8868\\u5934\\u5355\\u5143\\u683c\",\n\"Column\": \"\\u5217\",\n\"Row group\": \"\\u884c\\u7ec4\",\n\"Cell\": \"\\u5355\\u5143\\u683c\",\n\"Middle\": \"\\u5782\\u76f4\\u5c45\\u4e2d\",\n\"Cell type\": \"\\u5355\\u5143\\u683c\\u7c7b\\u578b\",\n\"Copy row\": \"\\u590d\\u5236\\u884c\",\n\"Row properties\": \"\\u884c\\u5c5e\\u6027\",\n\"Table properties\": \"\\u8868\\u683c\\u5c5e\\u6027\",\n\"Bottom\": \"\\u5e95\\u90e8\\u5bf9\\u9f50\",\n\"V Align\": \"\\u5782\\u76f4\\u5bf9\\u9f50\",\n\"Header\": \"\\u8868\\u5934\",\n\"Right\": \"\\u53f3\\u5bf9\\u9f50\",\n\"Insert column after\": \"\\u5728\\u53f3\\u4fa7\\u63d2\\u5165\",\n\"Cols\": \"\\u5217\",\n\"Insert row after\": \"\\u5728\\u4e0b\\u65b9\\u63d2\\u5165\",\n\"Width\": \"\\u5bbd\",\n\"Cell properties\": \"\\u5355\\u5143\\u683c\\u5c5e\\u6027\",\n\"Left\": \"\\u5de6\\u5bf9\\u9f50\",\n\"Cut row\": \"\\u526a\\u5207\\u884c\",\n\"Delete column\": \"\\u5220\\u9664\\u5217\",\n\"Center\": \"\\u5c45\\u4e2d\",\n\"Merge cells\": \"\\u5408\\u5e76\\u5355\\u5143\\u683c\",\n\"Insert template\": \"\\u63d2\\u5165\\u6a21\\u677f\",\n\"Templates\": \"\\u6a21\\u677f\",\n\"Background color\": \"\\u80cc\\u666f\\u8272\",\n\"Custom...\": \"\\u81ea\\u5b9a\\u4e49...\",\n\"Custom color\": \"\\u81ea\\u5b9a\\u4e49\\u989c\\u8272\",\n\"No color\": \"\\u65e0\",\n\"Text color\": \"\\u6587\\u5b57\\u989c\\u8272\",\n\"Table of Contents\": \"\\u5185\\u5bb9\\u5217\\u8868\",\n\"Show blocks\": \"\\u663e\\u793a\\u533a\\u5757\\u8fb9\\u6846\",\n\"Show invisible characters\": \"\\u663e\\u793a\\u4e0d\\u53ef\\u89c1\\u5b57\\u7b26\",\n\"Words: {0}\": \"\\u5b57\\u6570\\uff1a{0}\",\n\"Insert\": \"\\u63d2\\u5165\",\n\"File\": \"\\u6587\\u4ef6\",\n\"Edit\": \"\\u7f16\\u8f91\",\n\"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help\": \"\\u5728\\u7f16\\u8f91\\u533a\\u6309ALT-F9\\u6253\\u5f00\\u83dc\\u5355\\uff0c\\u6309ALT-F10\\u6253\\u5f00\\u5de5\\u5177\\u680f\\uff0c\\u6309ALT-0\\u67e5\\u770b\\u5e2e\\u52a9\",\n\"Tools\": \"\\u5de5\\u5177\",\n\"View\": \"\\u89c6\\u56fe\",\n\"Table\": \"\\u8868\\u683c\",\n\"Format\": \"\\u683c\\u5f0f\"\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/tinymce4.7.5/langs/zh_CN.js\n// module id = WQDg\n// module chunks = 0","module.exports = require(\"regenerator-runtime\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/regenerator/index.js\n// module id = Xxa5\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/defineProperty.js\n// module id = bOdI\n// module chunks = 0","import request from '@/utils/request'\n\nexport function fetchList(parentId, params) {\n return request({\n url: '/menu/list/' + parentId,\n method: 'get',\n params: params\n })\n}\n\nexport function deleteMenu(id) {\n return request({\n url: '/menu/delete/' + id,\n method: 'post'\n })\n}\n\nexport function createMenu(data) {\n return request({\n url: '/menu/create',\n method: 'post',\n data: data\n })\n}\n\nexport function updateMenu(id, data) {\n return request({\n url: '/menu/update/' + id,\n method: 'post',\n data: data\n })\n}\n\nexport function getMenu(id) {\n return request({\n url: '/menu/' + id,\n method: 'get',\n })\n}\n\nexport function updateHidden(id, params) {\n return request({\n url: '/menu/updateHidden/' + id,\n method: 'post',\n params: params\n })\n}\n\nexport function fetchTreeList() {\n return request({\n url: '/menu/treeList',\n method: 'get'\n })\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/menu.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = c/Tr\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/asyncToGenerator.js\n// module id = exGp\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_create-property.js\n// module id = fBQ2\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/keys.js\n// module id = fZjL\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.set.from.js\n// module id = ioQ5\n// module chunks = 0","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = jFbC\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime-module.js\n// module id = jyFz\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/set\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/set.js\n// module id = lHA8\n// module chunks = 0","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_collection-to-json.js\n// module id = m9gC\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = mClu\n// module chunks = 0","import request from '@/utils/request'\nexport function fetchList(parentId,params) {\n return request({\n url:'/productCategory/list/'+parentId,\n method:'get',\n params:params\n })\n}\nexport function deleteProductCate(id) {\n return request({\n url:'/productCategory/delete/'+id,\n method:'post'\n })\n}\n\nexport function createProductCate(data) {\n return request({\n url:'/productCategory/create',\n method:'post',\n data:data\n })\n}\n\nexport function updateProductCate(id,data) {\n return request({\n url:'/productCategory/update/'+id,\n method:'post',\n data:data\n })\n}\n\nexport function getProductCate(id) {\n return request({\n url:'/productCategory/'+id,\n method:'get',\n })\n}\n\nexport function updateShowStatus(data) {\n return request({\n url:'/productCategory/update/showStatus',\n method:'post',\n data:data,\n params:data\n })\n}\n\nexport function updateNavStatus(data) {\n return request({\n url:'/productCategory/update/navStatus',\n method:'post',\n data:data,\n params:data\n })\n}\n\nexport function fetchListWithChildren() {\n return request({\n url:'/productCategory/list/withChildren',\n method:'get'\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/productCate.js","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.set.of.js\n// module id = oNmr\n// module chunks = 0","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-species-create.js\n// module id = oeOm\n// module chunks = 0","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nrequire('../modules/es7.set.of');\nrequire('../modules/es7.set.from');\nmodule.exports = require('../modules/_core').Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/set.js\n// module id = pPW7\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_collection.js\n// module id = qo66\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.from.js\n// module id = qyJz\n// module chunks = 0","import request from '@/utils/request'\nexport function fetchList(params) {\n return request({\n url:'/brand/list',\n method:'get',\n params:params\n })\n}\nexport function createBrand(data) {\n return request({\n url:'/brand/create',\n method:'post',\n data:data\n })\n}\nexport function updateShowStatus(data) {\n return request({\n url:'/brand/update/showStatus',\n method:'post',\n data:data,\n requestType:'form'\n })\n}\n\nexport function updateFactoryStatus(data) {\n return request({\n url:'/brand/update/factoryStatus',\n method:'post',\n data:data\n })\n}\n\nexport function deleteBrand(id) {\n return request({\n url:'/brand/delete/'+id,\n method:'get',\n })\n}\n\nexport function getBrand(id) {\n return request({\n url:'/brand/'+id,\n method:'get',\n })\n}\n\nexport function updateBrand(id,data) {\n return request({\n url:'/brand/update/'+id,\n method:'post',\n data:data\n })\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/brand.js","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.set.js\n// module id = ttyz\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = uqUo\n// module chunks = 0","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"COS\"] = factory();\n\telse\n\t\troot[\"COS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \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 = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./index.js\":\n/*!******************!*\\\n !*** ./index.js ***!\n \\******************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar COS = __webpack_require__(/*! ./src/cos */ \"./src/cos.js\");\nmodule.exports = COS;\n\n/***/ }),\n\n/***/ \"./lib/base64.js\":\n/*!***********************!*\\\n !*** ./lib/base64.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\r\n * $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $\r\n *\r\n * Licensed under the BSD 3-Clause License.\r\n * http://opensource.org/licenses/BSD-3-Clause\r\n *\r\n * References:\r\n * http://en.wikipedia.org/wiki/Base64\r\n */\n\nvar Base64 = function (global) {\n global = global || {};\n 'use strict';\n // existing version for noConflict()\n var _Base64 = global.Base64;\n var version = \"2.1.9\";\n // if node.js, we use Buffer\n var buffer;\n // constants\n var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var b64tab = function (bin) {\n var t = {};\n for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n return t;\n }(b64chars);\n var fromCharCode = String.fromCharCode;\n // encoder stuff\n var cb_utob = function cb_utob(c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c : cc < 0x800 ? fromCharCode(0xc0 | cc >>> 6) + fromCharCode(0x80 | cc & 0x3f) : fromCharCode(0xe0 | cc >>> 12 & 0x0f) + fromCharCode(0x80 | cc >>> 6 & 0x3f) + fromCharCode(0x80 | cc & 0x3f);\n } else {\n var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00);\n return fromCharCode(0xf0 | cc >>> 18 & 0x07) + fromCharCode(0x80 | cc >>> 12 & 0x3f) + fromCharCode(0x80 | cc >>> 6 & 0x3f) + fromCharCode(0x80 | cc & 0x3f);\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n var utob = function utob(u) {\n return u.replace(re_utob, cb_utob);\n };\n var cb_encode = function cb_encode(ccc) {\n var padlen = [0, 2, 1][ccc.length % 3],\n ord = ccc.charCodeAt(0) << 16 | (ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8 | (ccc.length > 2 ? ccc.charCodeAt(2) : 0),\n chars = [b64chars.charAt(ord >>> 18), b64chars.charAt(ord >>> 12 & 63), padlen >= 2 ? '=' : b64chars.charAt(ord >>> 6 & 63), padlen >= 1 ? '=' : b64chars.charAt(ord & 63)];\n return chars.join('');\n };\n var btoa = global.btoa ? function (b) {\n return global.btoa(b);\n } : function (b) {\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n var _encode = buffer ? function (u) {\n return (u.constructor === buffer.constructor ? u : new buffer(u)).toString('base64');\n } : function (u) {\n return btoa(utob(u));\n };\n var encode = function encode(u, urisafe) {\n return !urisafe ? _encode(String(u)) : _encode(String(u)).replace(/[+\\/]/g, function (m0) {\n return m0 == '+' ? '-' : '_';\n }).replace(/=/g, '');\n };\n var encodeURI = function encodeURI(u) {\n return encode(u, true);\n };\n // decoder stuff\n var re_btou = new RegExp(['[\\xC0-\\xDF][\\x80-\\xBF]', '[\\xE0-\\xEF][\\x80-\\xBF]{2}', '[\\xF0-\\xF7][\\x80-\\xBF]{3}'].join('|'), 'g');\n var cb_btou = function cb_btou(cccc) {\n switch (cccc.length) {\n case 4:\n var cp = (0x07 & cccc.charCodeAt(0)) << 18 | (0x3f & cccc.charCodeAt(1)) << 12 | (0x3f & cccc.charCodeAt(2)) << 6 | 0x3f & cccc.charCodeAt(3),\n offset = cp - 0x10000;\n return fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00);\n case 3:\n return fromCharCode((0x0f & cccc.charCodeAt(0)) << 12 | (0x3f & cccc.charCodeAt(1)) << 6 | 0x3f & cccc.charCodeAt(2));\n default:\n return fromCharCode((0x1f & cccc.charCodeAt(0)) << 6 | 0x3f & cccc.charCodeAt(1));\n }\n };\n var btou = function btou(b) {\n return b.replace(re_btou, cb_btou);\n };\n var cb_decode = function cb_decode(cccc) {\n var len = cccc.length,\n padlen = len % 4,\n n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) | (len > 3 ? b64tab[cccc.charAt(3)] : 0),\n chars = [fromCharCode(n >>> 16), fromCharCode(n >>> 8 & 0xff), fromCharCode(n & 0xff)];\n chars.length -= [0, 0, 2, 1][padlen];\n return chars.join('');\n };\n var atob = global.atob ? function (a) {\n return global.atob(a);\n } : function (a) {\n return a.replace(/[\\s\\S]{1,4}/g, cb_decode);\n };\n var _decode = buffer ? function (a) {\n return (a.constructor === buffer.constructor ? a : new buffer(a, 'base64')).toString();\n } : function (a) {\n return btou(atob(a));\n };\n var decode = function decode(a) {\n return _decode(String(a).replace(/[-_]/g, function (m0) {\n return m0 == '-' ? '+' : '/';\n }).replace(/[^A-Za-z0-9\\+\\/]/g, ''));\n };\n var noConflict = function noConflict() {\n var Base64 = global.Base64;\n global.Base64 = _Base64;\n return Base64;\n };\n // export Base64\n var Base64 = {\n VERSION: version,\n atob: atob,\n btoa: btoa,\n fromBase64: decode,\n toBase64: encode,\n utob: utob,\n encode: encode,\n encodeURI: encodeURI,\n btou: btou,\n decode: decode,\n noConflict: noConflict\n };\n return Base64;\n}();\nmodule.exports = Base64;\n\n/***/ }),\n\n/***/ \"./lib/beacon.min.js\":\n/*!***************************!*\\\n !*** ./lib/beacon.min.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n!function (t, e) {\n \"object\" == ( false ? undefined : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = e() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (e),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(this, function () {\n \"use strict\";\n\n var _t = function t(e, n) {\n return _t = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (t, e) {\n t.__proto__ = e;\n } || function (t, e) {\n for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);\n }, _t(e, n);\n };\n var _e = function e() {\n return _e = Object.assign || function (t) {\n for (var e, n = 1, r = arguments.length; n < r; n++) for (var o in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n return t;\n }, _e.apply(this, arguments);\n };\n function n(t, e, n, r) {\n return new (n || (n = Promise))(function (o, i) {\n function s(t) {\n try {\n u(r.next(t));\n } catch (t) {\n i(t);\n }\n }\n function a(t) {\n try {\n u(r.throw(t));\n } catch (t) {\n i(t);\n }\n }\n function u(t) {\n var e;\n t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n(function (t) {\n t(e);\n })).then(s, a);\n }\n u((r = r.apply(t, e || [])).next());\n });\n }\n function r(t, e) {\n var n,\n r,\n o,\n i,\n s = {\n label: 0,\n sent: function sent() {\n if (1 & o[0]) throw o[1];\n return o[1];\n },\n trys: [],\n ops: []\n };\n return i = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (i[Symbol.iterator] = function () {\n return this;\n }), i;\n function a(i) {\n return function (a) {\n return function (i) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n for (; s;) try {\n if (n = 1, r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;\n switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {\n case 0:\n case 1:\n o = i;\n break;\n case 4:\n return s.label++, {\n value: i[1],\n done: !1\n };\n case 5:\n s.label++, r = i[1], i = [0];\n continue;\n case 7:\n i = s.ops.pop(), s.trys.pop();\n continue;\n default:\n if (!(o = s.trys, (o = o.length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {\n s = 0;\n continue;\n }\n if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {\n s.label = i[1];\n break;\n }\n if (6 === i[0] && s.label < o[1]) {\n s.label = o[1], o = i;\n break;\n }\n if (o && s.label < o[2]) {\n s.label = o[2], s.ops.push(i);\n break;\n }\n o[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n i = e.call(t, s);\n } catch (t) {\n i = [6, t], r = 0;\n } finally {\n n = o = 0;\n }\n if (5 & i[0]) throw i[1];\n return {\n value: i[0] ? i[1] : void 0,\n done: !0\n };\n }([i, a]);\n };\n }\n }\n var o = \"__BEACON_\",\n i = \"__BEACON_deviceId\",\n s = \"last_report_time\",\n a = \"sending_event_ids\",\n u = \"beacon_config\",\n c = \"beacon_config_request_time\",\n l = function () {\n function t() {\n var t = this;\n this.emit = function (e, n) {\n if (t) {\n var r,\n o = t.__EventsList[e];\n if (null == o ? void 0 : o.length) {\n o = o.slice();\n for (var i = 0; i < o.length; i++) {\n r = o[i];\n try {\n var s = r.callback.apply(t, [n]);\n if (1 === r.type && t.remove(e, r.callback), !1 === s) break;\n } catch (t) {\n throw t;\n }\n }\n }\n return t;\n }\n }, this.__EventsList = {};\n }\n return t.prototype.indexOf = function (t, e) {\n for (var n = 0; n < t.length; n++) if (t[n].callback === e) return n;\n return -1;\n }, t.prototype.on = function (t, e, n) {\n if (void 0 === n && (n = 0), this) {\n var r = this.__EventsList[t];\n if (r || (r = this.__EventsList[t] = []), -1 === this.indexOf(r, e)) {\n var o = {\n name: t,\n type: n || 0,\n callback: e\n };\n return r.push(o), this;\n }\n return this;\n }\n }, t.prototype.one = function (t, e) {\n this.on(t, e, 1);\n }, t.prototype.remove = function (t, e) {\n if (this) {\n var n = this.__EventsList[t];\n if (!n) return null;\n if (!e) {\n try {\n delete this.__EventsList[t];\n } catch (t) {}\n return null;\n }\n if (n.length) {\n var r = this.indexOf(n, e);\n n.splice(r, 1);\n }\n return this;\n }\n }, t;\n }();\n function p(t, e) {\n for (var n = {}, r = 0, o = Object.keys(t); r < o.length; r++) {\n var i = o[r],\n s = t[i];\n if (\"string\" == typeof s) n[h(i)] = h(s);else {\n if (e) throw new Error(\"value mast be string !!!!\");\n n[h(String(i))] = h(String(s));\n }\n }\n return n;\n }\n function h(t) {\n if (\"string\" != typeof t) return t;\n try {\n return t.replace(new RegExp(\"\\\\|\", \"g\"), \"%7C\").replace(new RegExp(\"\\\\&\", \"g\"), \"%26\").replace(new RegExp(\"\\\\=\", \"g\"), \"%3D\").replace(new RegExp(\"\\\\+\", \"g\"), \"%2B\");\n } catch (t) {\n return \"\";\n }\n }\n function f(t) {\n return String(t.A99) + String(t.A100);\n }\n var d = function d() {};\n var v = function () {\n function t(t) {\n var n = this;\n this.lifeCycle = new l(), this.uploadJobQueue = [], this.additionalParams = {}, this.delayTime = 0, this._normalLogPipeline = function (t) {\n if (!t || !t.reduce || !t.length) throw new TypeError(\"createPipeline 方法需要传入至少有一个 pipe 的数组\");\n return 1 === t.length ? function (e, n) {\n t[0](e, n || d);\n } : t.reduce(function (t, e) {\n return function (n, r) {\n return void 0 === r && (r = d), t(n, function (t) {\n return null == e ? void 0 : e(t, r);\n });\n };\n });\n }([function (t) {\n n.send({\n url: n.strategy.getUploadUrl(),\n data: t,\n method: \"post\",\n contentType: \"application/json;charset=UTF-8\"\n }, function () {\n var e = n.config.onReportSuccess;\n \"function\" == typeof e && e(JSON.stringify(t.events));\n }, function () {\n var e = n.config.onReportFail;\n \"function\" == typeof e && e(JSON.stringify(t.events));\n });\n }]), function (t, e) {\n if (!t) throw e instanceof Error ? e : new Error(e);\n }(Boolean(t.appkey), \"appkey must be initial\"), this.config = _e({}, t);\n }\n return t.prototype.onUserAction = function (t, e) {\n this.preReport(t, e, !1);\n }, t.prototype.onDirectUserAction = function (t, e) {\n this.preReport(t, e, !0);\n }, t.prototype.preReport = function (t, e, n) {\n t ? this.strategy.isEventUpOnOff() && (this.strategy.isBlackEvent(t) || this.strategy.isSampleEvent(t) || this.onReport(t, e, n)) : this.errorReport.reportError(\"602\", \" no eventCode\");\n }, t.prototype.addAdditionalParams = function (t) {\n for (var e = 0, n = Object.keys(t); e < n.length; e++) {\n var r = n[e];\n this.additionalParams[r] = t[r];\n }\n }, t.prototype.setChannelId = function (t) {\n this.commonInfo.channelID = String(t);\n }, t.prototype.setOpenId = function (t) {\n this.commonInfo.openid = String(t);\n }, t.prototype.setUnionid = function (t) {\n this.commonInfo.unid = String(t);\n }, t.prototype.getDeviceId = function () {\n return this.commonInfo.deviceId;\n }, t.prototype.getCommonInfo = function () {\n return this.commonInfo;\n }, t.prototype.removeSendingId = function (t) {\n try {\n var e = JSON.parse(this.storage.getItem(a)),\n n = e.indexOf(t);\n -1 != n && (e.splice(n, 1), this.storage.setItem(a, JSON.stringify(e)));\n } catch (t) {}\n }, t;\n }(),\n g = function () {\n function t(t, e, n, r) {\n this.requestParams = {}, this.network = r, this.requestParams.attaid = \"00400014144\", this.requestParams.token = \"6478159937\", this.requestParams.product_id = t.appkey, this.requestParams.platform = n, this.requestParams.uin = e.deviceId, this.requestParams.model = \"\", this.requestParams.os = n, this.requestParams.app_version = t.appVersion, this.requestParams.sdk_version = e.sdkVersion, this.requestParams.error_stack = \"\", this.uploadUrl = t.isOversea ? \"https://htrace.wetvinfo.com/kv\" : \"https://h.trace.qq.com/kv\";\n }\n return t.prototype.reportError = function (t, e) {\n this.requestParams._dc = Math.random(), this.requestParams.error_msg = e, this.requestParams.error_code = t, this.network.get(this.uploadUrl, {\n params: this.requestParams\n }).catch(function (t) {});\n }, t;\n }(),\n y = function () {\n function t(t, e, n, r, o) {\n this.strategy = {\n isEventUpOnOff: !0,\n httpsUploadUrl: \"https://otheve.beacon.qq.com/analytics/v2_upload\",\n requestInterval: 30,\n blacklist: [],\n samplelist: []\n }, this.realSample = {}, this.appkey = \"\", this.needQueryConfig = !0, this.appkey = e.appkey, this.storage = r, this.needQueryConfig = t;\n try {\n var i = JSON.parse(this.storage.getItem(u));\n i && this.processData(i);\n } catch (t) {}\n e.isOversea && (this.strategy.httpsUploadUrl = \"https://svibeacon.onezapp.com/analytics/v2_upload\"), !e.isOversea && this.needRequestConfig() && this.requestConfig(e.appVersion, n, o);\n }\n return t.prototype.requestConfig = function (t, e, n) {\n var r = this;\n this.storage.setItem(c, Date.now().toString()), n.post(\"https://oth.str.beacon.qq.com/trpc.beacon.configserver.BeaconConfigService/QueryConfig\", {\n platformId: \"undefined\" == typeof wx ? \"3\" : \"4\",\n mainAppKey: this.appkey,\n appVersion: t,\n sdkVersion: e.sdkVersion,\n osVersion: e.userAgent,\n model: \"\",\n packageName: \"\",\n params: {\n A3: e.deviceId\n }\n }).then(function (t) {\n if (0 == t.data.ret) try {\n var e = JSON.parse(t.data.beaconConfig);\n e && (r.processData(e), r.storage.setItem(u, t.data.beaconConfig));\n } catch (t) {} else r.processData(null), r.storage.setItem(u, \"\");\n }).catch(function (t) {});\n }, t.prototype.processData = function (t) {\n var e, n, r, o, i;\n this.strategy.isEventUpOnOff = null !== (e = null == t ? void 0 : t.isEventUpOnOff) && void 0 !== e ? e : this.strategy.isEventUpOnOff, this.strategy.httpsUploadUrl = null !== (n = null == t ? void 0 : t.httpsUploadUrl) && void 0 !== n ? n : this.strategy.httpsUploadUrl, this.strategy.requestInterval = null !== (r = null == t ? void 0 : t.requestInterval) && void 0 !== r ? r : this.strategy.requestInterval, this.strategy.blacklist = null !== (o = null == t ? void 0 : t.blacklist) && void 0 !== o ? o : this.strategy.blacklist, this.strategy.samplelist = null !== (i = null == t ? void 0 : t.samplelist) && void 0 !== i ? i : this.strategy.samplelist;\n for (var s = 0, a = this.strategy.samplelist; s < a.length; s++) {\n var u = a[s].split(\",\");\n 2 == u.length && (this.realSample[u[0]] = u[1]);\n }\n }, t.prototype.needRequestConfig = function () {\n if (!this.needQueryConfig) return !1;\n var t = Number(this.storage.getItem(c));\n return Date.now() - t > 60 * this.strategy.requestInterval * 1e3;\n }, t.prototype.getUploadUrl = function () {\n return this.strategy.httpsUploadUrl + \"?appkey=\" + this.appkey;\n }, t.prototype.isBlackEvent = function (t) {\n return -1 != this.strategy.blacklist.indexOf(t);\n }, t.prototype.isEventUpOnOff = function () {\n return this.strategy.isEventUpOnOff;\n }, t.prototype.isSampleEvent = function (t) {\n return !!Object.prototype.hasOwnProperty.call(this.realSample, t) && this.realSample[t] < Math.floor(Math.random() * Math.floor(1e4));\n }, t;\n }(),\n m = \"session_storage_key\",\n w = function () {\n function t(t, e, n) {\n this.getSessionStackDepth = 0, this.beacon = n, this.storage = t, this.duration = e, this.appkey = n.config.appkey;\n }\n return t.prototype.getSession = function () {\n this.getSessionStackDepth += 1;\n var t = this.storage.getItem(m);\n if (!t) return this.createSession();\n var e = \"\",\n n = 0;\n try {\n var r = JSON.parse(t) || {\n sessionId: void 0,\n sessionStart: void 0\n };\n if (!r.sessionId || !r.sessionStart) return this.createSession();\n var o = Number(this.storage.getItem(s));\n if (Date.now() - o > this.duration) return this.createSession();\n e = r.sessionId, n = r.sessionStart, this.getSessionStackDepth = 0;\n } catch (t) {}\n return {\n sessionId: e,\n sessionStart: n\n };\n }, t.prototype.createSession = function () {\n var t = Date.now(),\n e = {\n sessionId: this.appkey + \"_\" + t.toString(),\n sessionStart: t\n };\n this.storage.setItem(m, JSON.stringify(e)), this.storage.setItem(s, t.toString());\n var n = \"is_new_user\",\n r = this.storage.getItem(n);\n return this.getSessionStackDepth <= 1 && this.beacon.onDirectUserAction(\"rqd_applaunched\", {\n A21: r ? \"N\" : \"Y\"\n }), this.storage.setItem(n, JSON.stringify(!1)), e;\n }, t;\n }();\n function b() {\n var t = navigator.userAgent,\n e = t.indexOf(\"compatible\") > -1 && t.indexOf(\"MSIE\") > -1,\n n = t.indexOf(\"Edge\") > -1 && !e,\n r = t.indexOf(\"Trident\") > -1 && t.indexOf(\"rv:11.0\") > -1;\n if (e) {\n new RegExp(\"MSIE (\\\\d+\\\\.\\\\d+);\").test(t);\n var o = parseFloat(RegExp.$1);\n return 7 == o ? 7 : 8 == o ? 8 : 9 == o ? 9 : 10 == o ? 10 : 6;\n }\n return n ? -2 : r ? 11 : -1;\n }\n function S(t, e) {\n var n, r;\n return (n = \"https://tun-cos-1258344701.file.myqcloud.com/fp.js\", void 0 === r && (r = Date.now() + \"-\" + Math.random()), new Promise(function (t, e) {\n if (document.getElementById(r)) t(void 0);else {\n var o = document.getElementsByTagName(\"head\")[0],\n i = document.createElement(\"script\");\n i.onload = function () {\n return function () {\n i.onload = null, t(void 0);\n };\n }, i.onerror = function (t) {\n i.onerror = null, o.removeChild(i), e(t);\n }, i.src = n, i.id = r, o.appendChild(i);\n }\n })).then(function () {\n new Fingerprint().getQimei36(t, e);\n }).catch(function (t) {}), \"\";\n }\n var _I = function I() {\n return (_I = Object.assign || function (t) {\n for (var e, n = 1, r = arguments.length; n < r; n++) for (var o in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n return t;\n }).apply(this, arguments);\n };\n var E,\n k = function () {\n function t(t, e) {\n void 0 === e && (e = {}), this.reportOptions = {}, this.config = t, this.reportOptions = e;\n }\n return t.canUseDB = function () {\n return !!(null === window || void 0 === window ? void 0 : window.indexedDB);\n }, t.prototype.openDB = function () {\n var e = this;\n return new Promise(function (n, r) {\n if (!t.canUseDB()) return r({\n message: \"当前不支持 indexeddb\"\n });\n var o = e.config,\n i = o.name,\n s = o.version,\n a = o.stores,\n u = indexedDB.open(i, s);\n u.onsuccess = function () {\n e.db = u.result, n(), _I({\n result: 1,\n func: \"open\",\n params: JSON.stringify(e.config)\n }, e.reportOptions);\n }, u.onerror = function (t) {\n var n, o;\n r(t), _I({\n result: 0,\n func: \"open\",\n params: JSON.stringify(e.config),\n error_msg: null === (o = null === (n = t.target) || void 0 === n ? void 0 : n.error) || void 0 === o ? void 0 : o.message\n }, e.reportOptions);\n }, u.onupgradeneeded = function () {\n e.db = u.result;\n try {\n null == a || a.forEach(function (t) {\n e.createStore(t);\n });\n } catch (t) {\n _I({\n result: 0,\n func: \"open\",\n params: JSON.stringify(e.config),\n error_msg: t.message\n }, e.reportOptions), r(t);\n }\n };\n });\n }, t.prototype.useStore = function (t) {\n return this.storeName = t, this;\n }, t.prototype.deleteDB = function () {\n var t = this;\n return this.closeDB(), new Promise(function (e, n) {\n var r = indexedDB.deleteDatabase(t.config.name);\n r.onsuccess = function () {\n return e();\n }, r.onerror = n;\n });\n }, t.prototype.closeDB = function () {\n var t;\n null === (t = this.db) || void 0 === t || t.close(), this.db = null;\n }, t.prototype.getStoreCount = function () {\n var t = this;\n return new Promise(function (e, n) {\n var r = t.getStore(\"readonly\").count();\n r.onsuccess = function () {\n return e(r.result);\n }, r.onerror = n;\n });\n }, t.prototype.clearStore = function () {\n var t = this;\n return new Promise(function (e, n) {\n var r = t.getStore(\"readwrite\").clear();\n r.onsuccess = function () {\n return e();\n }, r.onerror = n;\n });\n }, t.prototype.add = function (t, e) {\n var n = this;\n return new Promise(function (r, o) {\n var i = n.getStore(\"readwrite\").add(t, e);\n i.onsuccess = function () {\n r(i.result);\n }, i.onerror = o;\n });\n }, t.prototype.put = function (t, e) {\n var n = this;\n return new Promise(function (r, o) {\n var i = n.getStore(\"readwrite\").put(t, e);\n i.onsuccess = function () {\n r(i.result);\n }, i.onerror = o;\n });\n }, t.prototype.getStoreAllData = function () {\n var t = this;\n return new Promise(function (e, n) {\n var r = t.getStore(\"readonly\").openCursor(),\n o = [];\n r.onsuccess = function () {\n var t;\n if (null === (t = r.result) || void 0 === t ? void 0 : t.value) {\n var n = r.result.value;\n o.push(n), r.result.continue();\n } else e(o);\n }, r.onerror = n;\n });\n }, t.prototype.getDataRangeByIndex = function (t, e, n, r, o) {\n var i = this;\n return new Promise(function (s, a) {\n var u = i.getStore().index(t),\n c = IDBKeyRange.bound(e, n, r, o),\n l = [],\n p = u.openCursor(c);\n p.onsuccess = function () {\n var t;\n (null === (t = null == p ? void 0 : p.result) || void 0 === t ? void 0 : t.value) ? (l.push(null == p ? void 0 : p.result.value), null == p || p.result.continue()) : s(l);\n }, p.onerror = a;\n });\n }, t.prototype.removeDataByIndex = function (t, e, n, r, o) {\n var i = this;\n return new Promise(function (s, a) {\n var u = i.getStore(\"readwrite\").index(t),\n c = IDBKeyRange.bound(e, n, r, o),\n l = u.openCursor(c),\n p = 0;\n l.onsuccess = function (t) {\n var e = t.target.result;\n e ? (p += 1, e.delete(), e.continue()) : s(p);\n }, l.onerror = a;\n });\n }, t.prototype.createStore = function (t) {\n var e = t.name,\n n = t.indexes,\n r = void 0 === n ? [] : n,\n o = t.options;\n if (this.db) {\n this.db.objectStoreNames.contains(e) && this.db.deleteObjectStore(e);\n var i = this.db.createObjectStore(e, o);\n r.forEach(function (t) {\n i.createIndex(t.indexName, t.keyPath, t.options);\n });\n }\n }, t.prototype.getStore = function (t) {\n var e;\n return void 0 === t && (t = \"readonly\"), null === (e = this.db) || void 0 === e ? void 0 : e.transaction(this.storeName, t).objectStore(this.storeName);\n }, t;\n }(),\n O = \"event_table_v3\",\n C = \"eventId\",\n D = function () {\n function t(t) {\n this.isReady = !1, this.taskQueue = Promise.resolve(), this.db = new k({\n name: \"Beacon_\" + t + \"_V3\",\n version: 1,\n stores: [{\n name: O,\n options: {\n keyPath: C\n },\n indexes: [{\n indexName: C,\n keyPath: C,\n options: {\n unique: !0\n }\n }]\n }]\n }), this.open();\n }\n return t.prototype.getCount = function () {\n var t = this;\n return this.readyExec(function () {\n return t.db.getStoreCount();\n });\n }, t.prototype.setItem = function (t, e) {\n var n = this;\n return this.readyExec(function () {\n return n.db.add({\n eventId: t,\n value: e\n });\n });\n }, t.prototype.getItem = function (t) {\n return n(this, void 0, void 0, function () {\n var e = this;\n return r(this, function (n) {\n return [2, this.readyExec(function () {\n return e.db.getDataRangeByIndex(C, t, t);\n })];\n });\n });\n }, t.prototype.removeItem = function (t) {\n var e = this;\n return this.readyExec(function () {\n return e.db.removeDataByIndex(C, t, t);\n });\n }, t.prototype.updateItem = function (t, e) {\n var n = this;\n return this.readyExec(function () {\n return n.db.put({\n eventId: t,\n value: e\n });\n });\n }, t.prototype.iterate = function (t) {\n var e = this;\n return this.readyExec(function () {\n return e.db.getStoreAllData().then(function (e) {\n e.forEach(function (e) {\n t(e.value);\n });\n });\n });\n }, t.prototype.open = function () {\n return n(this, void 0, void 0, function () {\n var t = this;\n return r(this, function (e) {\n switch (e.label) {\n case 0:\n return this.taskQueue = this.taskQueue.then(function () {\n return t.db.openDB();\n }), [4, this.taskQueue];\n case 1:\n return e.sent(), this.isReady = !0, this.db.useStore(O), [2];\n }\n });\n });\n }, t.prototype.readyExec = function (t) {\n return this.isReady ? t() : (this.taskQueue = this.taskQueue.then(function () {\n return t();\n }), this.taskQueue);\n }, t;\n }(),\n x = function () {\n function t(t) {\n this.keyObject = {}, this.storage = t;\n }\n return t.prototype.getCount = function () {\n return this.storage.getStoreCount();\n }, t.prototype.removeItem = function (t) {\n this.storage.removeItem(t), delete this.keyObject[t];\n }, t.prototype.setItem = function (t, e) {\n var n = JSON.stringify(e);\n this.storage.setItem(t, n), this.keyObject[t] = e;\n }, t.prototype.iterate = function (t) {\n for (var e = Object.keys(this.keyObject), n = 0; n < e.length; n++) {\n var r = this.storage.getItem(e[n]);\n t(JSON.parse(r));\n }\n }, t;\n }(),\n _ = function () {\n function t(t, e) {\n var n = this;\n this.dbEventCount = 0, b() > 0 || !window.indexedDB || /X5Lite/.test(navigator.userAgent) ? (this.store = new x(e), this.dbEventCount = this.store.getCount()) : (this.store = new D(t), this.getCount().then(function (t) {\n n.dbEventCount = t;\n }).catch(function (t) {}));\n }\n return t.prototype.getCount = function () {\n return n(this, void 0, void 0, function () {\n return r(this, function (t) {\n switch (t.label) {\n case 0:\n return t.trys.push([0, 2,, 3]), [4, this.store.getCount()];\n case 1:\n return [2, t.sent()];\n case 2:\n return t.sent(), [2, Promise.reject()];\n case 3:\n return [2];\n }\n });\n });\n }, t.prototype.insertEvent = function (t, e) {\n return n(this, void 0, void 0, function () {\n var n, o;\n return r(this, function (r) {\n switch (r.label) {\n case 0:\n if (this.dbEventCount >= 1e4) return [2, Promise.reject()];\n n = f(t.mapValue), r.label = 1;\n case 1:\n return r.trys.push([1, 3,, 4]), this.dbEventCount++, [4, this.store.setItem(n, t)];\n case 2:\n return [2, r.sent()];\n case 3:\n return o = r.sent(), e && e(o, t), this.dbEventCount--, [2, Promise.reject()];\n case 4:\n return [2];\n }\n });\n });\n }, t.prototype.getEvents = function () {\n return n(this, void 0, void 0, function () {\n var t;\n return r(this, function (e) {\n switch (e.label) {\n case 0:\n t = [], e.label = 1;\n case 1:\n return e.trys.push([1, 3,, 4]), [4, this.store.iterate(function (e) {\n t.push(e);\n })];\n case 2:\n return e.sent(), [2, Promise.all(t)];\n case 3:\n return e.sent(), [2, Promise.all(t)];\n case 4:\n return [2];\n }\n });\n });\n }, t.prototype.removeEvent = function (t) {\n return n(this, void 0, void 0, function () {\n var e;\n return r(this, function (n) {\n switch (n.label) {\n case 0:\n e = f(t.mapValue), n.label = 1;\n case 1:\n return n.trys.push([1, 3,, 4]), this.dbEventCount--, [4, this.store.removeItem(e)];\n case 2:\n return [2, n.sent()];\n case 3:\n return n.sent(), this.dbEventCount++, [2, Promise.reject()];\n case 4:\n return [2];\n }\n });\n });\n }, t;\n }(),\n _P = function P() {\n return (_P = Object.assign || function (t) {\n for (var e, n = 1, r = arguments.length; n < r; n++) for (var o in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n return t;\n }).apply(this, arguments);\n };\n function T(t) {\n try {\n return decodeURIComponent(t.replace(/\\+/g, \" \"));\n } catch (t) {\n return null;\n }\n }\n function U(t, e) {\n var n = [null, void 0, \"\", NaN].includes(t);\n if (e.isSkipEmpty && n) return null;\n var r = !e.isSkipEmpty && n ? \"\" : t;\n try {\n return e.encode ? encodeURIComponent(r) : r;\n } catch (t) {\n return null;\n }\n }\n function N(t, e) {\n void 0 === e && (e = {\n encode: !0,\n isSkipEmpty: !1\n });\n var n = t.url,\n r = t.query,\n o = void 0 === r ? {} : r,\n i = t.hash,\n s = n.split(\"#\"),\n a = s[0],\n u = s[1],\n c = void 0 === u ? \"\" : u,\n l = a.split(\"?\")[0],\n p = [],\n h = U(i || c, e),\n f = _P(_P({}, function (t) {\n var e = t.split(\"#\"),\n n = e[0],\n r = e[1],\n o = void 0 === r ? \"\" : r,\n i = n.split(\"?\"),\n s = i[0],\n a = i[1],\n u = void 0 === a ? \"\" : a,\n c = T(o),\n l = Object.create(null);\n return u.split(\"&\").forEach(function (t) {\n var e = t.split(\"=\"),\n n = e[0],\n r = e[1],\n o = void 0 === r ? \"\" : r,\n i = T(n),\n s = T(o);\n null === i || null === s || \"\" === i && \"\" === s || l[i] || (l[i] = s);\n }), {\n url: s,\n query: l,\n hash: c\n };\n }(n).query), o);\n return Object.keys(f).forEach(function (t) {\n var n = U(t, e),\n r = U(f[t], e);\n null !== n && null !== r && p.push(n + \"=\" + r);\n }), l + (p.length ? \"?\" + p.join(\"&\") : \"\") + (h ? \"#\" + h : \"\");\n }\n function j(t, e) {\n return new Promise(function (n, r) {\n if (e && document.querySelectorAll(\"script[data-tag=\" + e + \"]\").length) return n();\n var o = document.createElement(\"script\"),\n i = _P({\n type: \"text/javascript\",\n charset: \"utf-8\"\n }, t);\n Object.keys(i).forEach(function (t) {\n return function (t, e, n) {\n if (t) return void 0 === n ? t.getAttribute(e) : t.setAttribute(e, n);\n }(o, t, i[t]);\n }), e && (o.dataset.tag = e), o.onload = function () {\n return n();\n }, o.onreadystatechange = function () {\n var t = o.readyState;\n [\"complete\", \"loaded\"].includes(t) && (o.onreadystatechange = null, n());\n }, o.onerror = r, document.body.appendChild(o);\n });\n }\n !function (t) {\n t[t.equal = 0] = \"equal\", t[t.low = -1] = \"low\", t[t.high = 1] = \"high\";\n }(E || (E = {}));\n var _q = function q() {\n return (_q = Object.assign || function (t) {\n for (var e, n = 1, r = arguments.length; n < r; n++) for (var o in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, o) && (t[o] = e[o]);\n return t;\n }).apply(this, arguments);\n };\n function A(t, e, n, r) {\n return new (n || (n = Promise))(function (o, i) {\n function s(t) {\n try {\n u(r.next(t));\n } catch (t) {\n i(t);\n }\n }\n function a(t) {\n try {\n u(r.throw(t));\n } catch (t) {\n i(t);\n }\n }\n function u(t) {\n var e;\n t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n(function (t) {\n t(e);\n })).then(s, a);\n }\n u((r = r.apply(t, e || [])).next());\n });\n }\n function R(t, e) {\n var n,\n r,\n o,\n i,\n s = {\n label: 0,\n sent: function sent() {\n if (1 & o[0]) throw o[1];\n return o[1];\n },\n trys: [],\n ops: []\n };\n return i = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (i[Symbol.iterator] = function () {\n return this;\n }), i;\n function a(i) {\n return function (a) {\n return function (i) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n for (; s;) try {\n if (n = 1, r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;\n switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {\n case 0:\n case 1:\n o = i;\n break;\n case 4:\n return s.label++, {\n value: i[1],\n done: !1\n };\n case 5:\n s.label++, r = i[1], i = [0];\n continue;\n case 7:\n i = s.ops.pop(), s.trys.pop();\n continue;\n default:\n if (!((o = (o = s.trys).length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {\n s = 0;\n continue;\n }\n if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {\n s.label = i[1];\n break;\n }\n if (6 === i[0] && s.label < o[1]) {\n s.label = o[1], o = i;\n break;\n }\n if (o && s.label < o[2]) {\n s.label = o[2], s.ops.push(i);\n break;\n }\n o[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n i = e.call(t, s);\n } catch (t) {\n i = [6, t], r = 0;\n } finally {\n n = o = 0;\n }\n if (5 & i[0]) throw i[1];\n return {\n value: i[0] ? i[1] : void 0,\n done: !0\n };\n }([i, a]);\n };\n }\n }\n var B = function () {\n function t() {\n this.interceptors = [];\n }\n return t.prototype.use = function (t, e) {\n return this.interceptors.push({\n resolved: t,\n rejected: e\n }), this.interceptors.length - 1;\n }, t.prototype.traverse = function (t, e) {\n void 0 === e && (e = !1);\n var n = Promise.resolve(t);\n return (e ? Array.prototype.reduceRight : Array.prototype.reduce).call(this.interceptors, function (t, e) {\n if (e) {\n var r = e.resolved,\n o = e.rejected;\n n = n.then(r, o);\n }\n return t;\n }, \"\"), n;\n }, t.prototype.eject = function (t) {\n this.interceptors[t] && (this.interceptors[t] = null);\n }, t;\n }(),\n J = {\n defaults: {\n timeout: 0,\n method: \"GET\",\n mode: \"cors\",\n redirect: \"follow\",\n credentials: \"same-origin\"\n },\n headers: {\n common: {\n Accept: \"application/json, text/plain, */*\"\n },\n POST: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n PUT: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n PATCH: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n }\n },\n baseURL: \"\",\n polyfillUrl: \"https://vm.gtimg.cn/comps/script/fetch.min.js\",\n interceptors: {\n request: new B(),\n response: new B()\n }\n },\n V = /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i,\n Q = Object.prototype.toString;\n function L(t) {\n return A(this, void 0, void 0, function () {\n var e;\n return R(this, function (n) {\n switch (n.label) {\n case 0:\n if (window.fetch) return [2];\n n.label = 1;\n case 1:\n return n.trys.push([1, 3,, 4]), [4, j({\n src: t\n })];\n case 2:\n return n.sent(), [3, 4];\n case 3:\n throw e = n.sent(), new Error(\"加载 polyfill \" + t + \" 失败: \" + e.message);\n case 4:\n return [2];\n }\n });\n });\n }\n function M(t) {\n return [\"Accept\", \"Content-Type\"].forEach(function (e) {\n return n = e, void ((r = t.headers) && Object.keys(r).forEach(function (t) {\n t !== n && t.toUpperCase() === n.toUpperCase() && (r[n] = r[t], delete r[t]);\n }));\n var n, r;\n }), function (t) {\n if (\"[object Object]\" !== Q.call(t)) return !1;\n var e = Object.getPrototypeOf(t);\n return null === e || e === Object.prototype;\n }(t.body) && (t.body = JSON.stringify(t.body), t.headers && (t.headers[\"Content-Type\"] = \"application/json;charset=utf-8\")), t;\n }\n function K(t) {\n return A(this, void 0, void 0, function () {\n var e, n, r, o, i, s, a, u, c, l, p, h, f, d, v, g, y;\n return R(this, function (m) {\n switch (m.label) {\n case 0:\n return e = J.baseURL, n = J.defaults, r = J.interceptors, [4, L(J.polyfillUrl)];\n case 1:\n return m.sent(), (o = _q(_q({}, n), t)).headers || (o.headers = function (t) {\n void 0 === t && (t = \"GET\");\n var e = J.headers[t] || {};\n return _q(_q({}, J.headers.common), e);\n }(o.method)), M(o), [4, r.request.traverse(o, !0)];\n case 2:\n if ((i = m.sent()) instanceof Error) throw i;\n return i.url = function (t, e) {\n return !t || V.test(e) ? e : t.replace(/\\/+$/, \"\") + \"/\" + e.replace(/^\\/+/, \"\");\n }(e, i.url), s = i.url, a = i.timeout, u = i.params, c = i.method, l = [\"GET\", \"DELETE\", \"OPTIONS\", \"HEAD\"].includes(void 0 === c ? \"GET\" : c) && !!u, p = l ? N({\n url: s,\n query: u\n }) : s, h = [], a && !i.signal && (v = new Promise(function (t) {\n f = setTimeout(function () {\n t(new Error(\"timeout\"));\n }, a);\n }), h.push(v), d = new AbortController(), i.signal = d.signal), h.push(fetch(p, i).catch(function (t) {\n return t;\n })), [4, Promise.race(h)];\n case 3:\n return g = m.sent(), f && clearTimeout(f), [4, r.response.traverse(g)];\n case 4:\n if ((y = m.sent()) instanceof Error) throw null == d || d.abort(), y;\n return [2, y];\n }\n });\n });\n }\n var F = function () {\n function t(t) {\n J.interceptors.request.use(function (n) {\n var r = n.url,\n o = n.method,\n i = n.body,\n s = i;\n if (t.onReportBeforeSend) {\n var a = t.onReportBeforeSend({\n url: r,\n method: o,\n data: i ? JSON.parse(i) : null\n });\n s = (null == a ? void 0 : a.data) ? JSON.stringify(a.data) : null;\n }\n return \"GET\" != o && s ? _e(_e({}, n), {\n body: s\n }) : n;\n });\n }\n return t.prototype.get = function (t, o) {\n return n(this, void 0, void 0, function () {\n var n, i;\n return r(this, function (r) {\n switch (r.label) {\n case 0:\n return [4, K(_e({\n url: t\n }, o))];\n case 1:\n return [4, (n = r.sent()).json()];\n case 2:\n return i = r.sent(), [2, Promise.resolve({\n data: i,\n status: n.status,\n statusText: n.statusText,\n headers: n.headers\n })];\n }\n });\n });\n }, t.prototype.post = function (t, o, i) {\n return n(this, void 0, void 0, function () {\n var n, s;\n return r(this, function (r) {\n switch (r.label) {\n case 0:\n return [4, K(_e({\n url: t,\n body: o,\n method: \"POST\"\n }, i))];\n case 1:\n return [4, (n = r.sent()).json()];\n case 2:\n return s = r.sent(), [2, Promise.resolve({\n data: s,\n status: n.status,\n statusText: n.statusText,\n headers: n.headers\n })];\n }\n });\n });\n }, t;\n }(),\n G = function () {\n function t(t) {\n this.appkey = t;\n }\n return t.prototype.getItem = function (t) {\n try {\n return window.localStorage.getItem(this.getStoreKey(t));\n } catch (t) {\n return \"\";\n }\n }, t.prototype.removeItem = function (t) {\n try {\n window.localStorage.removeItem(this.getStoreKey(t));\n } catch (t) {}\n }, t.prototype.setItem = function (t, e) {\n try {\n window.localStorage.setItem(this.getStoreKey(t), e);\n } catch (t) {}\n }, t.prototype.setSessionItem = function (t, e) {\n try {\n window.sessionStorage.setItem(this.getStoreKey(t), e);\n } catch (t) {}\n }, t.prototype.getSessionItem = function (t) {\n try {\n return window.sessionStorage.getItem(this.getStoreKey(t));\n } catch (t) {\n return \"\";\n }\n }, t.prototype.getStoreKey = function (t) {\n return o + this.appkey + \"_\" + t;\n }, t.prototype.createDeviceId = function () {\n try {\n var t = window.localStorage.getItem(i);\n return t || (t = function (t) {\n for (var e = \"ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz0123456789\", n = \"\", r = 0; r < t; r++) n += e.charAt(Math.floor(Math.random() * e.length));\n return n;\n }(32), window.localStorage.setItem(i, t)), t;\n } catch (t) {\n return \"\";\n }\n }, t.prototype.clear = function () {\n try {\n for (var t = window.localStorage.length, e = 0; e < t; e++) {\n var n = window.localStorage.key(e);\n (null == n ? void 0 : n.substr(0, 9)) == o && window.localStorage.removeItem(n);\n }\n } catch (t) {}\n }, t.prototype.getStoreCount = function () {\n var t = 0;\n try {\n t = window.localStorage.length;\n } catch (t) {}\n return t;\n }, t;\n }(),\n z = \"logid_start\",\n W = \"4.5.14-web\";\n return function (n) {\n function r(t) {\n var e = n.call(this, t) || this;\n e.qimei36 = \"\", e.uselessCycleTaskNum = 0, e.underWeakNet = !1, e.pauseSearching = !1, e.send = function (t, n, r) {\n e.storage.setItem(s, Date.now().toString()), e.network.post(e.uploadUrl || e.strategy.getUploadUrl(), t.data).then(function (r) {\n var o;\n 100 == (null === (o = null == r ? void 0 : r.data) || void 0 === o ? void 0 : o.result) ? e.delayTime = 1e3 * r.data.delayTime : e.delayTime = 0, n && n(t.data), t.data.events.forEach(function (t) {\n e.store.removeEvent(t).then(function () {\n e.removeSendingId(f(t.mapValue));\n });\n }), e.doCustomCycleTask();\n }).catch(function (n) {\n var o = t.data.events;\n e.errorReport.reportError(n.code ? n.code.toString() : \"600\", n.message), r && r(t.data);\n var i = JSON.parse(e.storage.getItem(a));\n o.forEach(function (t) {\n i && -1 != i.indexOf(f(t)) && e.store.insertEvent(t, function (t, n) {\n t && e.errorReport.reportError(\"604\", \"insertEvent fail!\");\n }), e.removeSendingId(f(t));\n }), e.monitorUploadFailed();\n });\n };\n var r,\n o,\n i = b();\n return e.isUnderIE8 = i > 0 && i < 8, e.isUnderIE8 || (e.isUnderIE = i > 0, t.needInitQimei && S(t.appkey, function (t) {\n e.qimei36 = t.q36;\n }), e.network = new F(t), e.storage = new G(t.appkey), e.initCommonInfo(t), e.store = new _(t.appkey, e.storage), e.errorReport = new g(e.config, e.commonInfo, \"web\", e.network), e.strategy = new y(null == t.needQueryConfig || t.needQueryConfig, e.config, e.commonInfo, e.storage, e.network), e.logidStartTime = e.storage.getItem(z), e.logidStartTime || (e.logidStartTime = Date.now().toString(), e.storage.setItem(z, e.logidStartTime)), r = e.logidStartTime, o = Date.now() - Number.parseFloat(r), Math.floor(o / 864e5) >= 365 && e.storage.clear(), e.initSession(t), e.onDirectUserAction(\"rqd_js_init\", {}), setTimeout(function () {\n return e.lifeCycle.emit(\"init\");\n }, 0), e.initDelayTime = t.delay ? t.delay : 1e3, e.cycleTask(e.initDelayTime)), e;\n }\n return function (e, n) {\n if (\"function\" != typeof n && null !== n) throw new TypeError(\"Class extends value \" + String(n) + \" is not a constructor or null\");\n function r() {\n this.constructor = e;\n }\n _t(e, n), e.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r());\n }(r, n), r.prototype.initSession = function (t) {\n var e = 18e5;\n t.sessionDuration && t.sessionDuration > 3e4 && (e = t.sessionDuration), this.beaconSession = new w(this.storage, e, this);\n }, r.prototype.initCommonInfo = function (t) {\n var e = Number(this.storage.getItem(s));\n try {\n var n = JSON.parse(this.storage.getItem(a));\n (Date.now() - e > 3e4 || !n) && this.storage.setItem(a, JSON.stringify([]));\n } catch (t) {}\n t.uploadUrl && (this.uploadUrl = t.uploadUrl + \"?appkey=\" + t.appkey);\n var r = [window.screen.width, window.screen.height];\n window.devicePixelRatio && r.push(window.devicePixelRatio), this.commonInfo = {\n deviceId: this.storage.createDeviceId(),\n language: navigator && navigator.language || \"zh_CN\",\n query: window.location.search,\n userAgent: navigator.userAgent,\n pixel: r.join(\"*\"),\n channelID: t.channelID ? String(t.channelID) : \"\",\n openid: t.openid ? String(t.openid) : \"\",\n unid: t.unionid ? String(t.unionid) : \"\",\n sdkVersion: W\n }, this.config.appVersion = t.versionCode ? String(t.versionCode) : \"\", this.config.strictMode = t.strictMode;\n }, r.prototype.cycleTask = function (t) {\n var e = this;\n this.intervalID = window.setInterval(function () {\n e.pauseSearching || e.store.getEvents().then(function (t) {\n 0 == t.length && (e.pauseSearching = !0);\n var n = [],\n r = JSON.parse(e.storage.getItem(a));\n r || (r = []), t && t.forEach(function (t) {\n var e = f(t.mapValue);\n -1 == r.indexOf(e) && (n.push(t), r.push(e));\n }), 0 != n.length && (e.storage.setItem(a, JSON.stringify(r)), e._normalLogPipeline(e.assembleData(n)));\n }).catch(function (t) {});\n }, t);\n }, r.prototype.onReport = function (t, e, n) {\n var r = this;\n if (this.isUnderIE8) this.errorReport.reportError(\"601\", \"UnderIE8\");else {\n this.pauseSearching = !1;\n var o = this.generateData(t, e, n);\n if (n && 0 == this.delayTime && !this.underWeakNet) this._normalLogPipeline(this.assembleData(o));else {\n var i = o.shift();\n i && this.store.insertEvent(i, function (t) {\n t && r.errorReport.reportError(\"604\", \"insertEvent fail!\");\n }).catch(function (t) {\n r._normalLogPipeline(r.assembleData(o));\n });\n }\n }\n }, r.prototype.onSendBeacon = function (t, e) {\n if (this.isUnderIE) this.errorReport.reportError(\"605\", \"UnderIE\");else {\n this.pauseSearching = !1;\n var n = this.assembleData(this.generateData(t, e, !0));\n \"function\" == typeof navigator.sendBeacon && navigator.sendBeacon(this.uploadUrl || this.strategy.getUploadUrl(), JSON.stringify(n));\n }\n }, r.prototype.generateData = function (t, n, r) {\n var o = [],\n i = \"4.5.14-web_\" + (r ? \"direct_log_id\" : \"normal_log_id\"),\n s = Number(this.storage.getItem(i));\n return s = s || 1, n = _e(_e({}, n), {\n A99: r ? \"Y\" : \"N\",\n A100: s.toString(),\n A72: W,\n A88: this.logidStartTime\n }), s++, this.storage.setItem(i, s.toString()), o.push({\n eventCode: t,\n eventTime: Date.now().toString(),\n mapValue: p(n, this.config.strictMode)\n }), o;\n }, r.prototype.assembleData = function (t) {\n var n = this.beaconSession.getSession();\n return {\n appVersion: this.config.appVersion ? h(this.config.appVersion) : \"\",\n sdkId: \"js\",\n sdkVersion: W,\n mainAppKey: this.config.appkey,\n platformId: 3,\n common: p(_e(_e({}, this.additionalParams), {\n A2: this.commonInfo.deviceId,\n A8: this.commonInfo.openid,\n A12: this.commonInfo.language,\n A17: this.commonInfo.pixel,\n A23: this.commonInfo.channelID,\n A50: this.commonInfo.unid,\n A76: n.sessionId,\n A101: this.commonInfo.userAgent,\n A102: window.location.href,\n A104: document.referrer,\n A119: this.commonInfo.query,\n A153: this.qimei36\n }), !1),\n events: t\n };\n }, r.prototype.monitorUploadFailed = function () {\n this.uselessCycleTaskNum++, this.uselessCycleTaskNum >= 5 && (window.clearInterval(this.intervalID), this.cycleTask(6e4), this.underWeakNet = !0);\n }, r.prototype.doCustomCycleTask = function () {\n this.uselessCycleTaskNum >= 5 && (window.clearInterval(this.intervalID), this.cycleTask(this.initDelayTime)), this.uselessCycleTaskNum = 0, this.underWeakNet = !1;\n }, r;\n }(v);\n});\n\n/***/ }),\n\n/***/ \"./lib/crypto.js\":\n/*!***********************!*\\\n !*** ./lib/crypto.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/*\r\n CryptoJS v3.1.2\r\n code.google.com/p/crypto-js\r\n (c) 2009-2013 by Jeff Mott. All rights reserved.\r\n code.google.com/p/crypto-js/wiki/License\r\n */\nvar CryptoJS = CryptoJS || function (g, l) {\n var e = {},\n d = e.lib = {},\n m = function m() {},\n k = d.Base = {\n extend: function extend(a) {\n m.prototype = this;\n var c = new m();\n a && c.mixIn(a);\n c.hasOwnProperty(\"init\") || (c.init = function () {\n c.$super.init.apply(this, arguments);\n });\n c.init.prototype = c;\n c.$super = this;\n return c;\n },\n create: function create() {\n var a = this.extend();\n a.init.apply(a, arguments);\n return a;\n },\n init: function init() {},\n mixIn: function mixIn(a) {\n for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);\n a.hasOwnProperty(\"toString\") && (this.toString = a.toString);\n },\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n },\n p = d.WordArray = k.extend({\n init: function init(a, c) {\n a = this.words = a || [];\n this.sigBytes = c != l ? c : 4 * a.length;\n },\n toString: function toString(a) {\n return (a || n).stringify(this);\n },\n concat: function concat(a) {\n var c = this.words,\n q = a.words,\n f = this.sigBytes;\n a = a.sigBytes;\n this.clamp();\n if (f % 4) for (var b = 0; b < a; b++) c[f + b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((f + b) % 4);else if (65535 < q.length) for (b = 0; b < a; b += 4) c[f + b >>> 2] = q[b >>> 2];else c.push.apply(c, q);\n this.sigBytes += a;\n return this;\n },\n clamp: function clamp() {\n var a = this.words,\n c = this.sigBytes;\n a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4);\n a.length = g.ceil(c / 4);\n },\n clone: function clone() {\n var a = k.clone.call(this);\n a.words = this.words.slice(0);\n return a;\n },\n random: function random(a) {\n for (var c = [], b = 0; b < a; b += 4) c.push(4294967296 * g.random() | 0);\n return new p.init(c, a);\n }\n }),\n b = e.enc = {},\n n = b.Hex = {\n stringify: function stringify(a) {\n var c = a.words;\n a = a.sigBytes;\n for (var b = [], f = 0; f < a; f++) {\n var d = c[f >>> 2] >>> 24 - 8 * (f % 4) & 255;\n b.push((d >>> 4).toString(16));\n b.push((d & 15).toString(16));\n }\n return b.join(\"\");\n },\n parse: function parse(a) {\n for (var c = a.length, b = [], f = 0; f < c; f += 2) b[f >>> 3] |= parseInt(a.substr(f, 2), 16) << 24 - 4 * (f % 8);\n return new p.init(b, c / 2);\n }\n },\n j = b.Latin1 = {\n stringify: function stringify(a) {\n var c = a.words;\n a = a.sigBytes;\n for (var b = [], f = 0; f < a; f++) b.push(String.fromCharCode(c[f >>> 2] >>> 24 - 8 * (f % 4) & 255));\n return b.join(\"\");\n },\n parse: function parse(a) {\n for (var c = a.length, b = [], f = 0; f < c; f++) b[f >>> 2] |= (a.charCodeAt(f) & 255) << 24 - 8 * (f % 4);\n return new p.init(b, c);\n }\n },\n h = b.Utf8 = {\n stringify: function stringify(a) {\n try {\n return decodeURIComponent(escape(j.stringify(a)));\n } catch (c) {\n throw Error(\"Malformed UTF-8 data\");\n }\n },\n parse: function parse(a) {\n return j.parse(unescape(encodeURIComponent(a)));\n }\n },\n r = d.BufferedBlockAlgorithm = k.extend({\n reset: function reset() {\n this._data = new p.init();\n this._nDataBytes = 0;\n },\n _append: function _append(a) {\n \"string\" == typeof a && (a = h.parse(a));\n this._data.concat(a);\n this._nDataBytes += a.sigBytes;\n },\n _process: function _process(a) {\n var c = this._data,\n b = c.words,\n f = c.sigBytes,\n d = this.blockSize,\n e = f / (4 * d),\n e = a ? g.ceil(e) : g.max((e | 0) - this._minBufferSize, 0);\n a = e * d;\n f = g.min(4 * a, f);\n if (a) {\n for (var k = 0; k < a; k += d) this._doProcessBlock(b, k);\n k = b.splice(0, a);\n c.sigBytes -= f;\n }\n return new p.init(k, f);\n },\n clone: function clone() {\n var a = k.clone.call(this);\n a._data = this._data.clone();\n return a;\n },\n _minBufferSize: 0\n });\n d.Hasher = r.extend({\n cfg: k.extend(),\n init: function init(a) {\n this.cfg = this.cfg.extend(a);\n this.reset();\n },\n reset: function reset() {\n r.reset.call(this);\n this._doReset();\n },\n update: function update(a) {\n this._append(a);\n this._process();\n return this;\n },\n finalize: function finalize(a) {\n a && this._append(a);\n return this._doFinalize();\n },\n blockSize: 16,\n _createHelper: function _createHelper(a) {\n return function (b, d) {\n return new a.init(d).finalize(b);\n };\n },\n _createHmacHelper: function _createHmacHelper(a) {\n return function (b, d) {\n return new s.HMAC.init(a, d).finalize(b);\n };\n }\n });\n var s = e.algo = {};\n return e;\n}(Math);\n(function () {\n var g = CryptoJS,\n l = g.lib,\n e = l.WordArray,\n d = l.Hasher,\n m = [],\n l = g.algo.SHA1 = d.extend({\n _doReset: function _doReset() {\n this._hash = new e.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\n },\n _doProcessBlock: function _doProcessBlock(d, e) {\n for (var b = this._hash.words, n = b[0], j = b[1], h = b[2], g = b[3], l = b[4], a = 0; 80 > a; a++) {\n if (16 > a) m[a] = d[e + a] | 0;else {\n var c = m[a - 3] ^ m[a - 8] ^ m[a - 14] ^ m[a - 16];\n m[a] = c << 1 | c >>> 31;\n }\n c = (n << 5 | n >>> 27) + l + m[a];\n c = 20 > a ? c + ((j & h | ~j & g) + 1518500249) : 40 > a ? c + ((j ^ h ^ g) + 1859775393) : 60 > a ? c + ((j & h | j & g | h & g) - 1894007588) : c + ((j ^ h ^ g) - 899497514);\n l = g;\n g = h;\n h = j << 30 | j >>> 2;\n j = n;\n n = c;\n }\n b[0] = b[0] + n | 0;\n b[1] = b[1] + j | 0;\n b[2] = b[2] + h | 0;\n b[3] = b[3] + g | 0;\n b[4] = b[4] + l | 0;\n },\n _doFinalize: function _doFinalize() {\n var d = this._data,\n e = d.words,\n b = 8 * this._nDataBytes,\n g = 8 * d.sigBytes;\n e[g >>> 5] |= 128 << 24 - g % 32;\n e[(g + 64 >>> 9 << 4) + 14] = Math.floor(b / 4294967296);\n e[(g + 64 >>> 9 << 4) + 15] = b;\n d.sigBytes = 4 * e.length;\n this._process();\n return this._hash;\n },\n clone: function clone() {\n var e = d.clone.call(this);\n e._hash = this._hash.clone();\n return e;\n }\n });\n g.SHA1 = d._createHelper(l);\n g.HmacSHA1 = d._createHmacHelper(l);\n})();\n(function () {\n var g = CryptoJS,\n l = g.enc.Utf8;\n g.algo.HMAC = g.lib.Base.extend({\n init: function init(e, d) {\n e = this._hasher = new e.init();\n \"string\" == typeof d && (d = l.parse(d));\n var g = e.blockSize,\n k = 4 * g;\n d.sigBytes > k && (d = e.finalize(d));\n d.clamp();\n for (var p = this._oKey = d.clone(), b = this._iKey = d.clone(), n = p.words, j = b.words, h = 0; h < g; h++) n[h] ^= 1549556828, j[h] ^= 909522486;\n p.sigBytes = b.sigBytes = k;\n this.reset();\n },\n reset: function reset() {\n var e = this._hasher;\n e.reset();\n e.update(this._iKey);\n },\n update: function update(e) {\n this._hasher.update(e);\n return this;\n },\n finalize: function finalize(e) {\n var d = this._hasher;\n e = d.finalize(e);\n d.reset();\n return d.finalize(this._oKey.clone().concat(e));\n }\n });\n})();\n(function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n\n /**\r\n * Base64 encoding strategy.\r\n */\n var Base64 = C_enc.Base64 = {\n /**\r\n * Converts a word array to a Base64 string.\r\n *\r\n * @param {WordArray} wordArray The word array.\r\n *\r\n * @return {string} The Base64 string.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\r\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n\n // Clamp excess bits\n wordArray.clamp();\n\n // Convert\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n }\n\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n return base64Chars.join('');\n },\n /**\r\n * Converts a Base64 string to a word array.\r\n *\r\n * @param {string} base64Str The Base64 string.\r\n *\r\n * @return {WordArray} The word array.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\r\n */\n parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex != -1) {\n base64StrLength = paddingIndex;\n }\n }\n\n // Convert\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = map.indexOf(base64Str.charAt(i - 1)) << i % 4 * 2;\n var bits2 = map.indexOf(base64Str.charAt(i)) >>> 6 - i % 4 * 2;\n words[nBytes >>> 2] |= (bits1 | bits2) << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n return WordArray.create(words, nBytes);\n },\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n };\n})();\nif (( false ? undefined : _typeof(module)) === 'object') {\n module.exports = CryptoJS;\n} else {\n window.CryptoJS = CryptoJS;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n/***/ }),\n\n/***/ \"./lib/json2xml.js\":\n/*!*************************!*\\\n !*** ./lib/json2xml.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n//copyright Ryan Day 2010 <http://ryanday.org>, Joscha Feth 2013 <http://www.feth.com> [MIT Licensed]\n\nvar element_start_char = \"a-zA-Z_\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FFF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\nvar element_non_start_char = \"-.0-9\\xB7\\u0300-\\u036F\\u203F\\u2040\";\nvar element_replace = new RegExp(\"^([^\" + element_start_char + \"])|^((x|X)(m|M)(l|L))|([^\" + element_start_char + element_non_start_char + \"])\", \"g\");\nvar not_safe_in_xml = /[^\\x09\\x0A\\x0D\\x20-\\xFF\\x85\\xA0-\\uD7FF\\uE000-\\uFDCF\\uFDE0-\\uFFFD]/gm;\nvar objKeys = function objKeys(obj) {\n var l = [];\n if (obj instanceof Object) {\n for (var k in obj) {\n if (obj.hasOwnProperty(k)) {\n l.push(k);\n }\n }\n }\n return l;\n};\nvar process_to_xml = function process_to_xml(node_data, options) {\n var makeNode = function makeNode(name, content, attributes, level, hasSubNodes) {\n var indent_value = options.indent !== undefined ? options.indent : \"\\t\";\n var indent = options.prettyPrint ? '\\n' + new Array(level).join(indent_value) : '';\n if (options.removeIllegalNameCharacters) {\n name = name.replace(element_replace, '_');\n }\n var node = [indent, '<', name, attributes || ''];\n if (content && content.length > 0) {\n node.push('>');\n node.push(content);\n hasSubNodes && node.push(indent);\n node.push('</');\n node.push(name);\n node.push('>');\n } else {\n node.push('/>');\n }\n return node.join('');\n };\n return function fn(node_data, node_descriptor, level) {\n var type = _typeof(node_data);\n if (Array.isArray ? Array.isArray(node_data) : node_data instanceof Array) {\n type = 'array';\n } else if (node_data instanceof Date) {\n type = 'date';\n }\n switch (type) {\n //if value is an array create child nodes from values\n case 'array':\n var ret = [];\n node_data.map(function (v) {\n ret.push(fn(v, 1, level + 1));\n //entries that are values of an array are the only ones that can be special node descriptors\n });\n\n options.prettyPrint && ret.push('\\n');\n return ret.join('');\n break;\n case 'date':\n // cast dates to ISO 8601 date (soap likes it)\n return node_data.toJSON ? node_data.toJSON() : node_data + '';\n break;\n case 'object':\n var nodes = [];\n for (var name in node_data) {\n if (node_data.hasOwnProperty(name)) {\n if (node_data[name] instanceof Array) {\n for (var j = 0; j < node_data[name].length; j++) {\n if (node_data[name].hasOwnProperty(j)) {\n nodes.push(makeNode(name, fn(node_data[name][j], 0, level + 1), null, level + 1, objKeys(node_data[name][j]).length));\n }\n }\n } else {\n nodes.push(makeNode(name, fn(node_data[name], 0, level + 1), null, level + 1));\n }\n }\n }\n options.prettyPrint && nodes.length > 0 && nodes.push('\\n');\n return nodes.join('');\n break;\n case 'function':\n return node_data();\n break;\n default:\n return options.escape ? esc(node_data) : '' + node_data;\n }\n }(node_data, 0, 0);\n};\nvar xml_header = function xml_header(standalone) {\n var ret = ['<?xml version=\"1.0\" encoding=\"UTF-8\"'];\n if (standalone) {\n ret.push(' standalone=\"yes\"');\n }\n ret.push('?>');\n return ret.join('');\n};\nfunction esc(str) {\n return ('' + str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/'/g, ''').replace(/\"/g, '"').replace(not_safe_in_xml, '');\n}\nmodule.exports = function (obj, options) {\n if (!options) {\n options = {\n xmlHeader: {\n standalone: true\n },\n prettyPrint: true,\n indent: \" \",\n escape: true\n };\n }\n if (typeof obj == 'string') {\n try {\n obj = JSON.parse(obj.toString());\n } catch (e) {\n return false;\n }\n }\n var xmlheader = '';\n var docType = '';\n if (options) {\n if (_typeof(options) == 'object') {\n // our config is an object\n\n if (options.xmlHeader) {\n // the user wants an xml header\n xmlheader = xml_header(!!options.xmlHeader.standalone);\n }\n if (typeof options.docType != 'undefined') {\n docType = '<!DOCTYPE ' + options.docType + '>';\n }\n } else {\n // our config is a boolean value, so just add xml header\n xmlheader = xml_header();\n }\n }\n options = options || {};\n var ret = [xmlheader, options.prettyPrint && docType ? '\\n' : '', docType, process_to_xml(obj, options)];\n return ret.join('').replace(/\\n{2,}/g, '\\n').replace(/\\s+$/g, '');\n};\n\n/***/ }),\n\n/***/ \"./lib/md5.js\":\n/*!********************!*\\\n !*** ./lib/md5.js ***!\n \\********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/* https://github.com/emn178/js-md5 */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_MD5_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === 'object';\n var NODE_JS = !root.JS_MD5_NO_NODE_JS && (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && ( false ? undefined : _typeof(module)) === 'object' && module.exports;\n var AMD = true && __webpack_require__(/*! !webpack amd options */ \"./node_modules/webpack/buildin/amd-options.js\");\n var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [128, 32768, 8388608, -2147483648];\n var SHIFT = [0, 8, 16, 24];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n var blocks = [],\n buffer8;\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n buffer8 = new Uint8Array(buffer);\n blocks = new Uint32Array(buffer);\n }\n if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return _typeof(obj) === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n /**\r\n * @method hex\r\n * @memberof md5\r\n * @description Output hash as hex string\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {String} Hex string\r\n * @example\r\n * md5.hex('The quick brown fox jumps over the lazy dog');\r\n * // equal to\r\n * md5('The quick brown fox jumps over the lazy dog');\r\n */\n /**\r\n * @method digest\r\n * @memberof md5\r\n * @description Output hash as bytes array\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {Array} Bytes array\r\n * @example\r\n * md5.digest('The quick brown fox jumps over the lazy dog');\r\n */\n /**\r\n * @method array\r\n * @memberof md5\r\n * @description Output hash as bytes array\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {Array} Bytes array\r\n * @example\r\n * md5.array('The quick brown fox jumps over the lazy dog');\r\n */\n /**\r\n * @method arrayBuffer\r\n * @memberof md5\r\n * @description Output hash as ArrayBuffer\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {ArrayBuffer} ArrayBuffer\r\n * @example\r\n * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\r\n */\n /**\r\n * @method buffer\r\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\r\n * @memberof md5\r\n * @description Output hash as ArrayBuffer\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {ArrayBuffer} ArrayBuffer\r\n * @example\r\n * md5.buffer('The quick brown fox jumps over the lazy dog');\r\n */\n /**\r\n * @method base64\r\n * @memberof md5\r\n * @description Output hash as base64 string\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {String} base64 string\r\n * @example\r\n * md5.base64('The quick brown fox jumps over the lazy dog');\r\n */\n var createOutputMethod = function createOutputMethod(outputType) {\n return function (message, isBinStr) {\n return new Md5(true).update(message, isBinStr)[outputType]();\n };\n };\n\n /**\r\n * @method create\r\n * @memberof md5\r\n * @description Create Md5 object\r\n * @returns {Md5} Md5 object.\r\n * @example\r\n * var hash = md5.create();\r\n */\n /**\r\n * @method update\r\n * @memberof md5\r\n * @description Create and update Md5 object\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {Md5} Md5 object.\r\n * @example\r\n * var hash = md5.update('The quick brown fox jumps over the lazy dog');\r\n * // equal to\r\n * var hash = md5.create();\r\n * hash.update('The quick brown fox jumps over the lazy dog');\r\n */\n var createMethod = function createMethod() {\n var method = createOutputMethod('hex');\n if (NODE_JS) {\n method = nodeWrap(method);\n }\n method.getCtx = method.create = function () {\n return new Md5();\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type);\n }\n return method;\n };\n var nodeWrap = function nodeWrap(method) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var nodeMethod = function nodeMethod(message) {\n if (typeof message === 'string') {\n return crypto.createHash('md5').update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw ERROR;\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) {\n return crypto.createHash('md5').update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n /**\r\n * Md5 class\r\n * @class Md5\r\n * @description This is internal class.\r\n * @see {@link md5.create}\r\n */\n function Md5(sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n this.buffer8 = buffer8;\n } else {\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n this.buffer8 = new Uint8Array(buffer);\n this.blocks = new Uint32Array(buffer);\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n }\n this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n\n /**\r\n * @method update\r\n * @memberof Md5\r\n * @instance\r\n * @description Update hash\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {Md5} Md5 object.\r\n * @see {@link md5.update}\r\n */\n Md5.prototype.update = function (message, isBinStr) {\n if (this.finalized) {\n return;\n }\n var code,\n index = 0,\n i,\n length = message.length,\n blocks = this.blocks;\n var buffer8 = this.buffer8;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (isBinStr || code < 0x80) {\n buffer8[i++] = code;\n } else if (code < 0x800) {\n buffer8[i++] = 0xc0 | code >> 6;\n buffer8[i++] = 0x80 | code & 0x3f;\n } else if (code < 0xd800 || code >= 0xe000) {\n buffer8[i++] = 0xe0 | code >> 12;\n buffer8[i++] = 0x80 | code >> 6 & 0x3f;\n buffer8[i++] = 0x80 | code & 0x3f;\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n buffer8[i++] = 0xf0 | code >> 18;\n buffer8[i++] = 0x80 | code >> 12 & 0x3f;\n buffer8[i++] = 0x80 | code >> 6 & 0x3f;\n buffer8[i++] = 0x80 | code & 0x3f;\n }\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (isBinStr || code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n Md5.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks,\n i = this.lastByteIndex;\n blocks[i >> 2] |= EXTRA[i & 3];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.bytes << 3;\n blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n this.hash();\n };\n Md5.prototype.hash = function () {\n var a,\n b,\n c,\n d,\n bc,\n da,\n blocks = this.blocks;\n if (this.first) {\n a = blocks[0] - 680876937;\n a = (a << 7 | a >>> 25) - 271733879 << 0;\n d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n d = (d << 12 | d >>> 20) + a << 0;\n c = (-271733879 ^ d & (a ^ -271733879)) + blocks[2] - 1126478375;\n c = (c << 17 | c >>> 15) + d << 0;\n b = (a ^ c & (d ^ a)) + blocks[3] - 1316259209;\n b = (b << 22 | b >>> 10) + c << 0;\n } else {\n a = this.h0;\n b = this.h1;\n c = this.h2;\n d = this.h3;\n a += (d ^ b & (c ^ d)) + blocks[0] - 680876936;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[1] - 389564586;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[2] + 606105819;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[3] - 1044525330;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n a += (d ^ b & (c ^ d)) + blocks[4] - 176418897;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[5] + 1200080426;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[6] - 1473231341;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[7] - 45705983;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ b & (c ^ d)) + blocks[8] + 1770035416;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[9] - 1958414417;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[10] - 42063;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[11] - 1990404162;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ b & (c ^ d)) + blocks[12] + 1804603682;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[13] - 40341101;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[14] - 1502002290;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[15] + 1236535329;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[1] - 165796510;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[6] - 1069501632;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[11] + 643717713;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[0] - 373897302;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[5] - 701558691;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[10] + 38016083;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[15] - 660478335;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[4] - 405537848;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[9] + 568446438;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[14] - 1019803690;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[3] - 187363961;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[8] + 1163531501;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[13] - 1444681467;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[2] - 51403784;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[7] + 1735328473;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[12] - 1926607734;\n b = (b << 20 | b >>> 12) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[5] - 378558;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[8] - 2022574463;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[11] + 1839030562;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[14] - 35309556;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[1] - 1530992060;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[4] + 1272893353;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[7] - 155497632;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[10] - 1094730640;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[13] + 681279174;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[0] - 358537222;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[3] - 722521979;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[6] + 76029189;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[9] - 640364487;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[12] - 421815835;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[15] + 530742520;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[2] - 995338651;\n b = (b << 23 | b >>> 9) + c << 0;\n a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n b = (b << 21 | b >>> 11) + c << 0;\n if (this.first) {\n this.h0 = a + 1732584193 << 0;\n this.h1 = b - 271733879 << 0;\n this.h2 = c - 1732584194 << 0;\n this.h3 = d + 271733878 << 0;\n this.first = false;\n } else {\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n }\n };\n\n /**\r\n * @method hex\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as hex string\r\n * @returns {String} Hex string\r\n * @see {@link md5.hex}\r\n * @example\r\n * hash.hex();\r\n */\n Md5.prototype.hex = function () {\n this.finalize();\n var h0 = this.h0,\n h1 = this.h1,\n h2 = this.h2,\n h3 = this.h3;\n return HEX_CHARS[h0 >> 4 & 0x0F] + HEX_CHARS[h0 & 0x0F] + HEX_CHARS[h0 >> 12 & 0x0F] + HEX_CHARS[h0 >> 8 & 0x0F] + HEX_CHARS[h0 >> 20 & 0x0F] + HEX_CHARS[h0 >> 16 & 0x0F] + HEX_CHARS[h0 >> 28 & 0x0F] + HEX_CHARS[h0 >> 24 & 0x0F] + HEX_CHARS[h1 >> 4 & 0x0F] + HEX_CHARS[h1 & 0x0F] + HEX_CHARS[h1 >> 12 & 0x0F] + HEX_CHARS[h1 >> 8 & 0x0F] + HEX_CHARS[h1 >> 20 & 0x0F] + HEX_CHARS[h1 >> 16 & 0x0F] + HEX_CHARS[h1 >> 28 & 0x0F] + HEX_CHARS[h1 >> 24 & 0x0F] + HEX_CHARS[h2 >> 4 & 0x0F] + HEX_CHARS[h2 & 0x0F] + HEX_CHARS[h2 >> 12 & 0x0F] + HEX_CHARS[h2 >> 8 & 0x0F] + HEX_CHARS[h2 >> 20 & 0x0F] + HEX_CHARS[h2 >> 16 & 0x0F] + HEX_CHARS[h2 >> 28 & 0x0F] + HEX_CHARS[h2 >> 24 & 0x0F] + HEX_CHARS[h3 >> 4 & 0x0F] + HEX_CHARS[h3 & 0x0F] + HEX_CHARS[h3 >> 12 & 0x0F] + HEX_CHARS[h3 >> 8 & 0x0F] + HEX_CHARS[h3 >> 20 & 0x0F] + HEX_CHARS[h3 >> 16 & 0x0F] + HEX_CHARS[h3 >> 28 & 0x0F] + HEX_CHARS[h3 >> 24 & 0x0F];\n };\n\n /**\r\n * @method toString\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as hex string\r\n * @returns {String} Hex string\r\n * @see {@link md5.hex}\r\n * @example\r\n * hash.toString();\r\n */\n Md5.prototype.toString = Md5.prototype.hex;\n\n /**\r\n * @method digest\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as bytes array\r\n * @returns {Array} Bytes array\r\n * @see {@link md5.digest}\r\n * @example\r\n * hash.digest();\r\n */\n Md5.prototype.digest = function (format) {\n if (format === 'hex') return this.hex();\n this.finalize();\n var h0 = this.h0,\n h1 = this.h1,\n h2 = this.h2,\n h3 = this.h3;\n var res = [h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >> 24 & 0xFF];\n return res;\n };\n\n /**\r\n * @method array\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as bytes array\r\n * @returns {Array} Bytes array\r\n * @see {@link md5.array}\r\n * @example\r\n * hash.array();\r\n */\n Md5.prototype.array = Md5.prototype.digest;\n\n /**\r\n * @method arrayBuffer\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as ArrayBuffer\r\n * @returns {ArrayBuffer} ArrayBuffer\r\n * @see {@link md5.arrayBuffer}\r\n * @example\r\n * hash.arrayBuffer();\r\n */\n Md5.prototype.arrayBuffer = function () {\n this.finalize();\n var buffer = new ArrayBuffer(16);\n var blocks = new Uint32Array(buffer);\n blocks[0] = this.h0;\n blocks[1] = this.h1;\n blocks[2] = this.h2;\n blocks[3] = this.h3;\n return buffer;\n };\n\n /**\r\n * @method buffer\r\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as ArrayBuffer\r\n * @returns {ArrayBuffer} ArrayBuffer\r\n * @see {@link md5.buffer}\r\n * @example\r\n * hash.buffer();\r\n */\n Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n /**\r\n * @method base64\r\n * @memberof Md5\r\n * @instance\r\n * @description Output hash as base64 string\r\n * @returns {String} base64 string\r\n * @see {@link md5.base64}\r\n * @example\r\n * hash.base64();\r\n */\n Md5.prototype.base64 = function () {\n var v1,\n v2,\n v3,\n base64Str = '',\n bytes = this.array();\n for (var i = 0; i < 15;) {\n v1 = bytes[i++];\n v2 = bytes[i++];\n v3 = bytes[i++];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63];\n }\n v1 = bytes[i];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[v1 << 4 & 63] + '==';\n return base64Str;\n };\n var exports = createMethod();\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n /**\r\n * @method md5\b\r\n * @description Md5 hash function, export to global in browsers.\r\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\r\n * @returns {String} md5 hashes\r\n * @example\r\n * md5(''); // d41d8cd98f00b204e9800998ecf8427e\r\n * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\r\n * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\r\n *\r\n * // It also supports UTF-8 encoding\r\n * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\r\n *\r\n * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\r\n * md5([]); // d41d8cd98f00b204e9800998ecf8427e\r\n * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\r\n */\n root.md5 = exports;\n if (AMD) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n return exports;\n }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n }\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n/***/ }),\n\n/***/ \"./lib/request.js\":\n/*!************************!*\\\n !*** ./lib/request.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar stringifyPrimitive = function stringifyPrimitive(v) {\n switch (_typeof(v)) {\n case 'string':\n return v;\n case 'boolean':\n return v ? 'true' : 'false';\n case 'number':\n return isFinite(v) ? v : '';\n default:\n return '';\n }\n};\nvar queryStringify = function queryStringify(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n if (_typeof(obj) === 'object') {\n return Object.keys(obj).map(function (k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function (v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).filter(Boolean).join(sep);\n }\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};\nvar xhrRes = function xhrRes(err, xhr, body) {\n var headers = {};\n xhr.getAllResponseHeaders().trim().split('\\n').forEach(function (item) {\n if (item) {\n var index = item.indexOf(':');\n var key = item.substr(0, index).trim().toLowerCase();\n var val = item.substr(index + 1).trim();\n headers[key] = val;\n }\n });\n return {\n error: err,\n statusCode: xhr.status,\n statusMessage: xhr.statusText,\n headers: headers,\n body: body\n };\n};\nvar xhrBody = function xhrBody(xhr, dataType) {\n return !dataType && dataType === 'text' ? xhr.responseText : xhr.response;\n};\nvar request = function request(opt, callback) {\n // method\n var method = (opt.method || 'GET').toUpperCase();\n\n // url、qs\n var url = opt.url;\n if (opt.qs) {\n var qsStr = queryStringify(opt.qs);\n if (qsStr) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + qsStr;\n }\n }\n\n // 创建 ajax 实例\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n xhr.responseType = opt.dataType || 'text';\n\n // 处理 xhrFields 属性\n if (opt.xhrFields) {\n for (var xhrField in opt.xhrFields) {\n xhr[xhrField] = opt.xhrFields[xhrField];\n }\n }\n\n // 处理 headers\n var headers = opt.headers;\n if (headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key) && key.toLowerCase() !== 'content-length' && key.toLowerCase() !== 'user-agent' && key.toLowerCase() !== 'origin' && key.toLowerCase() !== 'host') {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n\n // onprogress\n if (opt.onProgress && xhr.upload) xhr.upload.onprogress = opt.onProgress;\n if (opt.onDownloadProgress) xhr.onprogress = opt.onDownloadProgress;\n\n // timeout\n if (opt.timeout) xhr.timeout = opt.timeout;\n xhr.ontimeout = function (event) {\n var error = new Error('timeout');\n callback(xhrRes(error, xhr));\n };\n\n // success 2xx/3xx/4xx\n xhr.onload = function () {\n callback(xhrRes(null, xhr, xhrBody(xhr, opt.dataType)));\n };\n\n // error 5xx/0 (网络错误、跨域报错、Https connect-src 限制的报错时 statusCode 为 0)\n xhr.onerror = function (err) {\n var body = xhrBody(xhr, opt.dataType);\n if (body) {\n // 5xx\n callback(xhrRes(null, xhr, body));\n } else {\n // 0\n var error = xhr.statusText;\n if (!error && xhr.status === 0) error = new Error('CORS blocked or network error');\n callback(xhrRes(error, xhr, body));\n }\n };\n\n // send\n xhr.send(opt.body || '');\n\n // 返回 ajax 实例,用于外部调用 xhr.abort\n return xhr;\n};\nmodule.exports = request;\n\n/***/ }),\n\n/***/ \"./lib/xml2json.js\":\n/*!*************************!*\\\n !*** ./lib/xml2json.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* Copyright 2015 William Summers, MetaTribal LLC\r\n * adapted from https://developer.mozilla.org/en-US/docs/JXON\r\n *\r\n * Licensed under the MIT License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * https://opensource.org/licenses/MIT\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n/**\r\n * @author William Summers\r\n * https://github.com/metatribal/xmlToJSON\r\n */\nvar DOMParser = __webpack_require__(/*! @xmldom/xmldom */ \"./node_modules/@xmldom/xmldom/lib/index.js\").DOMParser;\nvar xmlToJSON = function () {\n this.version = \"1.3.5\";\n var options = {\n // set up the default options\n mergeCDATA: true,\n // extract cdata and merge with text\n normalize: true,\n // collapse multiple spaces to single space\n stripElemPrefix: true // for elements of same name in diff namespaces, you can enable namespaces and access the nskey property\n };\n\n var prefixMatch = new RegExp(/(?!xmlns)^.*:/);\n var trimMatch = new RegExp(/^\\s+|\\s+$/g);\n this.grokType = function (sValue) {\n if (/^\\s*$/.test(sValue)) {\n return null;\n }\n if (/^(?:true|false)$/i.test(sValue)) {\n return sValue.toLowerCase() === \"true\";\n }\n if (isFinite(sValue)) {\n return parseFloat(sValue);\n }\n return sValue;\n };\n this.parseString = function (xmlString, opt) {\n if (xmlString) {\n var xml = this.stringToXML(xmlString);\n if (xml.getElementsByTagName('parsererror').length) {\n return null;\n } else {\n return this.parseXML(xml, opt);\n }\n } else {\n return null;\n }\n };\n this.parseXML = function (oXMLParent, opt) {\n // initialize options\n for (var key in opt) {\n options[key] = opt[key];\n }\n var vResult = {},\n nLength = 0,\n sCollectedTxt = \"\";\n\n // iterate over the children\n var childNum = oXMLParent.childNodes.length;\n if (childNum) {\n for (var oNode, sProp, vContent, nItem = 0; nItem < oXMLParent.childNodes.length; nItem++) {\n oNode = oXMLParent.childNodes.item(nItem);\n if (oNode.nodeType === 4) {\n if (options.mergeCDATA) {\n sCollectedTxt += oNode.nodeValue;\n }\n } /* nodeType is \"CDATASection\" (4) */else if (oNode.nodeType === 3) {\n sCollectedTxt += oNode.nodeValue;\n } /* nodeType is \"Text\" (3) */else if (oNode.nodeType === 1) {\n /* nodeType is \"Element\" (1) */\n\n if (nLength === 0) {\n vResult = {};\n }\n\n // using nodeName to support browser (IE) implementation with no 'localName' property\n if (options.stripElemPrefix) {\n sProp = oNode.nodeName.replace(prefixMatch, '');\n } else {\n sProp = oNode.nodeName;\n }\n vContent = xmlToJSON.parseXML(oNode);\n if (vResult.hasOwnProperty(sProp)) {\n if (vResult[sProp].constructor !== Array) {\n vResult[sProp] = [vResult[sProp]];\n }\n vResult[sProp].push(vContent);\n } else {\n vResult[sProp] = vContent;\n nLength++;\n }\n }\n }\n }\n if (!Object.keys(vResult).length) {\n // vResult = sCollectedTxt.replace(trimMatch, '') || ''; // by carsonxu 修复 getBucket返回的 Key 是 \" /\" 这种场景\n vResult = sCollectedTxt || '';\n }\n return vResult;\n };\n\n // Convert xmlDocument to a string\n // Returns null on failure\n this.xmlToString = function (xmlDoc) {\n try {\n var xmlString = xmlDoc.xml ? xmlDoc.xml : new XMLSerializer().serializeToString(xmlDoc);\n return xmlString;\n } catch (err) {\n return null;\n }\n };\n\n // Convert a string to XML Node Structure\n // Returns null on failure\n this.stringToXML = function (xmlString) {\n try {\n var xmlDoc = null;\n if (window.DOMParser) {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(xmlString, \"text/xml\");\n return xmlDoc;\n } else {\n xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\n xmlDoc.async = false;\n xmlDoc.loadXML(xmlString);\n return xmlDoc;\n }\n } catch (e) {\n return null;\n }\n };\n return this;\n}.call({});\nvar xml2json = function xml2json(xmlString) {\n return xmlToJSON.parseString(xmlString);\n};\nmodule.exports = xml2json;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/createClass.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toPrimitive.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/toPropertyKey.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"];\nvar toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ \"./node_modules/@babel/runtime/helpers/toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@babel/runtime/helpers/typeof.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n/***/ }),\n\n/***/ \"./node_modules/@xmldom/xmldom/lib/conventions.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/@xmldom/xmldom/lib/conventions.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n\n\n/***/ }),\n\n/***/ \"./node_modules/@xmldom/xmldom/lib/dom-parser.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/@xmldom/xmldom/lib/dom-parser.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar conventions = __webpack_require__(/*! ./conventions */ \"./node_modules/@xmldom/xmldom/lib/conventions.js\");\nvar dom = __webpack_require__(/*! ./dom */ \"./node_modules/@xmldom/xmldom/lib/dom.js\")\nvar entities = __webpack_require__(/*! ./entities */ \"./node_modules/@xmldom/xmldom/lib/entities.js\");\nvar sax = __webpack_require__(/*! ./sax */ \"./node_modules/@xmldom/xmldom/lib/sax.js\");\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n\n\n/***/ }),\n\n/***/ \"./node_modules/@xmldom/xmldom/lib/dom.js\":\n/*!************************************************!*\\\n !*** ./node_modules/@xmldom/xmldom/lib/dom.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar conventions = __webpack_require__(/*! ./conventions */ \"./node_modules/@xmldom/xmldom/lib/conventions.js\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\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 ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\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\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\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\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\n\t\t// add namespace for current node\n\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',prefixedNodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor (var n in node) {\n\t\tif (Object.prototype.hasOwnProperty.call(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != \"object\") {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.XMLSerializer = XMLSerializer;\n//}\n\n\n/***/ }),\n\n/***/ \"./node_modules/@xmldom/xmldom/lib/entities.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/@xmldom/xmldom/lib/entities.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar freeze = __webpack_require__(/*! ./conventions */ \"./node_modules/@xmldom/xmldom/lib/conventions.js\").freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n\n\n/***/ }),\n\n/***/ \"./node_modules/@xmldom/xmldom/lib/index.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/@xmldom/xmldom/lib/index.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dom = __webpack_require__(/*! ./dom */ \"./node_modules/@xmldom/xmldom/lib/dom.js\")\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = __webpack_require__(/*! ./dom-parser */ \"./node_modules/@xmldom/xmldom/lib/dom-parser.js\").DOMParser\n\n\n/***/ }),\n\n/***/ \"./node_modules/@xmldom/xmldom/lib/sax.js\":\n/*!************************************************!*\\\n !*** ./node_modules/@xmldom/xmldom/lib/sax.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NAMESPACE = __webpack_require__(/*! ./conventions */ \"./node_modules/@xmldom/xmldom/lib/conventions.js\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s</)){\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\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\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n\n\n/***/ }),\n\n/***/ \"./node_modules/process/browser.js\":\n/*!*****************************************!*\\\n !*** ./node_modules/process/browser.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/amd-options.js\":\n/*!****************************************!*\\\n !*** (webpack)/buildin/amd-options.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n\n/* WEBPACK VAR INJECTION */}.call(this, {}))\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/*!***********************************!*\\\n !*** (webpack)/buildin/global.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar 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\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/module.js\":\n/*!***********************************!*\\\n !*** (webpack)/buildin/module.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.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\n\n/***/ }),\n\n/***/ \"./package.json\":\n/*!**********************!*\\\n !*** ./package.json ***!\n \\**********************/\n/*! exports provided: name, version, description, main, types, scripts, repository, keywords, author, license, bugs, homepage, dependencies, devDependencies, default */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"name\\\":\\\"cos-js-sdk-v5\\\",\\\"version\\\":\\\"1.4.21\\\",\\\"description\\\":\\\"JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)\\\",\\\"main\\\":\\\"dist/cos-js-sdk-v5.js\\\",\\\"types\\\":\\\"index.d.ts\\\",\\\"scripts\\\":{\\\"prettier\\\":\\\"prettier --write src demo/demo.js test/test.js server/sts.js index.d.ts\\\",\\\"server\\\":\\\"node server/sts.js\\\",\\\"dev\\\":\\\"cross-env NODE_ENV=development webpack -w --mode=development\\\",\\\"build\\\":\\\"cross-env NODE_ENV=production webpack --mode=production\\\",\\\"cos-auth.min.js\\\":\\\"uglifyjs ./demo/common/cos-auth.js -o ./demo/common/cos-auth.min.js -c -m\\\",\\\"test\\\":\\\"jest --runInBand --coverage\\\"},\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/tencentyun/cos-js-sdk-v5.git\\\"},\\\"keywords\\\":[],\\\"author\\\":\\\"carsonxu\\\",\\\"license\\\":\\\"ISC\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/tencentyun/cos-js-sdk-v5/issues\\\"},\\\"homepage\\\":\\\"https://github.com/tencentyun/cos-js-sdk-v5#readme\\\",\\\"dependencies\\\":{\\\"@xmldom/xmldom\\\":\\\"^0.8.6\\\"},\\\"devDependencies\\\":{\\\"@babel/core\\\":\\\"7.17.9\\\",\\\"@babel/plugin-transform-runtime\\\":\\\"7.18.10\\\",\\\"@babel/preset-env\\\":\\\"7.16.11\\\",\\\"babel-loader\\\":\\\"8.2.5\\\",\\\"body-parser\\\":\\\"^1.18.3\\\",\\\"cross-env\\\":\\\"^5.2.0\\\",\\\"express\\\":\\\"^4.16.4\\\",\\\"jest\\\":\\\"^29.3.1\\\",\\\"jest-environment-jsdom\\\":\\\"^29.3.1\\\",\\\"prettier\\\":\\\"^3.0.1\\\",\\\"qcloud-cos-sts\\\":\\\"^3.0.2\\\",\\\"request\\\":\\\"^2.87.0\\\",\\\"terser-webpack-plugin\\\":\\\"4.2.3\\\",\\\"uglifyjs\\\":\\\"^2.4.11\\\",\\\"webpack\\\":\\\"4.46.0\\\",\\\"webpack-cli\\\":\\\"4.10.0\\\"}}\");\n\n/***/ }),\n\n/***/ \"./src/advance.js\":\n/*!************************!*\\\n !*** ./src/advance.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar session = __webpack_require__(/*! ./session */ \"./src/session.js\");\nvar Async = __webpack_require__(/*! ./async */ \"./src/async.js\");\nvar EventProxy = __webpack_require__(/*! ./event */ \"./src/event.js\").EventProxy;\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\nvar Tracker = __webpack_require__(/*! ./tracker */ \"./src/tracker.js\");\n\n// 文件分块上传全过程,暴露的分块上传接口\nfunction sliceUploadFile(params, callback) {\n var self = this;\n var ep = new EventProxy();\n var TaskId = params.TaskId;\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var Body = params.Body;\n var ChunkSize = params.ChunkSize || params.SliceSize || self.options.ChunkSize;\n var AsyncLimit = params.AsyncLimit;\n var StorageClass = params.StorageClass;\n var ServerSideEncryption = params.ServerSideEncryption;\n var FileSize;\n var onProgress;\n var onHashProgress = params.onHashProgress;\n var tracker = params.tracker;\n tracker && tracker.setParams({\n chunkSize: ChunkSize\n });\n\n // 上传过程中出现错误,返回错误\n ep.on('error', function (err) {\n if (!self._isRunningTask(TaskId)) return;\n err.UploadId = params.UploadData.UploadId || '';\n return callback(err);\n });\n\n // 上传分块完成,开始 uploadSliceComplete 操作\n ep.on('upload_complete', function (UploadCompleteData) {\n var _UploadCompleteData = util.extend({\n UploadId: params.UploadData.UploadId || ''\n }, UploadCompleteData);\n callback(null, _UploadCompleteData);\n });\n\n // 上传分块完成,开始 uploadSliceComplete 操作\n ep.on('upload_slice_complete', function (UploadData) {\n var metaHeaders = {};\n util.each(params.Headers, function (val, k) {\n var shortKey = k.toLowerCase();\n if (shortKey.indexOf('x-cos-meta-') === 0 || shortKey === 'pic-operations') metaHeaders[k] = val;\n });\n uploadSliceComplete.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n UploadId: UploadData.UploadId,\n SliceList: UploadData.SliceList,\n Headers: metaHeaders,\n tracker: tracker\n }, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n session.removeUsing(UploadData.UploadId);\n if (err) {\n onProgress(null, true);\n return ep.emit('error', err);\n }\n session.removeUploadId.call(self, UploadData.UploadId);\n onProgress({\n loaded: FileSize,\n total: FileSize\n }, true);\n ep.emit('upload_complete', data);\n });\n });\n\n // 获取 UploadId 完成,开始上传每个分片\n ep.on('get_upload_data_finish', function (UploadData) {\n // 处理 UploadId 缓存\n var uuid = session.getFileId(Body, params.ChunkSize, Bucket, Key);\n uuid && session.saveUploadId.call(self, uuid, UploadData.UploadId, self.options.UploadIdCacheLimit); // 缓存 UploadId\n session.setUsing(UploadData.UploadId); // 标记 UploadId 为正在使用\n\n // 获取 UploadId\n onProgress(null, true); // 任务状态开始 uploading\n uploadSliceList.call(self, {\n TaskId: TaskId,\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n Body: Body,\n FileSize: FileSize,\n SliceSize: ChunkSize,\n AsyncLimit: AsyncLimit,\n ServerSideEncryption: ServerSideEncryption,\n UploadData: UploadData,\n Headers: params.Headers,\n onProgress: onProgress,\n tracker: tracker\n }, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) {\n onProgress(null, true);\n return ep.emit('error', err);\n }\n ep.emit('upload_slice_complete', data);\n });\n });\n\n // 开始获取文件 UploadId,里面会视情况计算 ETag,并比对,保证文件一致性,也优化上传\n ep.on('get_file_size_finish', function () {\n onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\n if (params.UploadData.UploadId) {\n ep.emit('get_upload_data_finish', params.UploadData);\n } else {\n var _params = util.extend({\n TaskId: TaskId,\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n Headers: params.Headers,\n StorageClass: StorageClass,\n Body: Body,\n FileSize: FileSize,\n SliceSize: ChunkSize,\n onHashProgress: onHashProgress,\n tracker: tracker\n }, params);\n getUploadIdAndPartList.call(self, _params, function (err, UploadData) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) return ep.emit('error', err);\n params.UploadData.UploadId = UploadData.UploadId;\n params.UploadData.PartList = UploadData.PartList;\n ep.emit('get_upload_data_finish', params.UploadData);\n });\n }\n });\n\n // 获取上传文件大小\n FileSize = params.ContentLength;\n delete params.ContentLength;\n !params.Headers && (params.Headers = {});\n util.each(params.Headers, function (item, key) {\n if (key.toLowerCase() === 'content-length') {\n delete params.Headers[key];\n }\n });\n\n // 控制分片大小\n (function () {\n var SIZE = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024 * 2, 1024 * 4, 1024 * 5];\n var AutoChunkSize = 1024 * 1024;\n for (var i = 0; i < SIZE.length; i++) {\n AutoChunkSize = SIZE[i] * 1024 * 1024;\n if (FileSize / AutoChunkSize <= self.options.MaxPartNumber) break;\n }\n params.ChunkSize = params.SliceSize = ChunkSize = Math.max(ChunkSize, AutoChunkSize);\n })();\n\n // 开始上传\n if (FileSize === 0) {\n params.Body = '';\n params.ContentLength = 0;\n params.SkipTask = true;\n self.putObject(params, callback);\n } else {\n ep.emit('get_file_size_finish');\n }\n}\n\n// 获取上传任务的 UploadId\nfunction getUploadIdAndPartList(params, callback) {\n var TaskId = params.TaskId;\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var StorageClass = params.StorageClass;\n var self = this;\n\n // 计算 ETag\n var ETagMap = {};\n var FileSize = params.FileSize;\n var SliceSize = params.SliceSize;\n var SliceCount = Math.ceil(FileSize / SliceSize);\n var FinishSliceCount = 0;\n var FinishSize = 0;\n var onHashProgress = util.throttleOnProgress.call(self, FileSize, params.onHashProgress);\n var getChunkETag = function getChunkETag(PartNumber, callback) {\n var start = SliceSize * (PartNumber - 1);\n var end = Math.min(start + SliceSize, FileSize);\n var ChunkSize = end - start;\n if (ETagMap[PartNumber]) {\n callback(null, {\n PartNumber: PartNumber,\n ETag: ETagMap[PartNumber],\n Size: ChunkSize\n });\n } else {\n util.fileSlice(params.Body, start, end, false, function (chunkItem) {\n util.getFileMd5(chunkItem, function (err, md5) {\n if (err) return callback(util.error(err));\n var ETag = '\"' + md5 + '\"';\n ETagMap[PartNumber] = ETag;\n FinishSliceCount += 1;\n FinishSize += ChunkSize;\n onHashProgress({\n loaded: FinishSize,\n total: FileSize\n });\n callback(null, {\n PartNumber: PartNumber,\n ETag: ETag,\n Size: ChunkSize\n });\n });\n });\n }\n };\n\n // 通过和文件的 md5 对比,判断 UploadId 是否可用\n var isAvailableUploadList = function isAvailableUploadList(PartList, callback) {\n var PartCount = PartList.length;\n // 如果没有分片,通过\n if (PartCount === 0) {\n return callback(null, true);\n }\n // 检查分片数量\n if (PartCount > SliceCount) {\n return callback(null, false);\n }\n // 检查分片大小\n if (PartCount > 1) {\n var PartSliceSize = Math.max(PartList[0].Size, PartList[1].Size);\n if (PartSliceSize !== SliceSize) {\n return callback(null, false);\n }\n }\n // 逐个分片计算并检查 ETag 是否一致\n var next = function next(index) {\n if (index < PartCount) {\n var Part = PartList[index];\n getChunkETag(Part.PartNumber, function (err, chunk) {\n if (chunk && chunk.ETag === Part.ETag && chunk.Size === Part.Size) {\n next(index + 1);\n } else {\n callback(null, false);\n }\n });\n } else {\n callback(null, true);\n }\n };\n next(0);\n };\n var ep = new EventProxy();\n ep.on('error', function (errData) {\n if (!self._isRunningTask(TaskId)) return;\n return callback(errData);\n });\n\n // 存在 UploadId\n ep.on('upload_id_available', function (UploadData) {\n // 转换成 map\n var map = {};\n var list = [];\n util.each(UploadData.PartList, function (item) {\n map[item.PartNumber] = item;\n });\n for (var PartNumber = 1; PartNumber <= SliceCount; PartNumber++) {\n var item = map[PartNumber];\n if (item) {\n item.PartNumber = PartNumber;\n item.Uploaded = true;\n } else {\n item = {\n PartNumber: PartNumber,\n ETag: null,\n Uploaded: false\n };\n }\n list.push(item);\n }\n UploadData.PartList = list;\n callback(null, UploadData);\n });\n\n // 不存在 UploadId, 初始化生成 UploadId\n ep.on('no_available_upload_id', function () {\n if (!self._isRunningTask(TaskId)) return;\n var _params = util.extend({\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n Query: util.clone(params.Query),\n StorageClass: StorageClass,\n Body: params.Body,\n calledBySdk: 'sliceUploadFile',\n tracker: params.tracker\n }, params);\n var headers = util.clone(params.Headers);\n delete headers['x-cos-mime-limit'];\n _params.Headers = headers;\n self.multipartInit(_params, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) return ep.emit('error', err);\n var UploadId = data.UploadId;\n if (!UploadId) {\n return callback(util.error(new Error('no such upload id')));\n }\n ep.emit('upload_id_available', {\n UploadId: UploadId,\n PartList: []\n });\n });\n });\n\n // 如果已存在 UploadId,找一个可以用的 UploadId\n ep.on('has_and_check_upload_id', function (UploadIdList) {\n // 串行地,找一个内容一致的 UploadId\n UploadIdList = UploadIdList.reverse();\n Async.eachLimit(UploadIdList, 1, function (UploadId, asyncCallback) {\n if (!self._isRunningTask(TaskId)) return;\n // 如果正在上传,跳过\n if (session.using[UploadId]) {\n asyncCallback(); // 检查下一个 UploadId\n return;\n }\n // 判断 UploadId 是否可用\n wholeMultipartListPart.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n UploadId: UploadId,\n tracker: params.tracker\n }, function (err, PartListData) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) {\n session.removeUsing(UploadId);\n return ep.emit('error', err);\n }\n var PartList = PartListData.PartList;\n PartList.forEach(function (item) {\n item.PartNumber *= 1;\n item.Size *= 1;\n item.ETag = item.ETag || '';\n });\n isAvailableUploadList(PartList, function (err, isAvailable) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) return ep.emit('error', err);\n if (isAvailable) {\n asyncCallback({\n UploadId: UploadId,\n PartList: PartList\n }); // 马上结束\n } else {\n asyncCallback(); // 检查下一个 UploadId\n }\n });\n });\n }, function (AvailableUploadData) {\n if (!self._isRunningTask(TaskId)) return;\n onHashProgress(null, true);\n if (AvailableUploadData && AvailableUploadData.UploadId) {\n ep.emit('upload_id_available', AvailableUploadData);\n } else {\n ep.emit('no_available_upload_id');\n }\n });\n });\n\n // 在本地缓存找可用的 UploadId\n ep.on('seek_local_avail_upload_id', function (RemoteUploadIdList) {\n // 在本地找可用的 UploadId\n var uuid = session.getFileId(params.Body, params.ChunkSize, Bucket, Key);\n var LocalUploadIdList = session.getUploadIdList.call(self, uuid);\n if (!uuid || !LocalUploadIdList) {\n ep.emit('has_and_check_upload_id', RemoteUploadIdList);\n return;\n }\n var next = function next(index) {\n // 如果本地找不到可用 UploadId,再一个个遍历校验远端\n if (index >= LocalUploadIdList.length) {\n ep.emit('has_and_check_upload_id', RemoteUploadIdList);\n return;\n }\n var UploadId = LocalUploadIdList[index];\n // 如果不在远端 UploadId 列表里,跳过并删除\n if (!util.isInArray(RemoteUploadIdList, UploadId)) {\n session.removeUploadId.call(self, UploadId);\n next(index + 1);\n return;\n }\n // 如果正在上传,跳过\n if (session.using[UploadId]) {\n next(index + 1);\n return;\n }\n // 判断 UploadId 是否存在线上\n wholeMultipartListPart.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n UploadId: UploadId,\n tracker: params.tracker\n }, function (err, PartListData) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) {\n // 如果 UploadId 获取会出错,跳过并删除\n session.removeUploadId.call(self, UploadId);\n next(index + 1);\n } else {\n // 找到可用 UploadId\n ep.emit('upload_id_available', {\n UploadId: UploadId,\n PartList: PartListData.PartList\n });\n }\n });\n };\n next(0);\n });\n\n // 获取线上 UploadId 列表\n ep.on('get_remote_upload_id_list', function () {\n // 获取符合条件的 UploadId 列表,因为同一个文件可以有多个上传任务。\n wholeMultipartList.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n tracker: params.tracker\n }, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) return ep.emit('error', err);\n // 整理远端 UploadId 列表\n var RemoteUploadIdList = util.filter(data.UploadList, function (item) {\n return item.Key === Key && (!StorageClass || item.StorageClass.toUpperCase() === StorageClass.toUpperCase());\n }).reverse().map(function (item) {\n return item.UploadId || item.UploadID;\n });\n if (RemoteUploadIdList.length) {\n ep.emit('seek_local_avail_upload_id', RemoteUploadIdList);\n } else {\n // 远端没有 UploadId,清理缓存的 UploadId\n var uuid = session.getFileId(params.Body, params.ChunkSize, Bucket, Key),\n LocalUploadIdList;\n if (uuid && (LocalUploadIdList = session.getUploadIdList.call(self, uuid))) {\n util.each(LocalUploadIdList, function (UploadId) {\n session.removeUploadId.call(self, UploadId);\n });\n }\n ep.emit('no_available_upload_id');\n }\n });\n });\n\n // 开始找可用 UploadId\n ep.emit('get_remote_upload_id_list');\n}\n\n// 获取符合条件的全部上传任务 (条件包括 Bucket, Region, Prefix)\nfunction wholeMultipartList(params, callback) {\n var self = this;\n var UploadList = [];\n var sendParams = {\n Bucket: params.Bucket,\n Region: params.Region,\n Prefix: params.Key,\n calledBySdk: params.calledBySdk || 'sliceUploadFile',\n tracker: params.tracker\n };\n var next = function next() {\n self.multipartList(sendParams, function (err, data) {\n if (err) return callback(err);\n UploadList.push.apply(UploadList, data.Upload || []);\n if (data.IsTruncated === 'true') {\n // 列表不完整\n sendParams.KeyMarker = data.NextKeyMarker;\n sendParams.UploadIdMarker = data.NextUploadIdMarker;\n next();\n } else {\n callback(null, {\n UploadList: UploadList\n });\n }\n });\n };\n next();\n}\n\n// 获取指定上传任务的分块列表\nfunction wholeMultipartListPart(params, callback) {\n var self = this;\n var PartList = [];\n var sendParams = {\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n UploadId: params.UploadId,\n calledBySdk: 'sliceUploadFile',\n tracker: params.tracker\n };\n var next = function next() {\n self.multipartListPart(sendParams, function (err, data) {\n if (err) return callback(err);\n PartList.push.apply(PartList, data.Part || []);\n if (data.IsTruncated === 'true') {\n // 列表不完整\n sendParams.PartNumberMarker = data.NextPartNumberMarker;\n next();\n } else {\n callback(null, {\n PartList: PartList\n });\n }\n });\n };\n next();\n}\n\n// 上传文件分块,包括\n/*\r\n UploadId (上传任务编号)\r\n AsyncLimit (并发量),\r\n SliceList (上传的分块数组),\r\n FilePath (本地文件的位置),\r\n SliceSize (文件分块大小)\r\n FileSize (文件大小)\r\n onProgress (上传成功之后的回调函数)\r\n */\nfunction uploadSliceList(params, cb) {\n var self = this;\n var TaskId = params.TaskId;\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var UploadData = params.UploadData;\n var FileSize = params.FileSize;\n var SliceSize = params.SliceSize;\n var ChunkParallel = Math.min(params.AsyncLimit || self.options.ChunkParallelLimit || 1, 256);\n var Body = params.Body;\n var SliceCount = Math.ceil(FileSize / SliceSize);\n var FinishSize = 0;\n var ServerSideEncryption = params.ServerSideEncryption;\n var Headers = params.Headers;\n var needUploadSlices = util.filter(UploadData.PartList, function (SliceItem) {\n if (SliceItem['Uploaded']) {\n FinishSize += SliceItem['PartNumber'] >= SliceCount ? FileSize % SliceSize || SliceSize : SliceSize;\n }\n return !SliceItem['Uploaded'];\n });\n var _onProgress2 = params.onProgress;\n Async.eachLimit(needUploadSlices, ChunkParallel, function (SliceItem, asyncCallback) {\n if (!self._isRunningTask(TaskId)) return;\n var PartNumber = SliceItem['PartNumber'];\n var currentSize = Math.min(FileSize, SliceItem['PartNumber'] * SliceSize) - (SliceItem['PartNumber'] - 1) * SliceSize;\n var preAddSize = 0;\n uploadSliceItem.call(self, {\n TaskId: TaskId,\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n SliceSize: SliceSize,\n FileSize: FileSize,\n PartNumber: PartNumber,\n ServerSideEncryption: ServerSideEncryption,\n Body: Body,\n UploadData: UploadData,\n Headers: Headers,\n onProgress: function onProgress(data) {\n FinishSize += data.loaded - preAddSize;\n preAddSize = data.loaded;\n _onProgress2({\n loaded: FinishSize,\n total: FileSize\n });\n },\n tracker: params.tracker\n }, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n if (!err && !data.ETag) err = 'get ETag error, please add \"ETag\" to CORS ExposeHeader setting.( 获取ETag失败,请在CORS ExposeHeader设置中添加ETag,请参考文档:https://cloud.tencent.com/document/product/436/13318 )';\n if (err) {\n FinishSize -= preAddSize;\n } else {\n FinishSize += currentSize - preAddSize;\n SliceItem.ETag = data.ETag;\n }\n _onProgress2({\n loaded: FinishSize,\n total: FileSize\n });\n asyncCallback(err || null, data);\n });\n }, function (err) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) return cb(err);\n cb(null, {\n UploadId: UploadData.UploadId,\n SliceList: UploadData.PartList\n });\n });\n}\n\n// 上传指定分片\nfunction uploadSliceItem(params, callback) {\n var self = this;\n var TaskId = params.TaskId;\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var FileSize = params.FileSize;\n var FileBody = params.Body;\n var PartNumber = params.PartNumber * 1;\n var SliceSize = params.SliceSize;\n var ServerSideEncryption = params.ServerSideEncryption;\n var UploadData = params.UploadData;\n var Headers = params.Headers || {};\n var ChunkRetryTimes = self.options.ChunkRetryTimes + 1;\n var start = SliceSize * (PartNumber - 1);\n var ContentLength = SliceSize;\n var end = start + SliceSize;\n if (end > FileSize) {\n end = FileSize;\n ContentLength = end - start;\n }\n var headersWhiteList = ['x-cos-traffic-limit', 'x-cos-mime-limit'];\n var headers = {};\n util.each(Headers, function (v, k) {\n if (headersWhiteList.indexOf(k) > -1) {\n headers[k] = v;\n }\n });\n var PartItem = UploadData.PartList[PartNumber - 1];\n Async.retry(ChunkRetryTimes, function (tryCallback) {\n if (!self._isRunningTask(TaskId)) return;\n util.fileSlice(FileBody, start, end, true, function (Body) {\n self.multipartUpload({\n TaskId: TaskId,\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n ContentLength: ContentLength,\n PartNumber: PartNumber,\n UploadId: UploadData.UploadId,\n ServerSideEncryption: ServerSideEncryption,\n Body: Body,\n Headers: headers,\n onProgress: params.onProgress,\n calledBySdk: 'sliceUploadFile',\n tracker: params.tracker\n }, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n if (err) return tryCallback(err);\n PartItem.Uploaded = true;\n return tryCallback(null, data);\n });\n });\n }, function (err, data) {\n if (!self._isRunningTask(TaskId)) return;\n return callback(err, data);\n });\n}\n\n// 完成分块上传\nfunction uploadSliceComplete(params, callback) {\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var UploadId = params.UploadId;\n var SliceList = params.SliceList;\n var self = this;\n var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\n var Headers = params.Headers;\n var Parts = SliceList.map(function (item) {\n return {\n PartNumber: item.PartNumber,\n ETag: item.ETag\n };\n });\n // 完成上传的请求也做重试\n Async.retry(ChunkRetryTimes, function (tryCallback) {\n self.multipartComplete({\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n UploadId: UploadId,\n Parts: Parts,\n Headers: Headers,\n calledBySdk: 'sliceUploadFile',\n tracker: params.tracker\n }, tryCallback);\n }, function (err, data) {\n callback(err, data);\n });\n}\n\n// 抛弃分块上传任务\n/*\r\n AsyncLimit (抛弃上传任务的并发量),\r\n UploadId (上传任务的编号,当 Level 为 task 时候需要)\r\n Level (抛弃分块上传任务的级别,task : 抛弃指定的上传任务,file : 抛弃指定的文件对应的上传任务,其他值 :抛弃指定Bucket 的全部上传任务)\r\n */\nfunction abortUploadTask(params, callback) {\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var UploadId = params.UploadId;\n var Level = params.Level || 'task';\n var AsyncLimit = params.AsyncLimit;\n var self = this;\n var ep = new EventProxy();\n ep.on('error', function (errData) {\n return callback(errData);\n });\n\n // 已经获取到需要抛弃的任务列表\n ep.on('get_abort_array', function (AbortArray) {\n abortUploadTaskArray.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n Headers: params.Headers,\n AsyncLimit: AsyncLimit,\n AbortArray: AbortArray\n }, callback);\n });\n if (Level === 'bucket') {\n // Bucket 级别的任务抛弃,抛弃该 Bucket 下的全部上传任务\n wholeMultipartList.call(self, {\n Bucket: Bucket,\n Region: Region,\n calledBySdk: 'abortUploadTask'\n }, function (err, data) {\n if (err) return callback(err);\n ep.emit('get_abort_array', data.UploadList || []);\n });\n } else if (Level === 'file') {\n // 文件级别的任务抛弃,抛弃该文件的全部上传任务\n if (!Key) return callback(util.error(new Error('abort_upload_task_no_key')));\n wholeMultipartList.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n calledBySdk: 'abortUploadTask'\n }, function (err, data) {\n if (err) return callback(err);\n ep.emit('get_abort_array', data.UploadList || []);\n });\n } else if (Level === 'task') {\n // 单个任务级别的任务抛弃,抛弃指定 UploadId 的上传任务\n if (!UploadId) return callback(util.error(new Error('abort_upload_task_no_id')));\n if (!Key) return callback(util.error(new Error('abort_upload_task_no_key')));\n ep.emit('get_abort_array', [{\n Key: Key,\n UploadId: UploadId\n }]);\n } else {\n return callback(util.error(new Error('abort_unknown_level')));\n }\n}\n\n// 批量抛弃分块上传任务\nfunction abortUploadTaskArray(params, callback) {\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var AbortArray = params.AbortArray;\n var AsyncLimit = params.AsyncLimit || 1;\n var self = this;\n var index = 0;\n var resultList = new Array(AbortArray.length);\n Async.eachLimit(AbortArray, AsyncLimit, function (AbortItem, nextItem) {\n var eachIndex = index;\n if (Key && Key !== AbortItem.Key) {\n resultList[eachIndex] = {\n error: {\n KeyNotMatch: true\n }\n };\n nextItem(null);\n return;\n }\n var UploadId = AbortItem.UploadId || AbortItem.UploadID;\n self.multipartAbort({\n Bucket: Bucket,\n Region: Region,\n Key: AbortItem.Key,\n Headers: params.Headers,\n UploadId: UploadId\n }, function (err) {\n var task = {\n Bucket: Bucket,\n Region: Region,\n Key: AbortItem.Key,\n UploadId: UploadId\n };\n resultList[eachIndex] = {\n error: err,\n task: task\n };\n nextItem(null);\n });\n index++;\n }, function (err) {\n if (err) return callback(err);\n var successList = [];\n var errorList = [];\n for (var i = 0, len = resultList.length; i < len; i++) {\n var item = resultList[i];\n if (item['task']) {\n if (item['error']) {\n errorList.push(item['task']);\n } else {\n successList.push(item['task']);\n }\n }\n }\n return callback(null, {\n successList: successList,\n errorList: errorList\n });\n });\n}\n\n// 高级上传\nfunction uploadFile(params, callback) {\n var self = this;\n\n // 判断多大的文件使用分片上传\n var SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;\n var taskList = [];\n var Body = params.Body;\n var FileSize = Body.size || Body.length || 0;\n var fileInfo = {\n TaskId: ''\n };\n\n // 上传链路\n if (self.options.EnableTracker) {\n var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');\n params.tracker = new Tracker({\n bucket: params.Bucket,\n region: params.Region,\n apiName: 'uploadFile',\n fileKey: params.Key,\n fileSize: FileSize,\n accelerate: accelerate,\n deepTracker: self.options.DeepTracker,\n customId: self.options.CustomId,\n delay: self.options.TrackerDelay\n });\n }\n\n // 整理 option,用于返回给回调\n util.each(params, function (v, k) {\n if (_typeof(v) !== 'object' && typeof v !== 'function') {\n fileInfo[k] = v;\n }\n });\n\n // 处理文件 TaskReady\n var _onTaskReady = params.onTaskReady;\n var onTaskReady = function onTaskReady(tid) {\n fileInfo.TaskId = tid;\n _onTaskReady && _onTaskReady(tid);\n };\n params.onTaskReady = onTaskReady;\n\n // 添加上传任务,超过阈值使用分块上传,小于等于则简单上传\n var api = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject';\n\n // 处理文件完成\n var _onFileFinish = params.onFileFinish;\n var onFileFinish = function onFileFinish(err, data) {\n // 格式化上报参数并上报\n params.tracker && params.tracker.formatResult(err, data);\n _onFileFinish && _onFileFinish(err, data, fileInfo);\n callback && callback(err, data);\n };\n taskList.push({\n api: api,\n params: params,\n callback: onFileFinish\n });\n self._addTasks(taskList);\n}\n\n// 批量上传文件\nfunction uploadFiles(params, callback) {\n var self = this;\n\n // 判断多大的文件使用分片上传\n var SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;\n\n // 汇总返回进度\n var TotalSize = 0;\n var TotalFinish = 0;\n var onTotalProgress = util.throttleOnProgress.call(self, TotalFinish, params.onProgress);\n\n // 汇总返回回调\n var unFinishCount = params.files.length;\n var _onTotalFileFinish = params.onFileFinish;\n var resultList = Array(unFinishCount);\n var onTotalFileFinish = function onTotalFileFinish(err, data, options) {\n onTotalProgress(null, true);\n _onTotalFileFinish && _onTotalFileFinish(err, data, options);\n resultList[options.Index] = {\n options: options,\n error: err,\n data: data\n };\n if (--unFinishCount <= 0 && callback) {\n callback(null, {\n files: resultList\n });\n }\n };\n\n // 开始处理每个文件\n var taskList = [];\n util.each(params.files, function (fileParams, index) {\n (function () {\n // 对齐 nodejs 缩进\n\n var Body = fileParams.Body;\n var FileSize = Body.size || Body.length || 0;\n var fileInfo = {\n Index: index,\n TaskId: ''\n };\n\n // 如果 批量上传的 Key 是 / 开头,强制去掉第一个 /\n if (!self.options.UseRawKey && fileParams.Key && fileParams.Key.substr(0, 1) === '/') {\n fileParams.Key = fileParams.Key.substr(1);\n }\n\n // 更新文件总大小\n TotalSize += FileSize;\n\n // 单个文件上传链路\n if (self.options.EnableTracker) {\n var accelerate = self.options.UseAccelerate || typeof self.options.Domain === 'string' && self.options.Domain.includes('accelerate.');\n fileParams.tracker = new Tracker({\n bucket: fileParams.Bucket,\n region: fileParams.Region,\n apiName: 'uploadFiles',\n fileKey: fileParams.Key,\n fileSize: FileSize,\n accelerate: accelerate,\n deepTracker: self.options.DeepTracker,\n customId: self.options.CustomId,\n delay: self.options.TrackerDelay\n });\n }\n\n // 整理 option,用于返回给回调\n util.each(fileParams, function (v, k) {\n if (_typeof(v) !== 'object' && typeof v !== 'function') {\n fileInfo[k] = v;\n }\n });\n\n // 处理单个文件 TaskReady\n var _onTaskReady = fileParams.onTaskReady;\n var onTaskReady = function onTaskReady(tid) {\n fileInfo.TaskId = tid;\n _onTaskReady && _onTaskReady(tid);\n };\n fileParams.onTaskReady = onTaskReady;\n\n // 处理单个文件进度\n var PreAddSize = 0;\n var _onProgress = fileParams.onProgress;\n var onProgress = function onProgress(info) {\n TotalFinish = TotalFinish - PreAddSize + info.loaded;\n PreAddSize = info.loaded;\n _onProgress && _onProgress(info);\n onTotalProgress({\n loaded: TotalFinish,\n total: TotalSize\n });\n };\n fileParams.onProgress = onProgress;\n\n // 添加上传任务\n var api = FileSize > SliceSize ? 'sliceUploadFile' : 'putObject';\n\n // 处理单个文件完成\n var _onFileFinish = fileParams.onFileFinish;\n var onFileFinish = function onFileFinish(err, data) {\n // 格式化上报参数并上报\n fileParams.tracker && fileParams.tracker.formatResult(err, data);\n _onFileFinish && _onFileFinish(err, data);\n onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);\n };\n taskList.push({\n api: api,\n params: fileParams,\n callback: onFileFinish\n });\n })();\n });\n self._addTasks(taskList);\n}\n\n// 分片复制文件\nfunction sliceCopyFile(params, callback) {\n var ep = new EventProxy();\n var self = this;\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var CopySource = params.CopySource;\n var m = util.getSourceParams.call(this, CopySource);\n if (!m) {\n callback(util.error(new Error('CopySource format error')));\n return;\n }\n var SourceBucket = m.Bucket;\n var SourceRegion = m.Region;\n var SourceKey = decodeURIComponent(m.Key);\n var CopySliceSize = params.CopySliceSize === undefined ? self.options.CopySliceSize : params.CopySliceSize;\n CopySliceSize = Math.max(0, CopySliceSize);\n var ChunkSize = params.CopyChunkSize || this.options.CopyChunkSize;\n var ChunkParallel = this.options.CopyChunkParallelLimit;\n var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\n var ChunkCount = 0;\n var FinishSize = 0;\n var FileSize;\n var onProgress;\n var SourceResHeaders = {};\n var SourceHeaders = {};\n var TargetHeader = {};\n\n // 分片复制完成,开始 multipartComplete 操作\n ep.on('copy_slice_complete', function (UploadData) {\n var metaHeaders = {};\n util.each(params.Headers, function (val, k) {\n if (k.toLowerCase().indexOf('x-cos-meta-') === 0) metaHeaders[k] = val;\n });\n var Parts = util.map(UploadData.PartList, function (item) {\n return {\n PartNumber: item.PartNumber,\n ETag: item.ETag\n };\n });\n // 完成上传的请求也做重试\n Async.retry(ChunkRetryTimes, function (tryCallback) {\n self.multipartComplete({\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n UploadId: UploadData.UploadId,\n Parts: Parts,\n calledBySdk: 'sliceCopyFile'\n }, tryCallback);\n }, function (err, data) {\n session.removeUsing(UploadData.UploadId); // 标记 UploadId 没被使用了,因为复制没提供重试,所以只要出错,就是 UploadId 停用了。\n if (err) {\n onProgress(null, true);\n return callback(err);\n }\n session.removeUploadId(UploadData.UploadId);\n onProgress({\n loaded: FileSize,\n total: FileSize\n }, true);\n callback(null, data);\n });\n });\n ep.on('get_copy_data_finish', function (UploadData) {\n // 处理 UploadId 缓存\n var uuid = session.getCopyFileId(CopySource, SourceResHeaders, ChunkSize, Bucket, Key);\n uuid && session.saveUploadId(uuid, UploadData.UploadId, self.options.UploadIdCacheLimit); // 缓存 UploadId\n session.setUsing(UploadData.UploadId); // 标记 UploadId 为正在使用\n\n var needCopySlices = util.filter(UploadData.PartList, function (SliceItem) {\n if (SliceItem['Uploaded']) {\n FinishSize += SliceItem['PartNumber'] >= ChunkCount ? FileSize % ChunkSize || ChunkSize : ChunkSize;\n }\n return !SliceItem['Uploaded'];\n });\n Async.eachLimit(needCopySlices, ChunkParallel, function (SliceItem, asyncCallback) {\n var PartNumber = SliceItem.PartNumber;\n var CopySourceRange = SliceItem.CopySourceRange;\n var currentSize = SliceItem.end - SliceItem.start;\n Async.retry(ChunkRetryTimes, function (tryCallback) {\n copySliceItem.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n CopySource: CopySource,\n UploadId: UploadData.UploadId,\n PartNumber: PartNumber,\n CopySourceRange: CopySourceRange\n }, tryCallback);\n }, function (err, data) {\n if (err) return asyncCallback(err);\n FinishSize += currentSize;\n onProgress({\n loaded: FinishSize,\n total: FileSize\n });\n SliceItem.ETag = data.ETag;\n asyncCallback(err || null, data);\n });\n }, function (err) {\n if (err) {\n session.removeUsing(UploadData.UploadId); // 标记 UploadId 没被使用了,因为复制没提供重试,所以只要出错,就是 UploadId 停用了。\n onProgress(null, true);\n return callback(err);\n }\n ep.emit('copy_slice_complete', UploadData);\n });\n });\n ep.on('get_chunk_size_finish', function () {\n var createNewUploadId = function createNewUploadId() {\n self.multipartInit({\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n Headers: TargetHeader\n }, function (err, data) {\n if (err) return callback(err);\n params.UploadId = data.UploadId;\n ep.emit('get_copy_data_finish', {\n UploadId: params.UploadId,\n PartList: params.PartList\n });\n });\n };\n\n // 在本地找可用的 UploadId\n var uuid = session.getCopyFileId(CopySource, SourceResHeaders, ChunkSize, Bucket, Key);\n var LocalUploadIdList = session.getUploadIdList(uuid);\n if (!uuid || !LocalUploadIdList) return createNewUploadId();\n var next = function next(index) {\n // 如果本地找不到可用 UploadId,再一个个遍历校验远端\n if (index >= LocalUploadIdList.length) return createNewUploadId();\n var UploadId = LocalUploadIdList[index];\n // 如果正在被使用,跳过\n if (session.using[UploadId]) return next(index + 1);\n // 判断 UploadId 是否存在线上\n wholeMultipartListPart.call(self, {\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n UploadId: UploadId\n }, function (err, PartListData) {\n if (err) {\n // 如果 UploadId 获取会出错,跳过并删除\n session.removeUploadId(UploadId);\n next(index + 1);\n } else {\n // 如果异步回来 UploadId 已经被用了,也跳过\n if (session.using[UploadId]) return next(index + 1);\n // 找到可用 UploadId\n var finishETagMap = {};\n var offset = 0;\n util.each(PartListData.PartList, function (PartItem) {\n var size = parseInt(PartItem.Size);\n var end = offset + size - 1;\n finishETagMap[PartItem.PartNumber + '|' + offset + '|' + end] = PartItem.ETag;\n offset += size;\n });\n util.each(params.PartList, function (PartItem) {\n var ETag = finishETagMap[PartItem.PartNumber + '|' + PartItem.start + '|' + PartItem.end];\n if (ETag) {\n PartItem.ETag = ETag;\n PartItem.Uploaded = true;\n }\n });\n ep.emit('get_copy_data_finish', {\n UploadId: UploadId,\n PartList: params.PartList\n });\n }\n });\n };\n next(0);\n });\n ep.on('get_file_size_finish', function () {\n // 控制分片大小\n (function () {\n var SIZE = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024 * 2, 1024 * 4, 1024 * 5];\n var AutoChunkSize = 1024 * 1024;\n for (var i = 0; i < SIZE.length; i++) {\n AutoChunkSize = SIZE[i] * 1024 * 1024;\n if (FileSize / AutoChunkSize <= self.options.MaxPartNumber) break;\n }\n params.ChunkSize = ChunkSize = Math.max(ChunkSize, AutoChunkSize);\n ChunkCount = Math.ceil(FileSize / ChunkSize);\n var list = [];\n for (var partNumber = 1; partNumber <= ChunkCount; partNumber++) {\n var start = (partNumber - 1) * ChunkSize;\n var end = partNumber * ChunkSize < FileSize ? partNumber * ChunkSize - 1 : FileSize - 1;\n var item = {\n PartNumber: partNumber,\n start: start,\n end: end,\n CopySourceRange: 'bytes=' + start + '-' + end\n };\n list.push(item);\n }\n params.PartList = list;\n })();\n if (params.Headers['x-cos-metadata-directive'] === 'Replaced') {\n TargetHeader = params.Headers;\n } else {\n TargetHeader = SourceHeaders;\n }\n TargetHeader['x-cos-storage-class'] = params.Headers['x-cos-storage-class'] || SourceHeaders['x-cos-storage-class'];\n TargetHeader = util.clearKey(TargetHeader);\n /**\r\n * 对于归档存储的对象,如果未恢复副本,则不允许 Copy\r\n */\n if (SourceHeaders['x-cos-storage-class'] === 'ARCHIVE' || SourceHeaders['x-cos-storage-class'] === 'DEEP_ARCHIVE') {\n var restoreHeader = SourceHeaders['x-cos-restore'];\n if (!restoreHeader || restoreHeader === 'ongoing-request=\"true\"') {\n callback(util.error(new Error('Unrestored archive object is not allowed to be copied')));\n return;\n }\n }\n /**\r\n * 去除一些无用的头部,规避 multipartInit 出错\r\n * 这些头部通常是在 putObjectCopy 时才使用\r\n */\n delete TargetHeader['x-cos-copy-source'];\n delete TargetHeader['x-cos-metadata-directive'];\n delete TargetHeader['x-cos-copy-source-If-Modified-Since'];\n delete TargetHeader['x-cos-copy-source-If-Unmodified-Since'];\n delete TargetHeader['x-cos-copy-source-If-Match'];\n delete TargetHeader['x-cos-copy-source-If-None-Match'];\n ep.emit('get_chunk_size_finish');\n });\n\n // 获取远端复制源文件的大小\n self.headObject({\n Bucket: SourceBucket,\n Region: SourceRegion,\n Key: SourceKey\n }, function (err, data) {\n if (err) {\n if (err.statusCode && err.statusCode === 404) {\n callback(util.error(err, {\n ErrorStatus: SourceKey + ' Not Exist'\n }));\n } else {\n callback(err);\n }\n return;\n }\n FileSize = params.FileSize = data.headers['content-length'];\n if (FileSize === undefined || !FileSize) {\n callback(util.error(new Error('get Content-Length error, please add \"Content-Length\" to CORS ExposeHeader setting.( 获取Content-Length失败,请在CORS ExposeHeader设置中添加Content-Length,请参考文档:https://cloud.tencent.com/document/product/436/13318 )')));\n return;\n }\n onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\n\n // 开始上传\n if (FileSize <= CopySliceSize) {\n if (!params.Headers['x-cos-metadata-directive']) {\n params.Headers['x-cos-metadata-directive'] = 'Copy';\n }\n self.putObjectCopy(params, function (err, data) {\n if (err) {\n onProgress(null, true);\n return callback(err);\n }\n onProgress({\n loaded: FileSize,\n total: FileSize\n }, true);\n callback(err, data);\n });\n } else {\n var resHeaders = data.headers;\n SourceResHeaders = resHeaders;\n SourceHeaders = {\n 'Cache-Control': resHeaders['cache-control'],\n 'Content-Disposition': resHeaders['content-disposition'],\n 'Content-Encoding': resHeaders['content-encoding'],\n 'Content-Type': resHeaders['content-type'],\n Expires: resHeaders['expires'],\n 'x-cos-storage-class': resHeaders['x-cos-storage-class']\n };\n util.each(resHeaders, function (v, k) {\n var metaPrefix = 'x-cos-meta-';\n if (k.indexOf(metaPrefix) === 0 && k.length > metaPrefix.length) {\n SourceHeaders[k] = v;\n }\n });\n ep.emit('get_file_size_finish');\n }\n });\n}\n\n// 复制指定分片\nfunction copySliceItem(params, callback) {\n var TaskId = params.TaskId;\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var CopySource = params.CopySource;\n var UploadId = params.UploadId;\n var PartNumber = params.PartNumber * 1;\n var CopySourceRange = params.CopySourceRange;\n var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\n var self = this;\n Async.retry(ChunkRetryTimes, function (tryCallback) {\n self.uploadPartCopy({\n TaskId: TaskId,\n Bucket: Bucket,\n Region: Region,\n Key: Key,\n CopySource: CopySource,\n UploadId: UploadId,\n PartNumber: PartNumber,\n CopySourceRange: CopySourceRange\n }, function (err, data) {\n tryCallback(err || null, data);\n });\n }, function (err, data) {\n return callback(err, data);\n });\n}\nvar API_MAP = {\n sliceUploadFile: sliceUploadFile,\n abortUploadTask: abortUploadTask,\n uploadFile: uploadFile,\n uploadFiles: uploadFiles,\n sliceCopyFile: sliceCopyFile\n};\nmodule.exports.init = function (COS, task) {\n task.transferToTaskMethod(API_MAP, 'sliceUploadFile');\n util.each(API_MAP, function (fn, apiName) {\n COS.prototype[apiName] = util.apiWrapper(apiName, fn);\n });\n};\n\n/***/ }),\n\n/***/ \"./src/async.js\":\n/*!**********************!*\\\n !*** ./src/async.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar eachLimit = function eachLimit(arr, limit, iterator, callback) {\n callback = callback || function () {};\n if (!arr.length || limit <= 0) {\n return callback();\n }\n var completed = 0;\n var started = 0;\n var running = 0;\n (function replenish() {\n if (completed >= arr.length) {\n return callback();\n }\n while (running < limit && started < arr.length) {\n started += 1;\n running += 1;\n iterator(arr[started - 1], function (err) {\n if (err) {\n callback(err);\n callback = function callback() {};\n } else {\n completed += 1;\n running -= 1;\n if (completed >= arr.length) {\n callback();\n } else {\n replenish();\n }\n }\n });\n }\n })();\n};\nvar retry = function retry(times, iterator, callback) {\n var next = function next(index) {\n iterator(function (err, data) {\n if (err && index < times) {\n next(index + 1);\n } else {\n callback(err, data);\n }\n });\n };\n if (times < 1) {\n callback();\n } else {\n next(1);\n }\n};\nvar async = {\n eachLimit: eachLimit,\n retry: retry\n};\nmodule.exports = async;\n\n/***/ }),\n\n/***/ \"./src/base.js\":\n/*!*********************!*\\\n !*** ./src/base.js ***!\n \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar REQUEST = __webpack_require__(/*! ../lib/request */ \"./lib/request.js\");\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\n\n// Bucket 相关\n\n/**\r\n * 获取用户的 bucket 列表\r\n * @param {Object} params 回调函数,必须,下面为参数列表\r\n * 无特殊参数\r\n * @param {Function} callback 回调函数,必须\r\n */\nfunction getService(params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n var protocol = this.options.Protocol || (util.isBrowser && (typeof location === \"undefined\" ? \"undefined\" : _typeof(location)) === 'object' && location.protocol === 'http:' ? 'http:' : 'https:');\n var domain = this.options.ServiceDomain;\n var appId = params.AppId || this.options.appId;\n var region = params.Region;\n if (domain) {\n domain = domain.replace(/\\{\\{AppId\\}\\}/gi, appId || '').replace(/\\{\\{Region\\}\\}/gi, region || '').replace(/\\{\\{.*?\\}\\}/gi, '');\n if (!/^[a-zA-Z]+:\\/\\//.test(domain)) {\n domain = protocol + '//' + domain;\n }\n if (domain.slice(-1) === '/') {\n domain = domain.slice(0, -1);\n }\n } else if (region) {\n domain = protocol + '//cos.' + region + '.myqcloud.com';\n } else {\n domain = protocol + '//service.cos.myqcloud.com';\n }\n var SignHost = '';\n var standardHost = region ? 'cos.' + region + '.myqcloud.com' : 'service.cos.myqcloud.com';\n var urlHost = domain.replace(/^https?:\\/\\/([^/]+)(\\/.*)?$/, '$1');\n if (standardHost === urlHost) SignHost = standardHost;\n submitRequest.call(this, {\n Action: 'name/cos:GetService',\n url: domain,\n method: 'GET',\n headers: params.Headers,\n SignHost: SignHost\n }, function (err, data) {\n if (err) return callback(err);\n var buckets = data && data.ListAllMyBucketsResult && data.ListAllMyBucketsResult.Buckets && data.ListAllMyBucketsResult.Buckets.Bucket || [];\n buckets = util.isArray(buckets) ? buckets : [buckets];\n var owner = data && data.ListAllMyBucketsResult && data.ListAllMyBucketsResult.Owner || {};\n callback(null, {\n Buckets: buckets,\n Owner: owner,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 创建 Bucket,并初始化访问权限\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.ACL 用户自定义文件权限,可以设置:private,public-read;默认值:private,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读的权限,格式x-cos-grant-read: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantWrite 赋予被授权者写的权限,格式x-cos-grant-write: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者读写权限,格式x-cos-grant-full-control: uin=\" \",uin=\" \",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {String} data.Location 操作地址\r\n */\nfunction putBucket(params, callback) {\n var self = this;\n var xml = '';\n if (params['BucketAZConfig']) {\n var CreateBucketConfiguration = {\n BucketAZConfig: params.BucketAZConfig\n };\n xml = util.json2xml({\n CreateBucketConfiguration: CreateBucketConfiguration\n });\n }\n submitRequest.call(this, {\n Action: 'name/cos:PutBucket',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n body: xml\n }, function (err, data) {\n if (err) return callback(err);\n var url = getUrl({\n protocol: self.options.Protocol,\n domain: self.options.Domain,\n bucket: params.Bucket,\n region: params.Region,\n isLocation: true\n });\n callback(null, {\n Location: url,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 查看是否存在该Bucket,是否有权限访问\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Boolean} data.BucketExist Bucket是否存在\r\n * @return {Boolean} data.BucketAuth 是否有 Bucket 的访问权限\r\n */\nfunction headBucket(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:HeadBucket',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n method: 'HEAD'\n }, callback);\n}\n\n/**\r\n * 获取 Bucket 下的 object 列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Prefix 前缀匹配,用来规定返回的文件前缀地址,非必须\r\n * @param {String} params.Delimiter 定界符为一个符号,如果有Prefix,则将Prefix到delimiter之间的相同路径归为一类,非必须\r\n * @param {String} params.Marker 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,非必须\r\n * @param {String} params.MaxKeys 单次返回最大的条目数量,默认1000,非必须\r\n * @param {String} params.EncodingType 规定返回值的编码方式,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ListBucketResult 返回的 object 列表信息\r\n */\nfunction getBucket(params, callback) {\n var reqParams = {};\n reqParams['prefix'] = params['Prefix'] || '';\n reqParams['delimiter'] = params['Delimiter'];\n reqParams['marker'] = params['Marker'];\n reqParams['max-keys'] = params['MaxKeys'];\n reqParams['encoding-type'] = params['EncodingType'];\n submitRequest.call(this, {\n Action: 'name/cos:GetBucket',\n ResourceKey: reqParams['prefix'],\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n qs: reqParams\n }, function (err, data) {\n if (err) return callback(err);\n var ListBucketResult = data.ListBucketResult || {};\n var Contents = ListBucketResult.Contents || [];\n var CommonPrefixes = ListBucketResult.CommonPrefixes || [];\n Contents = util.isArray(Contents) ? Contents : [Contents];\n CommonPrefixes = util.isArray(CommonPrefixes) ? CommonPrefixes : [CommonPrefixes];\n var result = util.clone(ListBucketResult);\n util.extend(result, {\n Contents: Contents,\n CommonPrefixes: CommonPrefixes,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 删除 Bucket\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {String} data.Location 操作地址\r\n */\nfunction deleteBucket(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucket',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n method: 'DELETE'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.ACL 用户自定义文件权限,可以设置:private,public-read;默认值:private,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读的权限,格式x-cos-grant-read: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantWrite 赋予被授权者写的权限,格式x-cos-grant-write: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者读写权限,格式x-cos-grant-full-control: uin=\" \",uin=\" \",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction putBucketAcl(params, callback) {\n var headers = params.Headers;\n var xml = '';\n if (params['AccessControlPolicy']) {\n var AccessControlPolicy = util.clone(params['AccessControlPolicy'] || {});\n var Grants = AccessControlPolicy.Grants || AccessControlPolicy.Grant;\n Grants = util.isArray(Grants) ? Grants : [Grants];\n delete AccessControlPolicy.Grant;\n delete AccessControlPolicy.Grants;\n AccessControlPolicy.AccessControlList = {\n Grant: Grants\n };\n xml = util.json2xml({\n AccessControlPolicy: AccessControlPolicy\n });\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n }\n\n // Grant Header 去重\n util.each(headers, function (val, key) {\n if (key.indexOf('x-cos-grant-') === 0) {\n headers[key] = uniqGrant(headers[key]);\n }\n });\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketACL',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: headers,\n action: 'acl',\n body: xml\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.AccessControlPolicy 访问权限信息\r\n */\nfunction getBucketAcl(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketACL',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'acl'\n }, function (err, data) {\n if (err) return callback(err);\n var AccessControlPolicy = data.AccessControlPolicy || {};\n var Owner = AccessControlPolicy.Owner || {};\n var Grant = AccessControlPolicy.AccessControlList.Grant || [];\n Grant = util.isArray(Grant) ? Grant : [Grant];\n var result = decodeAcl(AccessControlPolicy);\n if (data.headers && data.headers['x-cos-acl']) {\n result.ACL = data.headers['x-cos-acl'];\n }\n result = util.extend(result, {\n Owner: Owner,\n Grants: Grant,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 设置 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Object} params.CORSConfiguration 相关的跨域设置,必须\r\n * @param {Array} params.CORSConfiguration.CORSRules 对应的跨域规则\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction putBucketCors(params, callback) {\n var CORSConfiguration = params['CORSConfiguration'] || {};\n var CORSRules = CORSConfiguration['CORSRules'] || params['CORSRules'] || [];\n CORSRules = util.clone(util.isArray(CORSRules) ? CORSRules : [CORSRules]);\n util.each(CORSRules, function (rule) {\n util.each(['AllowedOrigin', 'AllowedHeader', 'AllowedMethod', 'ExposeHeader'], function (key) {\n var sKey = key + 's';\n var val = rule[sKey] || rule[key] || [];\n delete rule[sKey];\n rule[key] = util.isArray(val) ? val : [val];\n });\n });\n var Conf = {\n CORSRule: CORSRules\n };\n if (params.ResponseVary) Conf.ResponseVary = params.ResponseVary;\n var xml = util.json2xml({\n CORSConfiguration: Conf\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketCORS',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'cors',\n headers: headers\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.CORSRules Bucket的跨域设置\r\n */\nfunction getBucketCors(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketCORS',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'cors'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error && err.error.Code === 'NoSuchCORSConfiguration') {\n var result = {\n CORSRules: [],\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var CORSConfiguration = data.CORSConfiguration || {};\n var CORSRules = CORSConfiguration.CORSRules || CORSConfiguration.CORSRule || [];\n CORSRules = util.clone(util.isArray(CORSRules) ? CORSRules : [CORSRules]);\n var ResponseVary = CORSConfiguration.ResponseVary;\n util.each(CORSRules, function (rule) {\n util.each(['AllowedOrigin', 'AllowedHeader', 'AllowedMethod', 'ExposeHeader'], function (key) {\n var sKey = key + 's';\n var val = rule[sKey] || rule[key] || [];\n delete rule[key];\n rule[sKey] = util.isArray(val) ? val : [val];\n });\n });\n callback(null, {\n CORSRules: CORSRules,\n ResponseVary: ResponseVary,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction deleteBucketCors(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketCORS',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'cors'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode || err.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的 地域信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据,包含地域信息 LocationConstraint\r\n */\nfunction getBucketLocation(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketLocation',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'location'\n }, callback);\n}\nfunction putBucketPolicy(params, callback) {\n var Policy = params['Policy'];\n try {\n if (typeof Policy === 'string') Policy = JSON.parse(Policy);\n } catch (e) {}\n if (!Policy || typeof Policy === 'string') return callback(util.error(new Error('Policy format error')));\n var PolicyStr = JSON.stringify(Policy);\n if (!Policy.version) Policy.version = '2.0';\n var headers = params.Headers;\n headers['Content-Type'] = 'application/json';\n headers['Content-MD5'] = util.b64(util.md5(PolicyStr));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketPolicy',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n action: 'policy',\n body: PolicyStr,\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的读取权限策略\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketPolicy(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketPolicy',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'policy',\n rawBody: true\n }, function (err, data) {\n if (err) {\n if (err.statusCode && err.statusCode === 403) {\n return callback(util.error(err, {\n ErrorStatus: 'Access Denied'\n }));\n }\n if (err.statusCode && err.statusCode === 405) {\n return callback(util.error(err, {\n ErrorStatus: 'Method Not Allowed'\n }));\n }\n if (err.statusCode && err.statusCode === 404) {\n return callback(util.error(err, {\n ErrorStatus: 'Policy Not Found'\n }));\n }\n return callback(err);\n }\n var Policy = {};\n try {\n Policy = JSON.parse(data.body);\n } catch (e) {}\n callback(null, {\n Policy: Policy,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction deleteBucketPolicy(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketPolicy',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'policy'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode || err.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 的标签\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Array} params.TagSet 标签设置,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction putBucketTagging(params, callback) {\n var Tagging = params['Tagging'] || {};\n var Tags = Tagging.TagSet || Tagging.Tags || params['Tags'] || [];\n Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n var xml = util.json2xml({\n Tagging: {\n TagSet: {\n Tag: Tags\n }\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketTagging',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'tagging',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的标签设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketTagging(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketTagging',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'tagging'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'NoSuchTagSet')) {\n var result = {\n Tags: [],\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var Tags = [];\n try {\n Tags = data.Tagging.TagSet.Tag || [];\n } catch (e) {}\n Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n callback(null, {\n Tags: Tags,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Bucket 的 标签设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction deleteBucketTagging(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketTagging',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'tagging'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction putBucketLifecycle(params, callback) {\n var LifecycleConfiguration = params['LifecycleConfiguration'] || {};\n var Rules = LifecycleConfiguration.Rules || params.Rules || [];\n Rules = util.clone(Rules);\n var xml = util.json2xml({\n LifecycleConfiguration: {\n Rule: Rules\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketLifecycle',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'lifecycle',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction getBucketLifecycle(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketLifecycle',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'lifecycle'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error && err.error.Code === 'NoSuchLifecycleConfiguration') {\n var result = {\n Rules: [],\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var Rules = [];\n try {\n Rules = data.LifecycleConfiguration.Rule || [];\n } catch (e) {}\n Rules = util.clone(util.isArray(Rules) ? Rules : [Rules]);\n callback(null, {\n Rules: Rules,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction deleteBucketLifecycle(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketLifecycle',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'lifecycle'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction putBucketVersioning(params, callback) {\n if (!params['VersioningConfiguration']) {\n callback(util.error(new Error('missing param VersioningConfiguration')));\n return;\n }\n var VersioningConfiguration = params['VersioningConfiguration'] || {};\n var xml = util.json2xml({\n VersioningConfiguration: VersioningConfiguration\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketVersioning',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'versioning',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction getBucketVersioning(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketVersioning',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'versioning'\n }, function (err, data) {\n if (!err) {\n !data.VersioningConfiguration && (data.VersioningConfiguration = {});\n }\n callback(err, data);\n });\n}\nfunction putBucketReplication(params, callback) {\n var ReplicationConfiguration = util.clone(params.ReplicationConfiguration);\n var xml = util.json2xml({\n ReplicationConfiguration: ReplicationConfiguration\n });\n xml = xml.replace(/<(\\/?)Rules>/gi, '<$1Rule>');\n xml = xml.replace(/<(\\/?)Tags>/gi, '<$1Tag>');\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketReplication',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'replication',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction getBucketReplication(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketReplication',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'replication'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'ReplicationConfigurationnotFoundError')) {\n var result = {\n ReplicationConfiguration: {\n Rules: []\n },\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n !data.ReplicationConfiguration && (data.ReplicationConfiguration = {});\n if (data.ReplicationConfiguration.Rule) {\n data.ReplicationConfiguration.Rules = util.makeArray(data.ReplicationConfiguration.Rule);\n delete data.ReplicationConfiguration.Rule;\n }\n callback(err, data);\n });\n}\nfunction deleteBucketReplication(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketReplication',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'replication'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 静态网站配置信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Object} params.WebsiteConfiguration 地域名称,必须\r\n * @param {Object} WebsiteConfiguration.IndexDocument 索引文档,必须\r\n * @param {Object} WebsiteConfiguration.ErrorDocument 错误文档,非必须\r\n * @param {Object} WebsiteConfiguration.RedirectAllRequestsTo 重定向所有请求,非必须\r\n * @param {Array} params.RoutingRules 重定向规则,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction putBucketWebsite(params, callback) {\n if (!params['WebsiteConfiguration']) {\n callback(util.error(new Error('missing param WebsiteConfiguration')));\n return;\n }\n var WebsiteConfiguration = util.clone(params['WebsiteConfiguration'] || {});\n var RoutingRules = WebsiteConfiguration['RoutingRules'] || WebsiteConfiguration['RoutingRule'] || [];\n RoutingRules = util.isArray(RoutingRules) ? RoutingRules : [RoutingRules];\n delete WebsiteConfiguration.RoutingRule;\n delete WebsiteConfiguration.RoutingRules;\n if (RoutingRules.length) WebsiteConfiguration.RoutingRules = {\n RoutingRule: RoutingRules\n };\n var xml = util.json2xml({\n WebsiteConfiguration: WebsiteConfiguration\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketWebsite',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'website',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的静态网站配置信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketWebsite(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketWebsite',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n action: 'website'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error.Code === 'NoSuchWebsiteConfiguration') {\n var result = {\n WebsiteConfiguration: {},\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var WebsiteConfiguration = data.WebsiteConfiguration || {};\n if (WebsiteConfiguration['RoutingRules']) {\n var RoutingRules = util.clone(WebsiteConfiguration['RoutingRules'].RoutingRule || []);\n RoutingRules = util.makeArray(RoutingRules);\n WebsiteConfiguration.RoutingRules = RoutingRules;\n }\n callback(null, {\n WebsiteConfiguration: WebsiteConfiguration,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Bucket 的静态网站配置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction deleteBucketWebsite(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketWebsite',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'website'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 的防盗链白名单或者黑名单\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Object} params.RefererConfiguration 地域名称,必须\r\n * @param {String} RefererConfiguration.Status 是否开启防盗链,枚举值:Enabled、Disabled\r\n * @param {String} RefererConfiguration.RefererType 防盗链类型,枚举值:Black-List、White-List,必须\r\n * @param {Array} RefererConfiguration.DomianList.Domain 生效域名,必须\r\n * @param {String} RefererConfiguration.EmptyReferConfiguration ,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction putBucketReferer(params, callback) {\n if (!params['RefererConfiguration']) {\n callback(util.error(new Error('missing param RefererConfiguration')));\n return;\n }\n var RefererConfiguration = util.clone(params['RefererConfiguration'] || {});\n var DomainList = RefererConfiguration['DomainList'] || {};\n var Domains = DomainList['Domains'] || DomainList['Domain'] || [];\n Domains = util.isArray(Domains) ? Domains : [Domains];\n if (Domains.length) RefererConfiguration.DomainList = {\n Domain: Domains\n };\n var xml = util.json2xml({\n RefererConfiguration: RefererConfiguration\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketReferer',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'referer',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的防盗链白名单或者黑名单\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketReferer(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketReferer',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n action: 'referer'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error.Code === 'NoSuchRefererConfiguration') {\n var result = {\n WebsiteConfiguration: {},\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var RefererConfiguration = data.RefererConfiguration || {};\n if (RefererConfiguration['DomainList']) {\n var Domains = util.makeArray(RefererConfiguration['DomainList'].Domain || []);\n RefererConfiguration.DomainList = {\n Domains: Domains\n };\n }\n callback(null, {\n RefererConfiguration: RefererConfiguration,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 自定义域名\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction putBucketDomain(params, callback) {\n var DomainConfiguration = params['DomainConfiguration'] || {};\n var DomainRule = DomainConfiguration.DomainRule || params.DomainRule || [];\n DomainRule = util.clone(DomainRule);\n var xml = util.json2xml({\n DomainConfiguration: {\n DomainRule: DomainRule\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketDomain',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'domain',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的自定义域名\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketDomain(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketDomain',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'domain'\n }, function (err, data) {\n if (err) return callback(err);\n var DomainRule = [];\n try {\n DomainRule = data.DomainConfiguration.DomainRule || [];\n } catch (e) {}\n DomainRule = util.clone(util.isArray(DomainRule) ? DomainRule : [DomainRule]);\n callback(null, {\n DomainRule: DomainRule,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Bucket 自定义域名\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction deleteBucketDomain(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketDomain',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'domain'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 的回源\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction putBucketOrigin(params, callback) {\n var OriginConfiguration = params['OriginConfiguration'] || {};\n var OriginRule = OriginConfiguration.OriginRule || params.OriginRule || [];\n OriginRule = util.clone(OriginRule);\n var xml = util.json2xml({\n OriginConfiguration: {\n OriginRule: OriginRule\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketOrigin',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'origin',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的回源\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketOrigin(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketOrigin',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'origin'\n }, function (err, data) {\n if (err) return callback(err);\n var OriginRule = [];\n try {\n OriginRule = data.OriginConfiguration.OriginRule || [];\n } catch (e) {}\n OriginRule = util.clone(util.isArray(OriginRule) ? OriginRule : [OriginRule]);\n callback(null, {\n OriginRule: OriginRule,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Bucket 的回源\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction deleteBucketOrigin(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketOrigin',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'origin'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 设置 Bucket 的日志记录\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {(Object|String)} params.BucketLoggingStatus 说明日志记录配置的状态,如果无子节点信息则意为关闭日志记录,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction putBucketLogging(params, callback) {\n var xml = util.json2xml({\n BucketLoggingStatus: params['BucketLoggingStatus'] || ''\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketLogging',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'logging',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的日志记录\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketLogging(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketLogging',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'logging'\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, {\n BucketLoggingStatus: data.BucketLoggingStatus,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 创建/编辑 Bucket 的清单任务\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Id 清单任务的名称,必须\r\n * @param {Object} params.InventoryConfiguration 包含清单的配置参数,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction submitBucketInventory(method, params, callback) {\n var InventoryConfiguration = util.clone(params['InventoryConfiguration']);\n if (InventoryConfiguration.OptionalFields) {\n var Field = InventoryConfiguration.OptionalFields || [];\n InventoryConfiguration.OptionalFields = {\n Field: Field\n };\n }\n if (InventoryConfiguration.Destination && InventoryConfiguration.Destination.COSBucketDestination && InventoryConfiguration.Destination.COSBucketDestination.Encryption) {\n var Encryption = InventoryConfiguration.Destination.COSBucketDestination.Encryption;\n if (Object.keys(Encryption).indexOf('SSECOS') > -1) {\n Encryption['SSE-COS'] = Encryption['SSECOS'];\n delete Encryption['SSECOS'];\n }\n }\n var xml = util.json2xml({\n InventoryConfiguration: InventoryConfiguration\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n var action = method === 'PUT' ? 'name/cos:PutBucketInventory' : 'name/cos:PostBucketInventory';\n submitRequest.call(this, {\n Action: action,\n method: method,\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'inventory',\n qs: {\n id: params['Id']\n },\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 创建一个清单任务\r\n */\nfunction putBucketInventory(params, callback) {\n return submitBucketInventory.call(this, 'PUT', params, callback);\n}\n\n/**\r\n * 创建一个一次性清单任务 会立即执行\r\n */\nfunction postBucketInventory(params, callback) {\n return submitBucketInventory.call(this, 'POST', params, callback);\n}\n\n/**\r\n * 获取 Bucket 的清单任务信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Id 清单任务的名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction getBucketInventory(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketInventory',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'inventory',\n qs: {\n id: params['Id']\n }\n }, function (err, data) {\n if (err) return callback(err);\n var InventoryConfiguration = data['InventoryConfiguration'];\n if (InventoryConfiguration && InventoryConfiguration.OptionalFields && InventoryConfiguration.OptionalFields.Field) {\n var Field = InventoryConfiguration.OptionalFields.Field;\n if (!util.isArray(Field)) {\n Field = [Field];\n }\n InventoryConfiguration.OptionalFields = Field;\n }\n if (InventoryConfiguration.Destination && InventoryConfiguration.Destination.COSBucketDestination && InventoryConfiguration.Destination.COSBucketDestination.Encryption) {\n var Encryption = InventoryConfiguration.Destination.COSBucketDestination.Encryption;\n if (Object.keys(Encryption).indexOf('SSE-COS') > -1) {\n Encryption['SSECOS'] = Encryption['SSE-COS'];\n delete Encryption['SSE-COS'];\n }\n }\n callback(null, {\n InventoryConfiguration: InventoryConfiguration,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Bucket 的清单任务信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.ContinuationToken 当 COS 响应体中 IsTruncated 为 true,且 NextContinuationToken 节点中存在参数值时,您可以将这个参数作为 continuation-token 参数值,以获取下一页的清单任务信息,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction listBucketInventory(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:ListBucketInventory',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'inventory',\n qs: {\n 'continuation-token': params['ContinuationToken']\n }\n }, function (err, data) {\n if (err) return callback(err);\n var ListInventoryConfigurationResult = data['ListInventoryConfigurationResult'];\n var InventoryConfigurations = ListInventoryConfigurationResult.InventoryConfiguration || [];\n InventoryConfigurations = util.isArray(InventoryConfigurations) ? InventoryConfigurations : [InventoryConfigurations];\n delete ListInventoryConfigurationResult['InventoryConfiguration'];\n util.each(InventoryConfigurations, function (InventoryConfiguration) {\n if (InventoryConfiguration && InventoryConfiguration.OptionalFields && InventoryConfiguration.OptionalFields.Field) {\n var Field = InventoryConfiguration.OptionalFields.Field;\n if (!util.isArray(Field)) {\n Field = [Field];\n }\n InventoryConfiguration.OptionalFields = Field;\n }\n if (InventoryConfiguration.Destination && InventoryConfiguration.Destination.COSBucketDestination && InventoryConfiguration.Destination.COSBucketDestination.Encryption) {\n var Encryption = InventoryConfiguration.Destination.COSBucketDestination.Encryption;\n if (Object.keys(Encryption).indexOf('SSE-COS') > -1) {\n Encryption['SSECOS'] = Encryption['SSE-COS'];\n delete Encryption['SSE-COS'];\n }\n }\n });\n ListInventoryConfigurationResult.InventoryConfigurations = InventoryConfigurations;\n util.extend(ListInventoryConfigurationResult, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, ListInventoryConfigurationResult);\n });\n}\n\n/**\r\n * 删除 Bucket 的清单任务\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Id 清单任务的名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\nfunction deleteBucketInventory(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketInventory',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'inventory',\n qs: {\n id: params['Id']\n }\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/* 全球加速 */\nfunction putBucketAccelerate(params, callback) {\n if (!params['AccelerateConfiguration']) {\n callback(util.error(new Error('missing param AccelerateConfiguration')));\n return;\n }\n var configuration = {\n AccelerateConfiguration: params.AccelerateConfiguration || {}\n };\n var xml = util.json2xml(configuration);\n var headers = {};\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketAccelerate',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'accelerate',\n headers: headers\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction getBucketAccelerate(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketAccelerate',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n action: 'accelerate'\n }, function (err, data) {\n if (!err) {\n !data.AccelerateConfiguration && (data.AccelerateConfiguration = {});\n }\n callback(err, data);\n });\n}\nfunction putBucketEncryption(params, callback) {\n var conf = params.ServerSideEncryptionConfiguration || {};\n var Rules = conf.Rule || conf.Rules || [];\n var xml = util.json2xml({\n ServerSideEncryptionConfiguration: {\n Rule: Rules\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutBucketEncryption',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'encryption',\n headers: headers\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\nfunction getBucketEncryption(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketEncryption',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'encryption'\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.code === 'NoSuchEncryptionConfiguration') {\n var result = {\n EncryptionConfiguration: {\n Rules: []\n },\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var Rules = util.makeArray(data.EncryptionConfiguration && data.EncryptionConfiguration.Rule || []);\n data.EncryptionConfiguration = {\n Rules: Rules\n };\n callback(err, data);\n });\n}\nfunction deleteBucketEncryption(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteBucketReplication',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'encryption'\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n// Object 相关\n\n/**\r\n * 取回对应Object的元数据,Head的权限与Get的权限一致\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key 文件名称,必须\r\n * @param {String} params.IfModifiedSince 当Object在指定时间后被修改,则返回对应Object元信息,否则返回304,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 为指定 object 的元数据,如果设置了 IfModifiedSince ,且文件未修改,则返回一个对象,NotModified 属性为 true\r\n * @return {Boolean} data.NotModified 是否在 IfModifiedSince 时间点之后未修改该 object,则为 true\r\n */\nfunction headObject(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:HeadObject',\n method: 'HEAD',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n VersionId: params.VersionId,\n headers: params.Headers\n }, function (err, data) {\n if (err) {\n var statusCode = err.statusCode;\n if (params.Headers['If-Modified-Since'] && statusCode && statusCode === 304) {\n return callback(null, {\n NotModified: true,\n statusCode: statusCode\n });\n }\n return callback(err);\n }\n data.ETag = util.attr(data.headers, 'etag', '');\n callback(null, data);\n });\n}\nfunction listObjectVersions(params, callback) {\n var reqParams = {};\n reqParams['prefix'] = params['Prefix'] || '';\n reqParams['delimiter'] = params['Delimiter'];\n reqParams['key-marker'] = params['KeyMarker'];\n reqParams['version-id-marker'] = params['VersionIdMarker'];\n reqParams['max-keys'] = params['MaxKeys'];\n reqParams['encoding-type'] = params['EncodingType'];\n submitRequest.call(this, {\n Action: 'name/cos:GetBucketObjectVersions',\n ResourceKey: reqParams['prefix'],\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n qs: reqParams,\n action: 'versions'\n }, function (err, data) {\n if (err) return callback(err);\n var ListVersionsResult = data.ListVersionsResult || {};\n var DeleteMarkers = ListVersionsResult.DeleteMarker || [];\n DeleteMarkers = util.isArray(DeleteMarkers) ? DeleteMarkers : [DeleteMarkers];\n var Versions = ListVersionsResult.Version || [];\n Versions = util.isArray(Versions) ? Versions : [Versions];\n var result = util.clone(ListVersionsResult);\n delete result.DeleteMarker;\n delete result.Version;\n util.extend(result, {\n DeleteMarkers: DeleteMarkers,\n Versions: Versions,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 下载 object\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key 文件名称,必须\r\n * @param {WriteStream} params.Output 文件写入流,非必须\r\n * @param {String} params.IfModifiedSince 当Object在指定时间后被修改,则返回对应Object元信息,否则返回304,非必须\r\n * @param {String} params.IfUnmodifiedSince 如果文件修改时间早于或等于指定时间,才返回文件内容。否则返回 412 (precondition failed),非必须\r\n * @param {String} params.IfMatch 当 ETag 与指定的内容一致,才返回文件。否则返回 412 (precondition failed),非必须\r\n * @param {String} params.IfNoneMatch 当 ETag 与指定的内容不一致,才返回文件。否则返回304 (not modified),非必须\r\n * @param {String} params.ResponseContentType 设置返回头部中的 Content-Type 参数,非必须\r\n * @param {String} params.ResponseContentLanguage 设置返回头部中的 Content-Language 参数,非必须\r\n * @param {String} params.ResponseExpires 设置返回头部中的 Content-Expires 参数,非必须\r\n * @param {String} params.ResponseCacheControl 设置返回头部中的 Cache-Control 参数,非必须\r\n * @param {String} params.ResponseContentDisposition 设置返回头部中的 Content-Disposition 参数,非必须\r\n * @param {String} params.ResponseContentEncoding 设置返回头部中的 Content-Encoding 参数,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @param {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @param {Object} data 为对应的 object 数据,包括 body 和 headers\r\n */\nfunction getObject(params, callback) {\n var reqParams = params.Query || {};\n var reqParamsStr = params.QueryString || '';\n var onProgress = util.throttleOnProgress.call(this, 0, params.onProgress);\n var tracker = params.tracker;\n tracker && tracker.setParams({\n signStartTime: new Date().getTime()\n });\n reqParams['response-content-type'] = params['ResponseContentType'];\n reqParams['response-content-language'] = params['ResponseContentLanguage'];\n reqParams['response-expires'] = params['ResponseExpires'];\n reqParams['response-cache-control'] = params['ResponseCacheControl'];\n reqParams['response-content-disposition'] = params['ResponseContentDisposition'];\n reqParams['response-content-encoding'] = params['ResponseContentEncoding'];\n\n // 如果用户自己传入了 output\n submitRequest.call(this, {\n Action: 'name/cos:GetObject',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n VersionId: params.VersionId,\n DataType: params.DataType,\n headers: params.Headers,\n qs: reqParams,\n qsStr: reqParamsStr,\n rawBody: true,\n onDownloadProgress: onProgress,\n tracker: tracker\n }, function (err, data) {\n onProgress(null, true);\n if (err) {\n var statusCode = err.statusCode;\n if (params.Headers['If-Modified-Since'] && statusCode && statusCode === 304) {\n return callback(null, {\n NotModified: true\n });\n }\n return callback(err);\n }\n callback(null, {\n Body: data.body,\n ETag: util.attr(data.headers, 'etag', ''),\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 上传 object\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key 文件名称,必须\r\n * @param {File || Blob || String} params.Body 上传文件对象或字符串,必须\r\n * @param {String} params.CacheControl RFC 2616 中定义的缓存策略,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentDisposition RFC 2616 中定义的文件名称,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentEncoding RFC 2616 中定义的编码格式,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentLength RFC 2616 中定义的 HTTP 请求内容长度(字节),必须\r\n * @param {String} params.ContentType RFC 2616 中定义的内容类型(MIME),将作为 Object 元数据保存,非必须\r\n * @param {String} params.Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容,非必须\r\n * @param {String} params.Expires RFC 2616 中定义的过期时间,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ACL 允许用户自定义文件权限,有效值:private | public-read,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读取对象的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantReadAcp 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantWriteAcp 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者操作对象的所有权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.StorageClass 设置对象的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD,非必须\r\n * @param {String} params.x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据保存。大小限制2KB,非必须\r\n * @param {String} params.ContentSha1 RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {Function} params.onProgress 上传进度回调函数\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 为对应的 object 数据\r\n * @return {String} data.ETag 为对应上传文件的 ETag 值\r\n */\nfunction putObject(params, callback) {\n var self = this;\n var FileSize = params.ContentLength;\n var onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\n\n // 特殊处理 Cache-Control、Content-Type,避免代理更改这两个字段导致写入到 Object 属性里\n var headers = params.Headers;\n if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n if (!headers['Content-Type'] && !headers['content-type']) headers['Content-Type'] = params.Body && params.Body.type || '';\n var needCalcMd5 = params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5 || self.options.UploadCheckContentMd5;\n var tracker = params.tracker;\n needCalcMd5 && tracker && tracker.setParams({\n md5StartTime: new Date().getTime()\n });\n util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\n if (md5) {\n tracker && tracker.setParams({\n md5EndTime: new Date().getTime()\n });\n if (self.options.UploadCheckContentMd5) headers['Content-MD5'] = util.b64(md5);\n if (params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5) headers['x-cos-meta-md5'] = md5;\n }\n if (params.ContentLength !== undefined) headers['Content-Length'] = params.ContentLength;\n onProgress(null, true); // 任务状态开始 uploading\n submitRequest.call(self, {\n Action: 'name/cos:PutObject',\n TaskId: params.TaskId,\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n qs: params.Query,\n body: params.Body,\n onProgress: onProgress,\n tracker: tracker\n }, function (err, data) {\n if (err) {\n onProgress(null, true);\n return callback(err);\n }\n onProgress({\n loaded: FileSize,\n total: FileSize\n }, true);\n var url = getUrl({\n ForcePathStyle: self.options.ForcePathStyle,\n protocol: self.options.Protocol,\n domain: self.options.Domain,\n bucket: params.Bucket,\n region: !self.options.UseAccelerate ? params.Region : 'accelerate',\n object: params.Key\n });\n url = url.substr(url.indexOf('://') + 3);\n data.Location = url;\n data.ETag = util.attr(data.headers, 'etag', '');\n callback(null, data);\n });\n }, params.onHashProgress);\n}\n\n/**\r\n * 删除 object\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @param {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @param {Object} data 删除操作成功之后返回的数据\r\n */\nfunction deleteObject(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteObject',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n VersionId: params.VersionId,\n action: params.Recursive ? 'recursive' : ''\n }, function (err, data) {\n if (err) {\n var statusCode = err.statusCode;\n if (statusCode && statusCode === 404) {\n return callback(null, {\n BucketNotFound: true,\n statusCode: statusCode\n });\n } else {\n return callback(err);\n }\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 object 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.AccessControlPolicy 权限列表\r\n */\nfunction getObjectAcl(params, callback) {\n var reqParams = {};\n if (params.VersionId) {\n reqParams.versionId = params.VersionId;\n }\n submitRequest.call(this, {\n Action: 'name/cos:GetObjectACL',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n qs: reqParams,\n action: 'acl'\n }, function (err, data) {\n if (err) return callback(err);\n var AccessControlPolicy = data.AccessControlPolicy || {};\n var Owner = AccessControlPolicy.Owner || {};\n var Grant = AccessControlPolicy.AccessControlList && AccessControlPolicy.AccessControlList.Grant || [];\n Grant = util.isArray(Grant) ? Grant : [Grant];\n var result = decodeAcl(AccessControlPolicy);\n delete result.GrantWrite;\n if (data.headers && data.headers['x-cos-acl']) {\n result.ACL = data.headers['x-cos-acl'];\n }\n result = util.extend(result, {\n Owner: Owner,\n Grants: Grant,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 设置 object 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction putObjectAcl(params, callback) {\n var headers = params.Headers;\n var xml = '';\n if (params['AccessControlPolicy']) {\n var AccessControlPolicy = util.clone(params['AccessControlPolicy'] || {});\n var Grants = AccessControlPolicy.Grants || AccessControlPolicy.Grant;\n Grants = util.isArray(Grants) ? Grants : [Grants];\n delete AccessControlPolicy.Grant;\n delete AccessControlPolicy.Grants;\n AccessControlPolicy.AccessControlList = {\n Grant: Grants\n };\n xml = util.json2xml({\n AccessControlPolicy: AccessControlPolicy\n });\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n }\n\n // Grant Header 去重\n util.each(headers, function (val, key) {\n if (key.indexOf('x-cos-grant-') === 0) {\n headers[key] = uniqGrant(headers[key]);\n }\n });\n submitRequest.call(this, {\n Action: 'name/cos:PutObjectACL',\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n action: 'acl',\n headers: headers,\n body: xml\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * Options Object请求实现跨域访问的预请求。即发出一个 OPTIONS 请求给服务器以确认是否可以进行跨域操作。\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction optionsObject(params, callback) {\n var headers = params.Headers;\n headers['Origin'] = params['Origin'];\n headers['Access-Control-Request-Method'] = params['AccessControlRequestMethod'];\n headers['Access-Control-Request-Headers'] = params['AccessControlRequestHeaders'];\n submitRequest.call(this, {\n Action: 'name/cos:OptionsObject',\n method: 'OPTIONS',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: headers\n }, function (err, data) {\n if (err) {\n if (err.statusCode && err.statusCode === 403) {\n return callback(null, {\n OptionsForbidden: true,\n statusCode: err.statusCode\n });\n }\n return callback(err);\n }\n var headers = data.headers || {};\n callback(null, {\n AccessControlAllowOrigin: headers['access-control-allow-origin'],\n AccessControlAllowMethods: headers['access-control-allow-methods'],\n AccessControlAllowHeaders: headers['access-control-allow-headers'],\n AccessControlExposeHeaders: headers['access-control-expose-headers'],\n AccessControlMaxAge: headers['access-control-max-age'],\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * @param {Object} 参数列表\r\n * @param {String} Bucket Bucket 名称\r\n * @param {String} Region 地域名称\r\n * @param {String} Key 文件名称\r\n * @param {String} CopySource 源文件URL绝对路径,可以通过versionid子资源指定历史版本\r\n * @param {String} ACL 允许用户自定义文件权限。有效值:private,public-read默认值:private。\r\n * @param {String} GrantRead 赋予被授权者读的权限,格式 x-cos-grant-read: uin=\" \",uin=\" \",当需要给子账户授权时,uin=\"RootAcountID/SubAccountID\",当需要给根账户授权时,uin=\"RootAcountID\"。\r\n * @param {String} GrantWrite 赋予被授权者写的权限,格式 x-cos-grant-write: uin=\" \",uin=\" \",当需要给子账户授权时,uin=\"RootAcountID/SubAccountID\",当需要给根账户授权时,uin=\"RootAcountID\"。\r\n * @param {String} GrantFullControl 赋予被授权者读写权限,格式 x-cos-grant-full-control: uin=\" \",uin=\" \",当需要给子账户授权时,uin=\"RootAcountID/SubAccountID\",当需要给根账户授权时,uin=\"RootAcountID\"。\r\n * @param {String} MetadataDirective 是否拷贝元数据,枚举值:Copy, Replaced,默认值Copy。假如标记为Copy,忽略Header中的用户元数据信息直接复制;假如标记为Replaced,按Header信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为Replaced\r\n * @param {String} CopySourceIfModifiedSince 当Object在指定时间后被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-None-Match一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} CopySourceIfUnmodifiedSince 当Object在指定时间后未被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-Match一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} CopySourceIfMatch 当Object的ETag和给定一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} CopySourceIfNoneMatch 当Object的ETag和给定不一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} StorageClass 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA,Archive;默认值:Standard\r\n * @param {String} CacheControl 指定所有缓存机制在整个请求/响应链中必须服从的指令。\r\n * @param {String} ContentDisposition MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件\r\n * @param {String} ContentEncoding HTTP 中用来对「采用何种编码格式传输正文」进行协定的一对头部字段\r\n * @param {String} ContentLength 设置响应消息的实体内容的大小,单位为字节\r\n * @param {String} ContentType RFC 2616 中定义的 HTTP 请求内容类型(MIME),例如text/plain\r\n * @param {String} Expect 请求的特定的服务器行为\r\n * @param {String} Expires 响应过期的日期和时间\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {String} ContentLanguage 指定内容语言\r\n * @param {String} x-cos-meta-* 允许用户自定义的头部信息,将作为 Object 元数据返回。大小限制2K。\r\n */\nfunction putObjectCopy(params, callback) {\n // 特殊处理 Cache-Control\n var self = this;\n var headers = params.Headers;\n if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n var CopySource = params.CopySource || '';\n var m = util.getSourceParams.call(this, CopySource);\n if (!m) {\n callback(util.error(new Error('CopySource format error')));\n return;\n }\n var SourceBucket = m.Bucket;\n var SourceRegion = m.Region;\n var SourceKey = decodeURIComponent(m.Key);\n submitRequest.call(this, {\n Scope: [{\n action: 'name/cos:GetObject',\n bucket: SourceBucket,\n region: SourceRegion,\n prefix: SourceKey\n }, {\n action: 'name/cos:PutObject',\n bucket: params.Bucket,\n region: params.Region,\n prefix: params.Key\n }],\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n VersionId: params.VersionId,\n headers: params.Headers\n }, function (err, data) {\n if (err) return callback(err);\n var result = util.clone(data.CopyObjectResult || {});\n var url = getUrl({\n ForcePathStyle: self.options.ForcePathStyle,\n protocol: self.options.Protocol,\n domain: self.options.Domain,\n bucket: params.Bucket,\n region: params.Region,\n object: params.Key,\n isLocation: true\n });\n util.extend(result, {\n Location: url,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\nfunction uploadPartCopy(params, callback) {\n var CopySource = params.CopySource || '';\n var m = util.getSourceParams.call(this, CopySource);\n if (!m) {\n callback(util.error(new Error('CopySource format error')));\n return;\n }\n var SourceBucket = m.Bucket;\n var SourceRegion = m.Region;\n var SourceKey = decodeURIComponent(m.Key);\n submitRequest.call(this, {\n Scope: [{\n action: 'name/cos:GetObject',\n bucket: SourceBucket,\n region: SourceRegion,\n prefix: SourceKey\n }, {\n action: 'name/cos:PutObject',\n bucket: params.Bucket,\n region: params.Region,\n prefix: params.Key\n }],\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n VersionId: params.VersionId,\n qs: {\n partNumber: params['PartNumber'],\n uploadId: params['UploadId']\n },\n headers: params.Headers\n }, function (err, data) {\n if (err) return callback(err);\n var result = util.clone(data.CopyPartResult || {});\n util.extend(result, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\nfunction deleteMultipleObject(params, callback) {\n var Objects = params.Objects || [];\n var Quiet = params.Quiet;\n Objects = util.isArray(Objects) ? Objects : [Objects];\n var xml = util.json2xml({\n Delete: {\n Object: Objects,\n Quiet: Quiet || false\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n var Scope = util.map(Objects, function (v) {\n return {\n action: 'name/cos:DeleteObject',\n bucket: params.Bucket,\n region: params.Region,\n prefix: v.Key\n };\n });\n submitRequest.call(this, {\n Scope: Scope,\n method: 'POST',\n Bucket: params.Bucket,\n Region: params.Region,\n body: xml,\n action: 'delete',\n headers: headers\n }, function (err, data) {\n if (err) return callback(err);\n var DeleteResult = data.DeleteResult || {};\n var Deleted = DeleteResult.Deleted || [];\n var Errors = DeleteResult.Error || [];\n Deleted = util.isArray(Deleted) ? Deleted : [Deleted];\n Errors = util.isArray(Errors) ? Errors : [Errors];\n var result = util.clone(DeleteResult);\n util.extend(result, {\n Error: Errors,\n Deleted: Deleted,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\nfunction restoreObject(params, callback) {\n var headers = params.Headers;\n if (!params['RestoreRequest']) {\n callback(util.error(new Error('missing param RestoreRequest')));\n return;\n }\n var RestoreRequest = params.RestoreRequest || {};\n var xml = util.json2xml({\n RestoreRequest: RestoreRequest\n });\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:RestoreObject',\n method: 'POST',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n VersionId: params.VersionId,\n body: xml,\n action: 'restore',\n headers: headers\n }, callback);\n}\n\n/**\r\n * 设置 Object 的标签\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Object名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Array} params.TagSet 标签设置,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/42998\r\n * @return {Object} data 返回数据\r\n */\nfunction putObjectTagging(params, callback) {\n var Tagging = params['Tagging'] || {};\n var Tags = Tagging.TagSet || Tagging.Tags || params['Tags'] || [];\n Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n var xml = util.json2xml({\n Tagging: {\n TagSet: {\n Tag: Tags\n }\n }\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:PutObjectTagging',\n method: 'PUT',\n Bucket: params.Bucket,\n Key: params.Key,\n Region: params.Region,\n body: xml,\n action: 'tagging',\n headers: headers,\n VersionId: params.VersionId\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 获取 Object 的标签设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/42998\r\n * @return {Object} data 返回数据\r\n */\nfunction getObjectTagging(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:GetObjectTagging',\n method: 'GET',\n Key: params.Key,\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n action: 'tagging',\n VersionId: params.VersionId\n }, function (err, data) {\n if (err) {\n if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'NoSuchTagSet')) {\n var result = {\n Tags: [],\n statusCode: err.statusCode\n };\n err.headers && (result.headers = err.headers);\n callback(null, result);\n } else {\n callback(err);\n }\n return;\n }\n var Tags = [];\n try {\n Tags = data.Tagging.TagSet.Tag || [];\n } catch (e) {}\n Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\n callback(null, {\n Tags: Tags,\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 删除 Object 的 标签设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Object名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/42998\r\n * @return {Object} data 返回的数据\r\n */\nfunction deleteObjectTagging(params, callback) {\n submitRequest.call(this, {\n Action: 'name/cos:DeleteObjectTagging',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n action: 'tagging',\n VersionId: params.VersionId\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 使用 SQL 语句从指定对象(CSV 格式或者 JSON 格式)中检索内容\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Object名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Object} params.SelectRequest 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/42998\r\n * @return {Object} data 返回的数据\r\n */\nfunction selectObjectContent(params, callback) {\n var SelectType = params['SelectType'];\n if (!SelectType) return callback(util.error(new Error('missing param SelectType')));\n var SelectRequest = params['SelectRequest'] || {};\n var xml = util.json2xml({\n SelectRequest: SelectRequest\n });\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:GetObject',\n method: 'POST',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n action: 'select',\n qs: {\n 'select-type': params['SelectType']\n },\n VersionId: params.VersionId,\n body: xml,\n DataType: 'arraybuffer',\n rawBody: true\n }, function (err, data) {\n if (err && err.statusCode === 204) {\n return callback(null, {\n statusCode: err.statusCode\n });\n } else if (err) {\n return callback(err);\n }\n var result = util.parseSelectPayload(data.body);\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers,\n Body: result.body,\n Payload: result.payload\n });\n });\n}\n\n// 分块上传\n\n/**\r\n * 初始化分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId object名称,必须\r\n * @param {String} params.CacheControl RFC 2616 中定义的缓存策略,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentDisposition RFC 2616 中定义的文件名称,将作为 Object 元数据保存 ,非必须\r\n * @param {String} params.ContentEncoding RFC 2616 中定义的编码格式,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentType RFC 2616 中定义的内容类型(MIME),将作为 Object 元数据保存,非必须\r\n * @param {String} params.Expires RFC 2616 中定义的过期时间,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ACL 允许用户自定义文件权限,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读的权限 ,非必须\r\n * @param {String} params.GrantWrite 赋予被授权者写的权限 ,非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者读写权限 ,非必须\r\n * @param {String} params.StorageClass 设置Object的存储级别,枚举值:Standard,Standard_IA,Archive,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction multipartInit(params, callback) {\n var self = this;\n // 特殊处理 Cache-Control\n var headers = params.Headers;\n var tracker = params.tracker;\n\n // 特殊处理 Cache-Control、Content-Type\n if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n if (!headers['Content-Type'] && !headers['content-type']) headers['Content-Type'] = params.Body && params.Body.type || '';\n var needCalcMd5 = params.Body && (params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5);\n needCalcMd5 && tracker && tracker.setParams({\n md5StartTime: new Date().getTime()\n });\n util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\n if (md5) params.Headers['x-cos-meta-md5'] = md5;\n needCalcMd5 && tracker && tracker.setParams({\n md5EndTime: new Date().getTime()\n });\n submitRequest.call(self, {\n Action: 'name/cos:InitiateMultipartUpload',\n method: 'POST',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n action: 'uploads',\n headers: params.Headers,\n qs: params.Query,\n tracker: tracker\n }, function (err, data) {\n if (err) {\n tracker && tracker.parent && tracker.parent.setParams({\n errorNode: 'multipartInit'\n });\n return callback(err);\n }\n data = util.clone(data || {});\n if (data && data.InitiateMultipartUploadResult) {\n return callback(null, util.extend(data.InitiateMultipartUploadResult, {\n statusCode: data.statusCode,\n headers: data.headers\n }));\n }\n callback(null, data);\n });\n }, params.onHashProgress);\n}\n\n/**\r\n * 分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {File || Blob || String} params.Body 上传文件对象或字符串\r\n * @param {String} params.ContentLength RFC 2616 中定义的 HTTP 请求内容长度(字节),非必须\r\n * @param {String} params.Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {String} params.ContentSha1 RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验值,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ETag 返回的文件分块 sha1 值\r\n */\nfunction multipartUpload(params, callback) {\n var self = this;\n util.getFileSize('multipartUpload', params, function () {\n var tracker = params.tracker;\n var needCalcMd5 = self.options.UploadCheckContentMd5;\n needCalcMd5 && tracker && tracker.setParams({\n md5StartTime: new Date().getTime()\n });\n util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\n if (md5) params.Headers['Content-MD5'] = util.b64(md5);\n needCalcMd5 && tracker && tracker.setParams({\n md5EndTime: new Date().getTime()\n });\n tracker && tracker.setParams({\n partNumber: params.PartNumber\n });\n submitRequest.call(self, {\n Action: 'name/cos:UploadPart',\n TaskId: params.TaskId,\n method: 'PUT',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n qs: {\n partNumber: params['PartNumber'],\n uploadId: params['UploadId']\n },\n headers: params.Headers,\n onProgress: params.onProgress,\n body: params.Body || null,\n tracker: tracker\n }, function (err, data) {\n if (err) {\n tracker && tracker.parent && tracker.parent.setParams({\n errorNode: 'multipartUpload'\n });\n return callback(err);\n }\n callback(null, {\n ETag: util.attr(data.headers, 'etag', ''),\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n });\n });\n}\n\n/**\r\n * 完成分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Array} params.Parts 分块信息列表,必须\r\n * @param {String} params.Parts[i].PartNumber 块编号,必须\r\n * @param {String} params.Parts[i].ETag 分块的 sha1 校验值\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.CompleteMultipartUpload 完成分块上传后的文件信息,包括Location, Bucket, Key 和 ETag\r\n */\nfunction multipartComplete(params, callback) {\n var self = this;\n var UploadId = params.UploadId;\n var Parts = params['Parts'];\n var tracker = params.tracker;\n for (var i = 0, len = Parts.length; i < len; i++) {\n if (Parts[i]['ETag'] && Parts[i]['ETag'].indexOf('\"') === 0) {\n continue;\n }\n Parts[i]['ETag'] = '\"' + Parts[i]['ETag'] + '\"';\n }\n var xml = util.json2xml({\n CompleteMultipartUpload: {\n Part: Parts\n }\n });\n // CSP/ceph CompleteMultipartUpload 接口 body 写死了限制 1MB,这里醉倒 10000 片时,xml 字符串去掉空格853KB\n xml = xml.replace(/\\n\\s*/g, '');\n var headers = params.Headers;\n headers['Content-Type'] = 'application/xml';\n headers['Content-MD5'] = util.b64(util.md5(xml));\n submitRequest.call(this, {\n Action: 'name/cos:CompleteMultipartUpload',\n method: 'POST',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n qs: {\n uploadId: UploadId\n },\n body: xml,\n headers: headers,\n tracker: tracker\n }, function (err, data) {\n if (err) {\n tracker && tracker.parent && tracker.parent.setParams({\n errorNode: 'multipartComplete'\n });\n return callback(err);\n }\n var url = getUrl({\n ForcePathStyle: self.options.ForcePathStyle,\n protocol: self.options.Protocol,\n domain: self.options.Domain,\n bucket: params.Bucket,\n region: params.Region,\n object: params.Key,\n isLocation: true\n });\n var res = data.CompleteMultipartUploadResult || {};\n if (res.ProcessResults) {\n if (res && res.ProcessResults) {\n res.UploadResult = {\n OriginalInfo: {\n Key: res.Key,\n Location: url,\n ETag: res.ETag,\n ImageInfo: res.ImageInfo\n },\n ProcessResults: res.ProcessResults\n };\n delete res.ImageInfo;\n delete res.ProcessResults;\n }\n }\n var result = util.extend(res, {\n Location: url,\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 分块上传任务列表查询\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Delimiter 定界符为一个符号,如果有Prefix,则将Prefix到delimiter之间的相同路径归为一类,定义为Common Prefix,然后列出所有Common Prefix。如果没有Prefix,则从路径起点开始,非必须\r\n * @param {String} params.EncodingType 规定返回值的编码方式,非必须\r\n * @param {String} params.Prefix 前缀匹配,用来规定返回的文件前缀地址,非必须\r\n * @param {String} params.MaxUploads 单次返回最大的条目数量,默认1000,非必须\r\n * @param {String} params.KeyMarker 与upload-id-marker一起使用 </Br>当upload-id-marker未被指定时,ObjectName字母顺序大于key-marker的条目将被列出 </Br>当upload-id-marker被指定时,ObjectName字母顺序大于key-marker的条目被列出,ObjectName字母顺序等于key-marker同时UploadId大于upload-id-marker的条目将被列出,非必须\r\n * @param {String} params.UploadIdMarker 与key-marker一起使用 </Br>当key-marker未被指定时,upload-id-marker将被忽略 </Br>当key-marker被指定时,ObjectName字母顺序大于key-marker的条目被列出,ObjectName字母顺序等于key-marker同时UploadId大于upload-id-marker的条目将被列出,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ListMultipartUploadsResult 分块上传任务信息\r\n */\nfunction multipartList(params, callback) {\n var reqParams = {};\n reqParams['delimiter'] = params['Delimiter'];\n reqParams['encoding-type'] = params['EncodingType'];\n reqParams['prefix'] = params['Prefix'] || '';\n reqParams['max-uploads'] = params['MaxUploads'];\n reqParams['key-marker'] = params['KeyMarker'];\n reqParams['upload-id-marker'] = params['UploadIdMarker'];\n reqParams = util.clearKey(reqParams);\n var tracker = params.tracker;\n tracker && tracker.setParams({\n signStartTime: new Date().getTime()\n });\n submitRequest.call(this, {\n Action: 'name/cos:ListMultipartUploads',\n ResourceKey: reqParams['prefix'],\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n headers: params.Headers,\n qs: reqParams,\n action: 'uploads',\n tracker: tracker\n }, function (err, data) {\n if (err) {\n tracker && tracker.parent && tracker.parent.setParams({\n errorNode: 'multipartList'\n });\n return callback(err);\n }\n if (data && data.ListMultipartUploadsResult) {\n var Upload = data.ListMultipartUploadsResult.Upload || [];\n Upload = util.isArray(Upload) ? Upload : [Upload];\n data.ListMultipartUploadsResult.Upload = Upload;\n }\n var result = util.clone(data.ListMultipartUploadsResult || {});\n util.extend(result, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 上传的分块列表查询\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId 标示本次分块上传的ID,必须\r\n * @param {String} params.EncodingType 规定返回值的编码方式,非必须\r\n * @param {String} params.MaxParts 单次返回最大的条目数量,默认1000,非必须\r\n * @param {String} params.PartNumberMarker 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ListMultipartUploadsResult 分块信息\r\n */\nfunction multipartListPart(params, callback) {\n var reqParams = {};\n var tracker = params.tracker;\n reqParams['uploadId'] = params['UploadId'];\n reqParams['encoding-type'] = params['EncodingType'];\n reqParams['max-parts'] = params['MaxParts'];\n reqParams['part-number-marker'] = params['PartNumberMarker'];\n submitRequest.call(this, {\n Action: 'name/cos:ListParts',\n method: 'GET',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n qs: reqParams\n }, function (err, data) {\n if (err) {\n tracker && tracker.parent && tracker.parent.setParams({\n errorNode: 'multipartListPart'\n });\n return callback(err);\n }\n var ListPartsResult = data.ListPartsResult || {};\n var Part = ListPartsResult.Part || [];\n Part = util.isArray(Part) ? Part : [Part];\n ListPartsResult.Part = Part;\n var result = util.clone(ListPartsResult);\n util.extend(result, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n callback(null, result);\n });\n}\n\n/**\r\n * 抛弃分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId 标示本次分块上传的ID,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction multipartAbort(params, callback) {\n var reqParams = {};\n reqParams['uploadId'] = params['UploadId'];\n submitRequest.call(this, {\n Action: 'name/cos:AbortMultipartUpload',\n method: 'DELETE',\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n headers: params.Headers,\n qs: reqParams\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, {\n statusCode: data.statusCode,\n headers: data.headers\n });\n });\n}\n\n/**\r\n * 抛弃分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId 标示本次分块上传的ID,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction request(params, callback) {\n submitRequest.call(this, {\n method: params.Method,\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n action: params.Action,\n headers: params.Headers,\n qs: params.Query,\n body: params.Body,\n Url: params.Url,\n rawBody: params.RawBody,\n DataType: params.DataType\n }, function (err, data) {\n if (err) return callback(err);\n if (data && data.body) {\n data.Body = data.body;\n delete data.body;\n }\n callback(err, data);\n });\n}\n\n/**\r\n * 追加上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {File || Blob || String} params.Body 上传文件对象或字符串\r\n * @param {Number} params.Position 追加操作的起始点,单位为字节,必须\r\n * @param {String} params.CacheControl RFC 2616 中定义的缓存策略,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentDisposition RFC 2616 中定义的文件名称,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentEncoding RFC 2616 中定义的编码格式,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentLength RFC 2616 中定义的 HTTP 请求内容长度(字节),必须\r\n * @param {String} params.ContentType RFC 2616 中定义的内容类型(MIME),将作为 Object 元数据保存,非必须\r\n * @param {String} params.Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容,非必须\r\n * @param {String} params.Expires RFC 2616 中定义的过期时间,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ACL 允许用户自定义文件权限,有效值:private | public-read,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读取对象的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantReadAcp 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantWriteAcp 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者操作对象的所有权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.StorageClass 设置对象的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD,非必须\r\n * @param {String} params.x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据保存。大小限制2KB,非必须\r\n * @param {String} params.ContentSha1 RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction appendObject(params, callback) {\n // 特殊处理 Cache-Control、Content-Type,避免代理更改这两个字段导致写入到 Object 属性里\n var headers = params.Headers;\n if (!headers['Cache-Control'] && !headers['cache-control']) headers['Cache-Control'] = '';\n if (!headers['Content-Type'] && !headers['content-type']) headers['Content-Type'] = params.Body && params.Body.type || '';\n submitRequest.call(this, {\n Action: 'name/cos:AppendObject',\n method: 'POST',\n Bucket: params.Bucket,\n Region: params.Region,\n action: 'append',\n Key: params.Key,\n body: params.Body,\n qs: {\n position: params.Position\n },\n headers: params.Headers\n }, function (err, data) {\n if (err) return callback(err);\n callback(null, data);\n });\n}\n\n/**\r\n * 获取签名\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Method 请求方法,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.Expires 名超时时间,单位秒,可选\r\n * @return {String} data 返回签名字符串\r\n */\nfunction getAuth(params) {\n var self = this;\n return util.getAuth({\n SecretId: params.SecretId || this.options.SecretId || '',\n SecretKey: params.SecretKey || this.options.SecretKey || '',\n Bucket: params.Bucket,\n Region: params.Region,\n Method: params.Method,\n Key: params.Key,\n Query: params.Query,\n Headers: params.Headers,\n Expires: params.Expires,\n UseRawKey: self.options.UseRawKey,\n SystemClockOffset: self.options.SystemClockOffset\n });\n}\n\n/**\r\n * 获取文件下载链接\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.Method 请求的方法,可选\r\n * @param {String} params.Expires 签名超时时间,单位秒,可选\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\nfunction getObjectUrl(params, callback) {\n var self = this;\n var useAccelerate = params.UseAccelerate === undefined ? self.options.UseAccelerate : params.UseAccelerate;\n var url = getUrl({\n ForcePathStyle: self.options.ForcePathStyle,\n protocol: params.Protocol || self.options.Protocol,\n domain: params.Domain || self.options.Domain,\n bucket: params.Bucket,\n region: useAccelerate ? 'accelerate' : params.Region,\n object: params.Key\n });\n var queryParamsStr = '';\n if (params.Query) {\n queryParamsStr += util.obj2str(params.Query);\n }\n if (params.QueryString) {\n queryParamsStr += (queryParamsStr ? '&' : '') + params.QueryString;\n }\n var syncUrl = url;\n if (params.Sign !== undefined && !params.Sign) {\n queryParamsStr && (syncUrl += '?' + queryParamsStr);\n callback(null, {\n Url: syncUrl\n });\n return syncUrl;\n }\n\n // 签名加上 Host,避免跨桶访问\n var SignHost = getSignHost.call(this, {\n Bucket: params.Bucket,\n Region: params.Region,\n UseAccelerate: params.UseAccelerate,\n Url: url\n });\n var AuthData = getAuthorizationAsync.call(this, {\n Action: (params.Method || '').toUpperCase() === 'PUT' ? 'name/cos:PutObject' : 'name/cos:GetObject',\n Bucket: params.Bucket || '',\n Region: params.Region || '',\n Method: params.Method || 'get',\n Key: params.Key,\n Expires: params.Expires,\n Headers: params.Headers,\n Query: params.Query,\n SignHost: SignHost,\n ForceSignHost: params.ForceSignHost === false ? false : self.options.ForceSignHost // getObjectUrl支持传参ForceSignHost\n }, function (err, AuthData) {\n if (!callback) return;\n if (err) {\n callback(err);\n return;\n }\n\n // 兼容万象url qUrlParamList需要再encode一次\n var replaceUrlParamList = function replaceUrlParamList(url) {\n var urlParams = url.match(/q-url-param-list.*?(?=&)/g)[0];\n var encodedParams = 'q-url-param-list=' + encodeURIComponent(urlParams.replace(/q-url-param-list=/, '')).toLowerCase();\n var reg = new RegExp(urlParams, 'g');\n var replacedUrl = url.replace(reg, encodedParams);\n return replacedUrl;\n };\n var signUrl = url;\n signUrl += '?' + (AuthData.Authorization.indexOf('q-signature') > -1 ? replaceUrlParamList(AuthData.Authorization) : 'sign=' + encodeURIComponent(AuthData.Authorization));\n AuthData.SecurityToken && (signUrl += '&x-cos-security-token=' + AuthData.SecurityToken);\n AuthData.ClientIP && (signUrl += '&clientIP=' + AuthData.ClientIP);\n AuthData.ClientUA && (signUrl += '&clientUA=' + AuthData.ClientUA);\n AuthData.Token && (signUrl += '&token=' + AuthData.Token);\n queryParamsStr && (signUrl += '&' + queryParamsStr);\n setTimeout(function () {\n callback(null, {\n Url: signUrl\n });\n });\n });\n if (AuthData) {\n syncUrl += '?' + AuthData.Authorization + (AuthData.SecurityToken ? '&x-cos-security-token=' + AuthData.SecurityToken : '');\n queryParamsStr && (syncUrl += '&' + queryParamsStr);\n } else {\n queryParamsStr && (syncUrl += '?' + queryParamsStr);\n }\n return syncUrl;\n}\n\n/**\r\n * 私有方法\r\n */\nfunction decodeAcl(AccessControlPolicy) {\n var result = {\n GrantFullControl: [],\n GrantWrite: [],\n GrantRead: [],\n GrantReadAcp: [],\n GrantWriteAcp: [],\n ACL: ''\n };\n var GrantMap = {\n FULL_CONTROL: 'GrantFullControl',\n WRITE: 'GrantWrite',\n READ: 'GrantRead',\n READ_ACP: 'GrantReadAcp',\n WRITE_ACP: 'GrantWriteAcp'\n };\n var AccessControlList = AccessControlPolicy && AccessControlPolicy.AccessControlList || {};\n var Grant = AccessControlList.Grant;\n if (Grant) {\n Grant = util.isArray(Grant) ? Grant : [Grant];\n }\n var PublicAcl = {\n READ: 0,\n WRITE: 0,\n FULL_CONTROL: 0\n };\n Grant && Grant.length && util.each(Grant, function (item) {\n if (item.Grantee.ID === 'qcs::cam::anyone:anyone' || item.Grantee.URI === 'http://cam.qcloud.com/groups/global/AllUsers') {\n PublicAcl[item.Permission] = 1;\n } else if (item.Grantee.ID !== AccessControlPolicy.Owner.ID) {\n result[GrantMap[item.Permission]].push('id=\"' + item.Grantee.ID + '\"');\n }\n });\n if (PublicAcl.FULL_CONTROL || PublicAcl.WRITE && PublicAcl.READ) {\n result.ACL = 'public-read-write';\n } else if (PublicAcl.READ) {\n result.ACL = 'public-read';\n } else {\n result.ACL = 'private';\n }\n util.each(GrantMap, function (item) {\n result[item] = uniqGrant(result[item].join(','));\n });\n return result;\n}\n\n// Grant 去重\nfunction uniqGrant(str) {\n var arr = str.split(',');\n var exist = {};\n var i, item;\n for (i = 0; i < arr.length;) {\n item = arr[i].trim();\n if (exist[item]) {\n arr.splice(i, 1);\n } else {\n exist[item] = true;\n arr[i] = item;\n i++;\n }\n }\n return arr.join(',');\n}\n\n// 生成操作 url\nfunction getUrl(params) {\n var region = params.region || '';\n var longBucket = params.bucket || '';\n var shortBucket = longBucket.substr(0, longBucket.lastIndexOf('-'));\n var appId = longBucket.substr(longBucket.lastIndexOf('-') + 1);\n var domain = params.domain;\n var object = params.object;\n if (typeof domain === 'function') {\n domain = domain({\n Bucket: longBucket,\n Region: region\n });\n }\n // 兼容不带冒号的http、https\n if (['http', 'https'].includes(params.protocol)) {\n params.protocol = params.protocol + ':';\n }\n var protocol = params.protocol || (util.isBrowser && (typeof location === \"undefined\" ? \"undefined\" : _typeof(location)) === 'object' && location.protocol === 'http:' ? 'http:' : 'https:');\n if (!domain) {\n if (['cn-south', 'cn-south-2', 'cn-north', 'cn-east', 'cn-southwest', 'sg'].indexOf(region) > -1) {\n domain = '{Region}.myqcloud.com';\n } else {\n domain = 'cos.{Region}.myqcloud.com';\n }\n if (!params.ForcePathStyle) {\n domain = '{Bucket}.' + domain;\n }\n }\n domain = domain.replace(/\\{\\{AppId\\}\\}/gi, appId).replace(/\\{\\{Bucket\\}\\}/gi, shortBucket).replace(/\\{\\{Region\\}\\}/gi, region).replace(/\\{\\{.*?\\}\\}/gi, '');\n domain = domain.replace(/\\{AppId\\}/gi, appId).replace(/\\{BucketName\\}/gi, shortBucket).replace(/\\{Bucket\\}/gi, longBucket).replace(/\\{Region\\}/gi, region).replace(/\\{.*?\\}/gi, '');\n if (!/^[a-zA-Z]+:\\/\\//.test(domain)) {\n domain = protocol + '//' + domain;\n }\n\n // 去掉域名最后的斜杆\n if (domain.slice(-1) === '/') {\n domain = domain.slice(0, -1);\n }\n var url = domain;\n if (params.ForcePathStyle) {\n url += '/' + longBucket;\n }\n url += '/';\n if (object) {\n url += util.camSafeUrlEncode(object).replace(/%2F/g, '/');\n }\n if (params.isLocation) {\n url = url.replace(/^https?:\\/\\//, '');\n }\n return url;\n}\nvar getSignHost = function getSignHost(opt) {\n if (!opt.Bucket || !opt.Region) return '';\n var useAccelerate = opt.UseAccelerate === undefined ? this.options.UseAccelerate : opt.UseAccelerate;\n var url = opt.Url || getUrl({\n ForcePathStyle: this.options.ForcePathStyle,\n protocol: this.options.Protocol,\n domain: this.options.Domain,\n bucket: opt.Bucket,\n region: useAccelerate ? 'accelerate' : opt.Region\n });\n var urlHost = url.replace(/^https?:\\/\\/([^/]+)(\\/.*)?$/, '$1');\n var standardHostReg = new RegExp('^([a-z\\\\d-]+-\\\\d+\\\\.)?(cos|cosv6|ci|pic)\\\\.([a-z\\\\d-]+)\\\\.myqcloud\\\\.com$');\n if (standardHostReg.test(urlHost)) return urlHost;\n return '';\n};\n\n// 异步获取签名\nfunction getAuthorizationAsync(params, callback) {\n var headers = util.clone(params.Headers);\n var headerHost = '';\n util.each(headers, function (v, k) {\n (v === '' || ['content-type', 'cache-control', 'expires'].indexOf(k.toLowerCase()) > -1) && delete headers[k];\n if (k.toLowerCase() === 'host') headerHost = v;\n });\n // ForceSignHost明确传入false才不加入host签名\n var forceSignHost = params.ForceSignHost === false ? false : true;\n\n // Host 加入签名计算\n if (!headerHost && params.SignHost && forceSignHost) headers.Host = params.SignHost;\n\n // 获取凭证的回调,避免用户 callback 多次\n var cbDone = false;\n var cb = function cb(err, AuthData) {\n if (cbDone) return;\n cbDone = true;\n if (AuthData && AuthData.XCosSecurityToken && !AuthData.SecurityToken) {\n AuthData = util.clone(AuthData);\n AuthData.SecurityToken = AuthData.XCosSecurityToken;\n delete AuthData.XCosSecurityToken;\n }\n callback && callback(err, AuthData);\n };\n var self = this;\n var Bucket = params.Bucket || '';\n var Region = params.Region || '';\n\n // PathName\n var KeyName = params.Key || '';\n if (self.options.ForcePathStyle && Bucket) {\n KeyName = Bucket + '/' + KeyName;\n }\n var Pathname = '/' + KeyName;\n\n // Action、ResourceKey\n var StsData = {};\n var Scope = params.Scope;\n if (!Scope) {\n var Action = params.Action || '';\n var ResourceKey = params.ResourceKey || params.Key || '';\n Scope = params.Scope || [{\n action: Action,\n bucket: Bucket,\n region: Region,\n prefix: ResourceKey\n }];\n }\n var ScopeKey = util.md5(JSON.stringify(Scope));\n\n // STS\n self._StsCache = self._StsCache || [];\n (function () {\n var i, AuthData;\n for (i = self._StsCache.length - 1; i >= 0; i--) {\n AuthData = self._StsCache[i];\n var compareTime = Math.round(util.getSkewTime(self.options.SystemClockOffset) / 1000) + 30;\n if (AuthData.StartTime && compareTime < AuthData.StartTime || compareTime >= AuthData.ExpiredTime) {\n self._StsCache.splice(i, 1);\n continue;\n }\n if (!AuthData.ScopeLimit || AuthData.ScopeLimit && AuthData.ScopeKey === ScopeKey) {\n StsData = AuthData;\n break;\n }\n }\n })();\n var calcAuthByTmpKey = function calcAuthByTmpKey() {\n var KeyTime = '';\n if (StsData.StartTime && params.Expires) KeyTime = StsData.StartTime + ';' + (StsData.StartTime + params.Expires * 1);else if (StsData.StartTime && StsData.ExpiredTime) KeyTime = StsData.StartTime + ';' + StsData.ExpiredTime;\n var Authorization = util.getAuth({\n SecretId: StsData.TmpSecretId,\n SecretKey: StsData.TmpSecretKey,\n Method: params.Method,\n Pathname: Pathname,\n Query: params.Query,\n Headers: headers,\n Expires: params.Expires,\n UseRawKey: self.options.UseRawKey,\n SystemClockOffset: self.options.SystemClockOffset,\n KeyTime: KeyTime,\n ForceSignHost: forceSignHost\n });\n var AuthData = {\n Authorization: Authorization,\n SecurityToken: StsData.SecurityToken || StsData.XCosSecurityToken || '',\n Token: StsData.Token || '',\n ClientIP: StsData.ClientIP || '',\n ClientUA: StsData.ClientUA || ''\n };\n cb(null, AuthData);\n };\n var checkAuthError = function checkAuthError(AuthData) {\n if (AuthData.Authorization) {\n // 检查签名格式\n var formatAllow = false;\n var auth = AuthData.Authorization;\n if (auth) {\n if (auth.indexOf(' ') > -1) {\n formatAllow = false;\n } else if (auth.indexOf('q-sign-algorithm=') > -1 && auth.indexOf('q-ak=') > -1 && auth.indexOf('q-sign-time=') > -1 && auth.indexOf('q-key-time=') > -1 && auth.indexOf('q-url-param-list=') > -1) {\n formatAllow = true;\n } else {\n try {\n auth = atob(auth);\n if (auth.indexOf('a=') > -1 && auth.indexOf('k=') > -1 && auth.indexOf('t=') > -1 && auth.indexOf('r=') > -1 && auth.indexOf('b=') > -1) {\n formatAllow = true;\n }\n } catch (e) {}\n }\n }\n if (!formatAllow) return util.error(new Error('getAuthorization callback params format error'));\n } else {\n if (!AuthData.TmpSecretId) return util.error(new Error('getAuthorization callback params missing \"TmpSecretId\"'));\n if (!AuthData.TmpSecretKey) return util.error(new Error('getAuthorization callback params missing \"TmpSecretKey\"'));\n if (!AuthData.SecurityToken && !AuthData.XCosSecurityToken) return util.error(new Error('getAuthorization callback params missing \"SecurityToken\"'));\n if (!AuthData.ExpiredTime) return util.error(new Error('getAuthorization callback params missing \"ExpiredTime\"'));\n if (AuthData.ExpiredTime && AuthData.ExpiredTime.toString().length !== 10) return util.error(new Error('getAuthorization callback params \"ExpiredTime\" should be 10 digits'));\n if (AuthData.StartTime && AuthData.StartTime.toString().length !== 10) return util.error(new Error('getAuthorization callback params \"StartTime\" should be 10 StartTime'));\n }\n return false;\n };\n\n // 先判断是否有临时密钥\n if (StsData.ExpiredTime && StsData.ExpiredTime - util.getSkewTime(self.options.SystemClockOffset) / 1000 > 60) {\n // 如果缓存的临时密钥有效,并还有超过60秒有效期就直接使用\n calcAuthByTmpKey();\n } else if (self.options.getAuthorization) {\n // 外部计算签名或获取临时密钥\n self.options.getAuthorization.call(self, {\n Bucket: Bucket,\n Region: Region,\n Method: params.Method,\n Key: KeyName,\n Pathname: Pathname,\n Query: params.Query,\n Headers: headers,\n Scope: Scope,\n SystemClockOffset: self.options.SystemClockOffset,\n ForceSignHost: forceSignHost\n }, function (AuthData) {\n if (typeof AuthData === 'string') AuthData = {\n Authorization: AuthData\n };\n var AuthError = checkAuthError(AuthData);\n if (AuthError) return cb(AuthError);\n if (AuthData.Authorization) {\n cb(null, AuthData);\n } else {\n StsData = AuthData || {};\n StsData.Scope = Scope;\n StsData.ScopeKey = ScopeKey;\n self._StsCache.push(StsData);\n calcAuthByTmpKey();\n }\n });\n } else if (self.options.getSTS) {\n // 外部获取临时密钥\n self.options.getSTS.call(self, {\n Bucket: Bucket,\n Region: Region\n }, function (data) {\n StsData = data || {};\n StsData.Scope = Scope;\n StsData.ScopeKey = ScopeKey;\n if (!StsData.TmpSecretId) StsData.TmpSecretId = StsData.SecretId;\n if (!StsData.TmpSecretKey) StsData.TmpSecretKey = StsData.SecretKey;\n var AuthError = checkAuthError(StsData);\n if (AuthError) return cb(AuthError);\n self._StsCache.push(StsData);\n calcAuthByTmpKey();\n });\n } else {\n // 内部计算获取签名\n return function () {\n var Authorization = util.getAuth({\n SecretId: params.SecretId || self.options.SecretId,\n SecretKey: params.SecretKey || self.options.SecretKey,\n Method: params.Method,\n Pathname: Pathname,\n Query: params.Query,\n Headers: headers,\n Expires: params.Expires,\n UseRawKey: self.options.UseRawKey,\n SystemClockOffset: self.options.SystemClockOffset,\n ForceSignHost: forceSignHost\n });\n var AuthData = {\n Authorization: Authorization,\n SecurityToken: self.options.SecurityToken || self.options.XCosSecurityToken\n };\n cb(null, AuthData);\n return AuthData;\n }();\n }\n return '';\n}\n\n// 调整时间偏差\nfunction allowRetry(err) {\n var allowRetry = false;\n var isTimeError = false;\n var serverDate = err.headers && (err.headers.date || err.headers.Date) || err.error && err.error.ServerTime;\n try {\n var errorCode = err.error.Code;\n var errorMessage = err.error.Message;\n if (errorCode === 'RequestTimeTooSkewed' || errorCode === 'AccessDenied' && errorMessage === 'Request has expired') {\n isTimeError = true;\n }\n } catch (e) {}\n if (err) {\n if (isTimeError && serverDate) {\n var serverTime = Date.parse(serverDate);\n if (this.options.CorrectClockSkew && Math.abs(util.getSkewTime(this.options.SystemClockOffset) - serverTime) >= 30000) {\n console.error('error: Local time is too skewed.');\n this.options.SystemClockOffset = serverTime - Date.now();\n allowRetry = true;\n }\n } else if (Math.floor(err.statusCode / 100) === 5) {\n allowRetry = true;\n }\n }\n return allowRetry;\n}\n\n// 获取签名并发起请求\nfunction submitRequest(params, callback) {\n var self = this;\n\n // 处理 headers\n !params.headers && (params.headers = {});\n\n // 处理 query\n !params.qs && (params.qs = {});\n params.VersionId && (params.qs.versionId = params.VersionId);\n params.qs = util.clearKey(params.qs);\n\n // 清理 undefined 和 null 字段\n params.headers && (params.headers = util.clearKey(params.headers));\n params.qs && (params.qs = util.clearKey(params.qs));\n var Query = util.clone(params.qs);\n params.action && (Query[params.action] = '');\n var paramsUrl = params.url || params.Url;\n var SignHost = params.SignHost || getSignHost.call(this, {\n Bucket: params.Bucket,\n Region: params.Region,\n Url: paramsUrl\n });\n var tracker = params.tracker;\n var next = function next(tryTimes) {\n var oldClockOffset = self.options.SystemClockOffset;\n tracker && tracker.setParams({\n signStartTime: new Date().getTime(),\n retryTimes: tryTimes - 1\n });\n getAuthorizationAsync.call(self, {\n Bucket: params.Bucket || '',\n Region: params.Region || '',\n Method: params.method,\n Key: params.Key,\n Query: Query,\n Headers: params.headers,\n SignHost: SignHost,\n Action: params.Action,\n ResourceKey: params.ResourceKey,\n Scope: params.Scope,\n ForceSignHost: self.options.ForceSignHost\n }, function (err, AuthData) {\n if (err) {\n callback(err);\n return;\n }\n tracker && tracker.setParams({\n signEndTime: new Date().getTime(),\n httpStartTime: new Date().getTime()\n });\n params.AuthData = AuthData;\n _submitRequest.call(self, params, function (err, data) {\n tracker && tracker.setParams({\n httpEndTime: new Date().getTime()\n });\n if (err && tryTimes < 2 && (oldClockOffset !== self.options.SystemClockOffset || allowRetry.call(self, err))) {\n if (params.headers) {\n delete params.headers.Authorization;\n delete params.headers['token'];\n delete params.headers['clientIP'];\n delete params.headers['clientUA'];\n params.headers['x-cos-security-token'] && delete params.headers['x-cos-security-token'];\n params.headers['x-ci-security-token'] && delete params.headers['x-ci-security-token'];\n }\n next(tryTimes + 1);\n } else {\n callback(err, data);\n }\n });\n });\n };\n next(1);\n}\n\n// 发起请求\nfunction _submitRequest(params, callback) {\n var self = this;\n var TaskId = params.TaskId;\n if (TaskId && !self._isRunningTask(TaskId)) return;\n var bucket = params.Bucket;\n var region = params.Region;\n var object = params.Key;\n var method = params.method || 'GET';\n var url = params.Url || params.url;\n var body = params.body;\n var rawBody = params.rawBody;\n\n // url\n if (self.options.UseAccelerate) {\n region = 'accelerate';\n }\n url = url || getUrl({\n ForcePathStyle: self.options.ForcePathStyle,\n protocol: self.options.Protocol,\n domain: self.options.Domain,\n bucket: bucket,\n region: region,\n object: object\n });\n if (params.action) {\n // 已知问题,某些版本的qq会对url自动拼接(比如/upload被拼接成/upload=(null))导致签名错误,这里做下兼容。\n url = url + '?' + (util.isIOS_QQ ? \"\".concat(params.action, \"=\") : params.action);\n }\n if (params.qsStr) {\n if (url.indexOf('?') > -1) {\n url = url + '&' + params.qsStr;\n } else {\n url = url + '?' + params.qsStr;\n }\n }\n var opt = {\n method: method,\n url: url,\n headers: params.headers,\n qs: params.qs,\n body: body\n };\n\n // 兼容ci接口\n var token = 'x-cos-security-token';\n if (util.isCIHost(url)) {\n token = 'x-ci-security-token';\n }\n\n // 获取签名\n opt.headers.Authorization = params.AuthData.Authorization;\n params.AuthData.Token && (opt.headers['token'] = params.AuthData.Token);\n params.AuthData.ClientIP && (opt.headers['clientIP'] = params.AuthData.ClientIP);\n params.AuthData.ClientUA && (opt.headers['clientUA'] = params.AuthData.ClientUA);\n params.AuthData.SecurityToken && (opt.headers[token] = params.AuthData.SecurityToken);\n\n // 清理 undefined 和 null 字段\n opt.headers && (opt.headers = util.clearKey(opt.headers));\n opt = util.clearKey(opt);\n\n // progress\n if (params.onProgress && typeof params.onProgress === 'function') {\n var contentLength = body && (body.size || body.length) || 0;\n opt.onProgress = function (e) {\n if (TaskId && !self._isRunningTask(TaskId)) return;\n var loaded = e ? e.loaded : 0;\n params.onProgress({\n loaded: loaded,\n total: contentLength\n });\n };\n }\n if (params.onDownloadProgress) {\n opt.onDownloadProgress = params.onDownloadProgress;\n }\n if (params.DataType) {\n opt.dataType = params.DataType;\n }\n if (this.options.Timeout) {\n opt.timeout = this.options.Timeout;\n }\n self.options.ForcePathStyle && (opt.pathStyle = self.options.ForcePathStyle);\n self.emit('before-send', opt);\n var useAccelerate = opt.url.includes('accelerate.');\n var queryString = opt.qs ? Object.keys(opt.qs).map(function (key) {\n return \"\".concat(key, \"=\").concat(opt.qs[key]);\n }).join('&') : '';\n var fullUrl = queryString ? opt.url + '?' + queryString : opt.url;\n params.tracker && params.tracker.setParams({\n reqUrl: fullUrl,\n accelerate: useAccelerate ? 'Y' : 'N'\n });\n // 分块上传时给父级tracker设置url信息\n params.tracker && params.tracker.parent && params.tracker.parent.setParams({\n reqUrl: fullUrl,\n accelerate: useAccelerate ? 'Y' : 'N'\n });\n var sender = (self.options.Request || REQUEST)(opt, function (r) {\n if (r && r.error === 'abort') return;\n var receive = {\n options: opt,\n error: r && r.error,\n statusCode: r && r.statusCode || 0,\n statusMessage: r && r.statusMessage || '',\n headers: r && r.headers || {},\n body: r && r.body\n };\n // 抛出事件,允许修改返回值的 error、statusCode、statusMessage、body\n self.emit('after-receive', receive);\n var err = receive.error;\n var body = receive.body;\n // 返回内容添加 状态码 和 headers\n var response = {\n statusCode: receive.statusCode,\n statusMessage: receive.statusMessage,\n headers: receive.headers\n };\n var hasReturned;\n var cb = function cb(err, data) {\n TaskId && self.off('inner-kill-task', killTask);\n if (hasReturned) return;\n hasReturned = true;\n var attrs = {};\n response && response.statusCode && (attrs.statusCode = response.statusCode);\n response && response.headers && (attrs.headers = response.headers);\n if (err) {\n err = util.extend(err || {}, attrs);\n callback(err, null);\n } else {\n data = util.extend(data || {}, attrs);\n callback(null, data);\n }\n sender = null;\n };\n\n // 请求错误,发生网络错误\n if (err) return cb(util.error(err));\n\n // 请求返回码不为 200\n var statusCode = response.statusCode;\n var statusSuccess = Math.floor(statusCode / 100) === 2; // 200 202 204 206\n\n // 不对 body 进行转换,body 直接挂载返回\n if (rawBody && statusSuccess) return cb(null, {\n body: body\n });\n\n // 解析 xml body\n var json;\n try {\n json = body && body.indexOf('<') > -1 && body.indexOf('>') > -1 && util.xml2json(body) || {};\n } catch (e) {\n json = {};\n }\n\n // 处理返回值\n var xmlError = json && json.Error;\n if (statusSuccess) {\n // 正确返回,状态码 2xx 时,body 不会有 Error\n cb(null, json);\n } else if (xmlError) {\n // 正常返回了 xml body,且有 Error 节点\n cb(util.error(new Error(xmlError.Message), {\n code: xmlError.Code,\n error: xmlError\n }));\n } else if (statusCode) {\n // 有错误的状态码\n cb(util.error(new Error(response.statusMessage), {\n code: '' + statusCode\n }));\n } else if (statusCode) {\n // 无状态码,或者获取不到状态码\n cb(util.error(new Error('statusCode error')));\n }\n });\n\n // kill task\n var killTask = function killTask(data) {\n if (data.TaskId === TaskId) {\n sender && sender.abort && sender.abort();\n self.off('inner-kill-task', killTask);\n }\n };\n TaskId && self.on('inner-kill-task', killTask);\n}\nvar API_MAP = {\n // Bucket 相关方法\n getService: getService,\n // Bucket\n putBucket: putBucket,\n headBucket: headBucket,\n // Bucket\n getBucket: getBucket,\n deleteBucket: deleteBucket,\n putBucketAcl: putBucketAcl,\n // BucketACL\n getBucketAcl: getBucketAcl,\n putBucketCors: putBucketCors,\n // BucketCors\n getBucketCors: getBucketCors,\n deleteBucketCors: deleteBucketCors,\n getBucketLocation: getBucketLocation,\n // BucketLocation\n getBucketPolicy: getBucketPolicy,\n // BucketPolicy\n putBucketPolicy: putBucketPolicy,\n deleteBucketPolicy: deleteBucketPolicy,\n putBucketTagging: putBucketTagging,\n // BucketTagging\n getBucketTagging: getBucketTagging,\n deleteBucketTagging: deleteBucketTagging,\n putBucketLifecycle: putBucketLifecycle,\n // BucketLifecycle\n getBucketLifecycle: getBucketLifecycle,\n deleteBucketLifecycle: deleteBucketLifecycle,\n putBucketVersioning: putBucketVersioning,\n // BucketVersioning\n getBucketVersioning: getBucketVersioning,\n putBucketReplication: putBucketReplication,\n // BucketReplication\n getBucketReplication: getBucketReplication,\n deleteBucketReplication: deleteBucketReplication,\n putBucketWebsite: putBucketWebsite,\n // BucketWebsite\n getBucketWebsite: getBucketWebsite,\n deleteBucketWebsite: deleteBucketWebsite,\n putBucketReferer: putBucketReferer,\n // BucketReferer\n getBucketReferer: getBucketReferer,\n putBucketDomain: putBucketDomain,\n // BucketDomain\n getBucketDomain: getBucketDomain,\n deleteBucketDomain: deleteBucketDomain,\n putBucketOrigin: putBucketOrigin,\n // BucketOrigin\n getBucketOrigin: getBucketOrigin,\n deleteBucketOrigin: deleteBucketOrigin,\n putBucketLogging: putBucketLogging,\n // BucketLogging\n getBucketLogging: getBucketLogging,\n putBucketInventory: putBucketInventory,\n // BucketInventory\n postBucketInventory: postBucketInventory,\n getBucketInventory: getBucketInventory,\n listBucketInventory: listBucketInventory,\n deleteBucketInventory: deleteBucketInventory,\n putBucketAccelerate: putBucketAccelerate,\n getBucketAccelerate: getBucketAccelerate,\n putBucketEncryption: putBucketEncryption,\n getBucketEncryption: getBucketEncryption,\n deleteBucketEncryption: deleteBucketEncryption,\n // Object 相关方法\n getObject: getObject,\n headObject: headObject,\n listObjectVersions: listObjectVersions,\n putObject: putObject,\n deleteObject: deleteObject,\n getObjectAcl: getObjectAcl,\n putObjectAcl: putObjectAcl,\n optionsObject: optionsObject,\n putObjectCopy: putObjectCopy,\n deleteMultipleObject: deleteMultipleObject,\n restoreObject: restoreObject,\n putObjectTagging: putObjectTagging,\n getObjectTagging: getObjectTagging,\n deleteObjectTagging: deleteObjectTagging,\n selectObjectContent: selectObjectContent,\n appendObject: appendObject,\n // 分块上传相关方法\n uploadPartCopy: uploadPartCopy,\n multipartInit: multipartInit,\n multipartUpload: multipartUpload,\n multipartComplete: multipartComplete,\n multipartList: multipartList,\n multipartListPart: multipartListPart,\n multipartAbort: multipartAbort,\n // 工具方法\n request: request,\n getObjectUrl: getObjectUrl,\n getAuth: getAuth\n};\nfunction warnOldApi(apiName, fn, proto) {\n util.each(['Cors', 'Acl'], function (suffix) {\n if (apiName.slice(-suffix.length) === suffix) {\n var oldName = apiName.slice(0, -suffix.length) + suffix.toUpperCase();\n var apiFn = util.apiWrapper(apiName, fn);\n var warned = false;\n proto[oldName] = function () {\n !warned && console.warn('warning: cos.' + oldName + ' has been deprecated. Please Use cos.' + apiName + ' instead.');\n warned = true;\n apiFn.apply(this, arguments);\n };\n }\n });\n}\nmodule.exports.init = function (COS, task) {\n task.transferToTaskMethod(API_MAP, 'putObject');\n util.each(API_MAP, function (fn, apiName) {\n COS.prototype[apiName] = util.apiWrapper(apiName, fn);\n warnOldApi(apiName, fn, COS.prototype);\n });\n};\n\n/***/ }),\n\n/***/ \"./src/cos.js\":\n/*!********************!*\\\n !*** ./src/cos.js ***!\n \\********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\nvar event = __webpack_require__(/*! ./event */ \"./src/event.js\");\nvar task = __webpack_require__(/*! ./task */ \"./src/task.js\");\nvar base = __webpack_require__(/*! ./base */ \"./src/base.js\");\nvar advance = __webpack_require__(/*! ./advance */ \"./src/advance.js\");\nvar pkg = __webpack_require__(/*! ../package.json */ \"./package.json\");\nvar defaultOptions = {\n AppId: '',\n // AppId 已废弃,请拼接到 Bucket 后传入,例如:test-1250000000\n SecretId: '',\n SecretKey: '',\n SecurityToken: '',\n // 使用临时密钥需要注意自行刷新 Token\n ChunkRetryTimes: 2,\n FileParallelLimit: 3,\n ChunkParallelLimit: 3,\n ChunkSize: 1024 * 1024,\n SliceSize: 1024 * 1024,\n CopyChunkParallelLimit: 20,\n CopyChunkSize: 1024 * 1024 * 10,\n CopySliceSize: 1024 * 1024 * 10,\n MaxPartNumber: 10000,\n ProgressInterval: 1000,\n Domain: '',\n ServiceDomain: '',\n Protocol: '',\n CompatibilityMode: false,\n ForcePathStyle: false,\n UseRawKey: false,\n Timeout: 0,\n // 单位毫秒,0 代表不设置超时时间\n CorrectClockSkew: true,\n SystemClockOffset: 0,\n // 单位毫秒,ms\n UploadCheckContentMd5: false,\n UploadQueueSize: 10000,\n UploadAddMetaMd5: false,\n UploadIdCacheLimit: 50,\n UseAccelerate: false,\n ForceSignHost: true,\n // 默认将host加入签名计算,关闭后可能导致越权风险,建议保持为true\n EnableTracker: false,\n // 默认关闭上报\n DeepTracker: false,\n // 上报时是否对每个分块上传做单独上报\n TrackerDelay: 5000,\n // 周期性上报,单位毫秒。0代表实时上报\n CustomId: '' // 自定义上报id\n};\n\n// 对外暴露的类\nvar COS = function COS(options) {\n this.options = util.extend(util.clone(defaultOptions), options || {});\n this.options.FileParallelLimit = Math.max(1, this.options.FileParallelLimit);\n this.options.ChunkParallelLimit = Math.max(1, this.options.ChunkParallelLimit);\n this.options.ChunkRetryTimes = Math.max(0, this.options.ChunkRetryTimes);\n this.options.ChunkSize = Math.max(1024 * 1024, this.options.ChunkSize);\n this.options.CopyChunkParallelLimit = Math.max(1, this.options.CopyChunkParallelLimit);\n this.options.CopyChunkSize = Math.max(1024 * 1024, this.options.CopyChunkSize);\n this.options.CopySliceSize = Math.max(0, this.options.CopySliceSize);\n this.options.MaxPartNumber = Math.max(1024, Math.min(10000, this.options.MaxPartNumber));\n this.options.Timeout = Math.max(0, this.options.Timeout);\n if (this.options.AppId) {\n console.warn('warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g: \"test-1250000000\").');\n }\n if (this.options.SecretId && this.options.SecretId.indexOf(' ') > -1) {\n console.error('error: SecretId格式错误,请检查');\n console.error('error: SecretId format is incorrect. Please check');\n }\n if (this.options.SecretKey && this.options.SecretKey.indexOf(' ') > -1) {\n console.error('error: SecretKey格式错误,请检查');\n console.error('error: SecretKey format is incorrect. Please check');\n }\n if (util.isNode()) {\n console.warn('warning: cos-js-sdk-v5 不支持 nodejs 环境使用,请改用 cos-nodejs-sdk-v5,参考文档: https://cloud.tencent.com/document/product/436/8629');\n console.warn('warning: cos-js-sdk-v5 does not support nodejs environment. Please use cos-nodejs-sdk-v5 instead. See: https://cloud.tencent.com/document/product/436/8629');\n }\n event.init(this);\n task.init(this);\n};\nbase.init(COS, task);\nadvance.init(COS, task);\nCOS.util = {\n md5: util.md5,\n xml2json: util.xml2json,\n json2xml: util.json2xml,\n encodeBase64: util.encodeBase64\n};\nCOS.getAuthorization = util.getAuth;\nCOS.version = pkg.version;\nmodule.exports = COS;\n\n/***/ }),\n\n/***/ \"./src/event.js\":\n/*!**********************!*\\\n !*** ./src/event.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar initEvent = function initEvent(cos) {\n var listeners = {};\n var getList = function getList(action) {\n !listeners[action] && (listeners[action] = []);\n return listeners[action];\n };\n cos.on = function (action, callback) {\n if (action === 'task-list-update') {\n console.warn('warning: Event \"' + action + '\" has been deprecated. Please use \"list-update\" instead.');\n }\n getList(action).push(callback);\n };\n cos.off = function (action, callback) {\n var list = getList(action);\n for (var i = list.length - 1; i >= 0; i--) {\n callback === list[i] && list.splice(i, 1);\n }\n };\n cos.emit = function (action, data) {\n var list = getList(action).map(function (cb) {\n return cb;\n });\n for (var i = 0; i < list.length; i++) {\n list[i](data);\n }\n };\n};\nvar EventProxy = function EventProxy() {\n initEvent(this);\n};\nmodule.exports.init = initEvent;\nmodule.exports.EventProxy = EventProxy;\n\n/***/ }),\n\n/***/ \"./src/session.js\":\n/*!************************!*\\\n !*** ./src/session.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\n\n// 按照文件特征值,缓存 UploadId\nvar cacheKey = 'cos_sdk_upload_cache';\nvar expires = 30 * 24 * 3600;\nvar cache;\nvar timer;\nvar getCache = function getCache() {\n try {\n var val = JSON.parse(localStorage.getItem(cacheKey));\n } catch (e) {}\n if (!val) val = [];\n cache = val;\n};\nvar setCache = function setCache() {\n try {\n if (cache.length) localStorage.setItem(cacheKey, JSON.stringify(cache));else localStorage.removeItem(cacheKey);\n } catch (e) {}\n};\nvar init = function init() {\n if (cache) return;\n getCache.call(this);\n // 清理太老旧的数据\n var changed = false;\n var now = Math.round(Date.now() / 1000);\n for (var i = cache.length - 1; i >= 0; i--) {\n var mtime = cache[i][2];\n if (!mtime || mtime + expires < now) {\n cache.splice(i, 1);\n changed = true;\n }\n }\n changed && setCache();\n};\n\n// 把缓存存到本地\nvar save = function save() {\n if (timer) return;\n timer = setTimeout(function () {\n setCache();\n timer = null;\n }, 400);\n};\nvar mod = {\n using: {},\n // 标记 UploadId 正在使用\n setUsing: function setUsing(uuid) {\n mod.using[uuid] = true;\n },\n // 标记 UploadId 已经没在使用\n removeUsing: function removeUsing(uuid) {\n delete mod.using[uuid];\n },\n // 用上传参数生成哈希值\n getFileId: function getFileId(file, ChunkSize, Bucket, Key) {\n if (file.name && file.size && file.lastModifiedDate && ChunkSize) {\n return util.md5([file.name, file.size, file.lastModifiedDate, ChunkSize, Bucket, Key].join('::'));\n } else {\n return null;\n }\n },\n // 用上传参数生成哈希值\n getCopyFileId: function getCopyFileId(copySource, sourceHeaders, ChunkSize, Bucket, Key) {\n var size = sourceHeaders['content-length'];\n var etag = sourceHeaders.etag || '';\n var lastModified = sourceHeaders['last-modified'];\n if (copySource && ChunkSize) {\n return util.md5([copySource, size, etag, lastModified, ChunkSize, Bucket, Key].join('::'));\n } else {\n return null;\n }\n },\n // 获取文件对应的 UploadId 列表\n getUploadIdList: function getUploadIdList(uuid) {\n if (!uuid) return null;\n init.call(this);\n var list = [];\n for (var i = 0; i < cache.length; i++) {\n if (cache[i][0] === uuid) list.push(cache[i][1]);\n }\n return list.length ? list : null;\n },\n // 缓存 UploadId\n saveUploadId: function saveUploadId(uuid, UploadId, limit) {\n init.call(this);\n if (!uuid) return;\n // 清理没用的 UploadId,js 文件没有 FilePath ,只清理相同记录\n for (var i = cache.length - 1; i >= 0; i--) {\n var item = cache[i];\n if (item[0] === uuid && item[1] === UploadId) {\n cache.splice(i, 1);\n }\n }\n cache.unshift([uuid, UploadId, Math.round(Date.now() / 1000)]);\n if (cache.length > limit) cache.splice(limit);\n save();\n },\n // UploadId 已用完,移除掉\n removeUploadId: function removeUploadId(UploadId) {\n init.call(this);\n delete mod.using[UploadId];\n for (var i = cache.length - 1; i >= 0; i--) {\n if (cache[i][1] === UploadId) cache.splice(i, 1);\n }\n save();\n }\n};\nmodule.exports = mod;\n\n/***/ }),\n\n/***/ \"./src/task.js\":\n/*!*********************!*\\\n !*** ./src/task.js ***!\n \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar session = __webpack_require__(/*! ./session */ \"./src/session.js\");\nvar util = __webpack_require__(/*! ./util */ \"./src/util.js\");\nvar originApiMap = {};\nvar transferToTaskMethod = function transferToTaskMethod(apiMap, apiName) {\n originApiMap[apiName] = apiMap[apiName];\n apiMap[apiName] = function (params, callback) {\n if (params.SkipTask) {\n originApiMap[apiName].call(this, params, callback);\n } else {\n this._addTask(apiName, params, callback);\n }\n };\n};\nvar initTask = function initTask(cos) {\n var queue = [];\n var tasks = {};\n var uploadingFileCount = 0;\n var nextUploadIndex = 0;\n\n // 接口返回简略的任务信息\n var formatTask = function formatTask(task) {\n var t = {\n id: task.id,\n Bucket: task.Bucket,\n Region: task.Region,\n Key: task.Key,\n FilePath: task.FilePath,\n state: task.state,\n loaded: task.loaded,\n size: task.size,\n speed: task.speed,\n percent: task.percent,\n hashPercent: task.hashPercent,\n error: task.error\n };\n if (task.FilePath) t.FilePath = task.FilePath;\n if (task._custom) t._custom = task._custom; // 控制台使用\n return t;\n };\n var emitListUpdate = function () {\n var timer;\n var emit = function emit() {\n timer = 0;\n cos.emit('task-list-update', {\n list: util.map(queue, formatTask)\n });\n cos.emit('list-update', {\n list: util.map(queue, formatTask)\n });\n };\n return function () {\n if (!timer) timer = setTimeout(emit);\n };\n }();\n var clearQueue = function clearQueue() {\n if (queue.length <= cos.options.UploadQueueSize) return;\n for\n\n // 如果还太多,才继续清理\n (var i = 0; i < nextUploadIndex &&\n // 小于当前操作的 index 才清理\n i < queue.length &&\n // 大于队列才清理\n queue.length > cos.options.UploadQueueSize;) {\n var isActive = queue[i].state === 'waiting' || queue[i].state === 'checking' || queue[i].state === 'uploading';\n if (!queue[i] || !isActive) {\n tasks[queue[i].id] && delete tasks[queue[i].id];\n queue.splice(i, 1);\n nextUploadIndex--;\n } else {\n i++;\n }\n }\n emitListUpdate();\n };\n var startNextTask = function startNextTask() {\n // 检查是否允许增加执行进程\n if (uploadingFileCount >= cos.options.FileParallelLimit) return;\n // 跳过不可执行的任务\n while (queue[nextUploadIndex] && queue[nextUploadIndex].state !== 'waiting') nextUploadIndex++;\n // 检查是否已遍历结束\n if (nextUploadIndex >= queue.length) return;\n // 上传该遍历到的任务\n var task = queue[nextUploadIndex];\n nextUploadIndex++;\n uploadingFileCount++;\n task.state = 'checking';\n task.params.onTaskStart && task.params.onTaskStart(formatTask(task));\n !task.params.UploadData && (task.params.UploadData = {});\n var apiParams = util.formatParams(task.api, task.params);\n originApiMap[task.api].call(cos, apiParams, function (err, data) {\n if (!cos._isRunningTask(task.id)) return;\n if (task.state === 'checking' || task.state === 'uploading') {\n task.state = err ? 'error' : 'success';\n err && (task.error = err);\n uploadingFileCount--;\n emitListUpdate();\n startNextTask();\n task.callback && task.callback(err, data);\n if (task.state === 'success') {\n if (task.params) {\n delete task.params.UploadData;\n delete task.params.Body;\n delete task.params;\n }\n delete task.callback;\n }\n }\n clearQueue();\n });\n emitListUpdate();\n // 异步执行下一个任务\n setTimeout(startNextTask);\n };\n var killTask = function killTask(id, switchToState) {\n var task = tasks[id];\n if (!task) return;\n var waiting = task && task.state === 'waiting';\n var running = task && (task.state === 'checking' || task.state === 'uploading');\n if (switchToState === 'canceled' && task.state !== 'canceled' || switchToState === 'paused' && waiting || switchToState === 'paused' && running) {\n if (switchToState === 'paused' && task.params.Body && typeof task.params.Body.pipe === 'function') {\n console.error('stream not support pause');\n return;\n }\n task.state = switchToState;\n cos.emit('inner-kill-task', {\n TaskId: id,\n toState: switchToState\n });\n try {\n var UploadId = task && task.params && task.params.UploadData.UploadId;\n } catch (e) {}\n if (switchToState === 'canceled' && UploadId) session.removeUsing(UploadId);\n emitListUpdate();\n if (running) {\n uploadingFileCount--;\n startNextTask();\n }\n if (switchToState === 'canceled') {\n if (task.params) {\n delete task.params.UploadData;\n delete task.params.Body;\n delete task.params;\n }\n delete task.callback;\n }\n }\n clearQueue();\n };\n cos._addTasks = function (taskList) {\n util.each(taskList, function (task) {\n cos._addTask(task.api, task.params, task.callback, true);\n });\n emitListUpdate();\n };\n var isTaskReadyWarning = true;\n cos._addTask = function (api, params, callback, ignoreAddEvent) {\n // 复制参数对象\n params = util.formatParams(api, params);\n\n // 生成 id\n var id = util.uuid();\n params.TaskId = id;\n params.onTaskReady && params.onTaskReady(id);\n if (params.TaskReady) {\n params.TaskReady(id);\n isTaskReadyWarning && console.warn('warning: Param \"TaskReady\" has been deprecated. Please use \"onTaskReady\" instead.');\n isTaskReadyWarning = false;\n }\n var task = {\n // env\n params: params,\n callback: callback,\n api: api,\n index: queue.length,\n // task\n id: id,\n Bucket: params.Bucket,\n Region: params.Region,\n Key: params.Key,\n FilePath: params.FilePath || '',\n state: 'waiting',\n loaded: 0,\n size: 0,\n speed: 0,\n percent: 0,\n hashPercent: 0,\n error: null,\n _custom: params._custom\n };\n var onHashProgress = params.onHashProgress;\n params.onHashProgress = function (info) {\n if (!cos._isRunningTask(task.id)) return;\n task.hashPercent = info.percent;\n onHashProgress && onHashProgress(info);\n emitListUpdate();\n };\n var onProgress = params.onProgress;\n params.onProgress = function (info) {\n if (!cos._isRunningTask(task.id)) return;\n task.state === 'checking' && (task.state = 'uploading');\n task.loaded = info.loaded;\n task.speed = info.speed;\n task.percent = info.percent;\n onProgress && onProgress(info);\n emitListUpdate();\n };\n\n // 异步获取 filesize\n util.getFileSize(api, params, function (err, size) {\n // 开始处理上传\n if (err) return callback(util.error(err)); // 如果获取大小出错,不加入队列\n // 获取完文件大小再把任务加入队列\n tasks[id] = task;\n queue.push(task);\n task.size = size;\n !ignoreAddEvent && emitListUpdate();\n startNextTask();\n clearQueue();\n });\n return id;\n };\n cos._isRunningTask = function (id) {\n var task = tasks[id];\n return !!(task && (task.state === 'checking' || task.state === 'uploading'));\n };\n cos.getTaskList = function () {\n return util.map(queue, formatTask);\n };\n cos.cancelTask = function (id) {\n killTask(id, 'canceled');\n };\n cos.pauseTask = function (id) {\n killTask(id, 'paused');\n };\n cos.restartTask = function (id) {\n var task = tasks[id];\n if (task && (task.state === 'paused' || task.state === 'error')) {\n task.state = 'waiting';\n emitListUpdate();\n nextUploadIndex = Math.min(nextUploadIndex, task.index);\n startNextTask();\n }\n };\n cos.isUploadRunning = function () {\n return uploadingFileCount || nextUploadIndex < queue.length;\n };\n};\nmodule.exports.transferToTaskMethod = transferToTaskMethod;\nmodule.exports.init = initTask;\n\n/***/ }),\n\n/***/ \"./src/tracker.js\":\n/*!************************!*\\\n !*** ./src/tracker.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\nvar _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar pkg = __webpack_require__(/*! ../package.json */ \"./package.json\");\nvar beacon = null;\nvar getBeacon = function getBeacon(delay) {\n if (!beacon) {\n // 不放在顶层是避免首次引入就被加载,从而避免在某些环境比如webworker里加载灯塔sdk内window相关对象报错\n var BeaconAction = __webpack_require__(/*! ../lib/beacon.min */ \"./lib/beacon.min.js\");\n beacon = new BeaconAction({\n appkey: '0AND0VEVB24UBGDU',\n versionCode: pkg.version,\n channelID: 'js_sdk',\n //渠道,选填\n openid: 'openid',\n // 用户id, 选填\n unionid: 'unid',\n //用户unionid , 类似idfv,选填\n strictMode: false,\n //严苛模式开关, 打开严苛模式会主动抛出异常, 上线请务必关闭!!!\n delay: delay,\n // 普通事件延迟上报时间(单位毫秒), 默认1000(1秒),选填\n sessionDuration: 60 * 1000 // session变更的时间间隔, 一个用户持续30分钟(默认值)没有任何上报则算另一次 session,每变更一次session上报一次启动事件(rqd_applaunched),使用毫秒(ms),最小值30秒,选填\n });\n }\n\n return beacon;\n};\nvar utils = {\n // 生成uid 每个链路对应唯一一条uid\n getUid: function getUid() {\n var S4 = function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n };\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n },\n // 获取网络类型\n getNetType: function getNetType() {\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object') {\n var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;\n return (connection === null || connection === void 0 ? void 0 : connection.type) || (connection === null || connection === void 0 ? void 0 : connection.effectiveType) || 'unknown';\n }\n return 'unknown';\n },\n // 获取pc端操作系统类型\n getOsType: function getOsType() {\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n return 'unknown os';\n }\n var agent = navigator.userAgent.toLowerCase();\n var isMac = /macintosh|mac os x/i.test(navigator.userAgent);\n if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {\n return 'win32';\n }\n if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {\n return 'win64';\n }\n if (isMac) {\n return 'mac';\n }\n return 'unknown os';\n },\n isMobile: function isMobile() {\n var exp = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.userAgent.match(exp)) {\n return true; // 移动端\n }\n\n return false; // PC端\n },\n isAndroid: function isAndroid() {\n var exp = /(Android|Adr|Linux)/i;\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.userAgent.match(exp)) {\n return true;\n }\n return false;\n },\n isIOS: function isIOS() {\n var exp = /(iPhone|iPod|iPad|iOS)/i;\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.userAgent.match(exp)) {\n return true;\n }\n return false;\n },\n isOtherMobile: function isOtherMobile() {\n return isMobile && !isAndroid && !isIOS;\n },\n // 获取浏览器类型\n getDeviceName: function getDeviceName() {\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n return 'unknown device';\n }\n var explorer = navigator.userAgent.toLowerCase();\n // 腾讯会议内置浏览器\n if (explorer.includes('app/tencent_wemeet')) {\n return 'tencent_wemeet';\n }\n // 遨游浏览器\n if (explorer.indexOf('maxthon') >= 0) {\n var match = explorer.match(/maxthon\\/([\\d.]+)/);\n var ver = match && match[1] || '';\n return \"\\u50B2\\u6E38\\u6D4F\\u89C8\\u5668 \".concat(ver).trim();\n }\n // QQ浏览器\n if (explorer.indexOf('qqbrowser') >= 0) {\n var _match = explorer.match(/qqbrowser\\/([\\d.]+)/);\n var _ver = _match && _match[1] || '';\n return \"QQ\\u6D4F\\u89C8\\u5668 \".concat(_ver).trim();\n }\n // 搜狗浏览器\n if (explorer.indexOf('se 2.x') >= 0) {\n return '搜狗浏览器';\n }\n // 微信浏览器\n if (explorer.indexOf('wxwork') >= 0) {\n return '微信内置浏览器';\n }\n // ie\n if (explorer.indexOf('msie') >= 0) {\n var _match2 = explorer.match(/msie ([\\d.]+)/);\n var _ver2 = _match2 && _match2[1] || '';\n return \"IE \".concat(_ver2).trim();\n }\n // firefox\n if (explorer.indexOf('firefox') >= 0) {\n var _match3 = explorer.match(/firefox\\/([\\d.]+)/);\n var _ver3 = _match3 && _match3[1] || '';\n return \"Firefox \".concat(_ver3).trim();\n }\n // Chrome\n if (explorer.indexOf('chrome') >= 0) {\n var _match4 = explorer.match(/chrome\\/([\\d.]+)/);\n var _ver4 = _match4 && _match4[1] || '';\n return \"Chrome \".concat(_ver4).trim();\n }\n // Opera\n if (explorer.indexOf('opera') >= 0) {\n var _match5 = explorer.match(/opera.([\\d.]+)/);\n var _ver5 = _match5 && _match5[1] || '';\n return \"Opera \".concat(_ver5).trim();\n }\n // Safari\n if (explorer.indexOf('safari') >= 0) {\n var _match6 = explorer.match(/version\\/([\\d.]+)/);\n var _ver6 = _match6 && _match6[1] || '';\n return \"Safari \".concat(_ver6).trim();\n }\n if (explorer.indexOf('edge') >= 0) {\n var _match7 = explorer.match(/edge\\/([\\d.]+)/);\n var _ver7 = _match7 && _match7[1] || '';\n return \"edge \".concat(_ver7).trim();\n }\n return explorer.substr(0, 200);\n }\n};\nvar constant = {\n isMobile: utils.isMobile(),\n isBrowser: !utils.isMobile(),\n mobileOsType: utils.isAndroid() ? 'android' : utils.isIOS ? 'ios' : 'other_mobile',\n pcOsType: utils.getOsType()\n};\n\n// 设备信息,只取一次值\nvar deviceInfo = {\n // ↓上报项\n deviceType: constant.isMobile ? 'mobile' : constant.isBrowser ? 'browser' : 'unknown',\n devicePlatform: constant.isMobile ? constant.mobileOsType : constant.pcOsType,\n deviceName: utils.getDeviceName() //浏览器名称\n};\n\n// 分块上传原子方法\nvar sliceUploadMethods = ['multipartInit', 'multipartUpload', 'multipartComplete', 'multipartList', 'multipartListPart', 'multipartAbort'];\nvar uploadApi = ['putObject', 'postObject', 'appendObject', 'sliceUploadFile', 'uploadFile', 'uploadFiles'].concat(sliceUploadMethods);\nvar downloadApi = ['getObject'];\nfunction getEventCode(apiName) {\n if (uploadApi.includes(apiName)) {\n return 'cos_upload';\n }\n if (downloadApi.includes(apiName)) {\n return 'cos_download';\n }\n return 'base_service';\n}\n\n// 上报参数驼峰改下划线\nfunction camel2underline(key) {\n return key.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\nfunction formatParams(params) {\n var formattedParams = {};\n var allReporterKeys = ['tracePlatform', 'cossdkVersion', 'region', 'networkType', 'host', 'accelerate', 'requestPath', 'size', 'httpMd5', 'httpSign', 'httpFull', 'name', 'result', 'tookTime', 'errorNode', 'errorCode', 'errorMessage', 'errorRequestId', 'errorStatusCode', 'errorServiceName', 'errorType', 'traceId', 'bucket', 'appid', 'partNumber', 'retryTimes', 'reqUrl', 'customId', 'fullError', 'deviceType', 'devicePlatform', 'deviceName'];\n var successKeys = ['tracePlatform', 'cossdkVersion', 'region', 'bucket', 'appid', 'networkType', 'host', 'accelerate', 'requestPath', 'partNumber', 'size', 'name', 'result', 'tookTime', 'errorRequestId', 'retryTimes', 'reqUrl', 'customId', 'deviceType', 'devicePlatform', 'deviceName'];\n // 需要上报的参数字段\n var reporterKeys = params.result === 'Success' ? successKeys : allReporterKeys;\n for (var key in params) {\n if (!reporterKeys.includes(key)) continue;\n var formattedKey = camel2underline(key);\n formattedParams[formattedKey] = params[key];\n }\n return formattedParams;\n}\n\n// 链路追踪器\nvar Tracker = /*#__PURE__*/function () {\n \"use strict\";\n\n function Tracker(opt) {\n _classCallCheck(this, Tracker);\n var parent = opt.parent,\n traceId = opt.traceId,\n bucket = opt.bucket,\n region = opt.region,\n apiName = opt.apiName,\n fileKey = opt.fileKey,\n fileSize = opt.fileSize,\n accelerate = opt.accelerate,\n customId = opt.customId,\n delay = opt.delay,\n deepTracker = opt.deepTracker;\n var appid = bucket && bucket.substr(bucket.lastIndexOf('-') + 1) || '';\n this.parent = parent;\n this.deepTracker = deepTracker;\n this.delay = delay;\n // 上报用到的字段\n this.params = {\n // 通用字段\n cossdkVersion: pkg.version,\n region: region,\n networkType: '',\n host: '',\n accelerate: accelerate ? 'Y' : 'N',\n requestPath: fileKey || '',\n size: fileSize || -1,\n httpMd5: 0,\n // MD5耗时\n httpSign: 0,\n // 计算签名耗时\n httpFull: 0,\n // http请求耗时\n name: apiName || '',\n result: '',\n // sdk api调用结果Success、Fail\n tookTime: 0,\n // 总耗时\n errorNode: '',\n errorCode: '',\n errorMessage: '',\n errorRequestId: '',\n errorStatusCode: 0,\n errorServiceName: '',\n // js补充字段\n tracePlatform: 'cos-js-sdk-v5',\n // 上报平台=js\n traceId: traceId || utils.getUid(),\n // 每条上报唯一标识\n bucket: bucket,\n appid: appid,\n partNumber: 0,\n // 分块上传编号\n retryTimes: 0,\n // sdk内部发起的请求重试\n reqUrl: '',\n // 请求url\n customId: customId || '',\n // 业务id\n deviceType: deviceInfo.deviceType,\n // 设备类型 移动端浏览器、web浏览器\n devicePlatform: deviceInfo.devicePlatform,\n deviceName: deviceInfo.deviceName,\n md5StartTime: 0,\n // md5计算开始时间\n md5EndTime: 0,\n // md5计算结束时间\n signStartTime: 0,\n // 计算签名开始时间\n signEndTime: 0,\n // 计算签名结束时间\n httpStartTime: 0,\n // 发起网络请求开始时间\n httpEndTime: 0,\n // 网路请求结束时间\n startTime: new Date().getTime(),\n // sdk api调用起始时间,不是纯网络耗时\n endTime: 0 // sdk api调用结束时间,不是纯网络耗时\n };\n\n this.beacon = getBeacon(delay);\n }\n\n // 格式化sdk回调\n _createClass(Tracker, [{\n key: \"formatResult\",\n value: function formatResult(err, data) {\n var _err$error, _err$error2, _err$error3, _err$error4, _err$error5, _err$error6;\n var now = new Date().getTime();\n var tookTime = now - this.params.startTime;\n var networkType = utils.getNetType();\n var errorCode = err ? (err === null || err === void 0 ? void 0 : err.code) || (err === null || err === void 0 ? void 0 : (_err$error = err.error) === null || _err$error === void 0 ? void 0 : _err$error.code) || (err === null || err === void 0 ? void 0 : (_err$error2 = err.error) === null || _err$error2 === void 0 ? void 0 : _err$error2.Code) : '';\n var errorMessage = err ? (err === null || err === void 0 ? void 0 : err.message) || (err === null || err === void 0 ? void 0 : (_err$error3 = err.error) === null || _err$error3 === void 0 ? void 0 : _err$error3.message) || (err === null || err === void 0 ? void 0 : (_err$error4 = err.error) === null || _err$error4 === void 0 ? void 0 : _err$error4.Message) : '';\n var errorServiceName = err ? (err === null || err === void 0 ? void 0 : err.resource) || (err === null || err === void 0 ? void 0 : (_err$error5 = err.error) === null || _err$error5 === void 0 ? void 0 : _err$error5.resource) || (err === null || err === void 0 ? void 0 : (_err$error6 = err.error) === null || _err$error6 === void 0 ? void 0 : _err$error6.Resource) : '';\n var errorStatusCode = err ? err === null || err === void 0 ? void 0 : err.statusCode : data.statusCode;\n var requestId = err ? (err === null || err === void 0 ? void 0 : err.headers) && (err === null || err === void 0 ? void 0 : err.headers['x-cos-request-id']) : (data === null || data === void 0 ? void 0 : data.headers) && (data === null || data === void 0 ? void 0 : data.headers['x-cos-request-id']);\n var errorType = err ? requestId ? 'Server' : 'Client' : '';\n Object.assign(this.params, {\n tookTime: tookTime,\n networkType: networkType,\n httpMd5: this.params.md5EndTime - this.params.md5StartTime,\n httpSign: this.params.signEndTime - this.params.signStartTime,\n httpFull: this.params.httpEndTime - this.params.httpStartTime,\n result: err ? 'Fail' : 'Success',\n errorType: errorType,\n errorCode: errorCode,\n errorStatusCode: errorStatusCode,\n errorMessage: errorMessage,\n errorServiceName: errorServiceName,\n errorRequestId: requestId\n });\n if (err && (!errorCode || !errorMessage)) {\n // 暂存全量err一段时间 观察是否所有err格式都可被解析\n this.params.fullError = err ? JSON.stringify(err) : '';\n }\n if (this.params.name === 'getObject') {\n this.params.size = data ? data.headers && data.headers['content-length'] : -1;\n }\n if (this.params.reqUrl) {\n try {\n var execRes = /^http(s)?:\\/\\/(.*?)\\//.exec(this.params.reqUrl);\n this.params.host = execRes[2];\n } catch (e) {\n this.params.host = this.params.reqUrl;\n }\n }\n this.sendEvents();\n }\n\n // 设置当前链路的参数\n }, {\n key: \"setParams\",\n value: function setParams(params) {\n Object.assign(this.params, params);\n }\n\n // 使用灯塔延时上报\n }, {\n key: \"sendEvents\",\n value: function sendEvents() {\n // DeepTracker模式下才会上报分块上传内部细节\n if (sliceUploadMethods.includes(this.params.name) && !this.deepTracker) {\n return;\n }\n var eventCode = getEventCode(this.params.name);\n var formattedParams = formatParams(this.params);\n\n // 兜底处理\n if (!this.beacon) {\n this.beacon = getBeacon(this.delay || 5000);\n }\n if (this.delay === 0) {\n // 实时上报\n this.beacon && this.beacon.onDirectUserAction(eventCode, formattedParams);\n } else {\n // 周期性上报\n this.beacon && this.beacon.onUserAction(eventCode, formattedParams);\n }\n }\n\n // 生成子实例,与父所属一个链路,可用于分块上传内部流程上报单个分块操作\n }, {\n key: \"generateSubTracker\",\n value: function generateSubTracker(subParams) {\n Object.assign(subParams, {\n parent: this,\n deepTracker: this.deepTracker,\n traceId: this.params.traceId,\n bucket: this.params.bucket,\n region: this.params.region,\n fileKey: this.params.requestPath,\n customId: this.params.customId,\n delay: this.delay\n });\n return new Tracker(subParams);\n }\n }]);\n return Tracker;\n}();\nmodule.exports = Tracker;\n\n/***/ }),\n\n/***/ \"./src/util.js\":\n/*!*********************!*\\\n !*** ./src/util.js ***!\n \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\nvar md5 = __webpack_require__(/*! ../lib/md5 */ \"./lib/md5.js\");\nvar CryptoJS = __webpack_require__(/*! ../lib/crypto */ \"./lib/crypto.js\");\nvar xml2json = __webpack_require__(/*! ../lib/xml2json */ \"./lib/xml2json.js\");\nvar json2xml = __webpack_require__(/*! ../lib/json2xml */ \"./lib/json2xml.js\");\nvar base64 = __webpack_require__(/*! ../lib/base64 */ \"./lib/base64.js\");\nvar Tracker = __webpack_require__(/*! ./tracker */ \"./src/tracker.js\");\nfunction camSafeUrlEncode(str) {\n return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/\\*/g, '%2A');\n}\nfunction getObjectKeys(obj, forKey) {\n var list = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n list.push(forKey ? camSafeUrlEncode(key).toLowerCase() : key);\n }\n }\n return list.sort(function (a, b) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n return a === b ? 0 : a > b ? 1 : -1;\n });\n}\n\n/**\r\n * obj转为string\r\n * @param {Object} obj 需要转的对象,必须\r\n * @param {Boolean} lowerCaseKey key是否转为小写,默认false,非必须\r\n * @return {String} data 返回字符串\r\n */\nvar obj2str = function obj2str(obj, lowerCaseKey) {\n var i, key, val;\n var list = [];\n var keyList = getObjectKeys(obj);\n for (i = 0; i < keyList.length; i++) {\n key = keyList[i];\n val = obj[key] === undefined || obj[key] === null ? '' : '' + obj[key];\n key = lowerCaseKey ? camSafeUrlEncode(key).toLowerCase() : camSafeUrlEncode(key);\n val = camSafeUrlEncode(val) || '';\n list.push(key + '=' + val);\n }\n return list.join('&');\n};\n\n// 可以签入签名的headers\nvar signHeaders = ['cache-control', 'content-disposition', 'content-encoding', 'content-length', 'content-md5', 'expect', 'expires', 'host', 'if-match', 'if-modified-since', 'if-none-match', 'if-unmodified-since', 'origin', 'range', 'transfer-encoding'];\nvar getSignHeaderObj = function getSignHeaderObj(headers) {\n var signHeaderObj = {};\n for (var i in headers) {\n var key = i.toLowerCase();\n if (key.indexOf('x-cos-') > -1 || signHeaders.indexOf(key) > -1) {\n signHeaderObj[i] = headers[i];\n }\n }\n return signHeaderObj;\n};\n\n//测试用的key后面可以去掉\nvar getAuth = function getAuth(opt) {\n opt = opt || {};\n var SecretId = opt.SecretId;\n var SecretKey = opt.SecretKey;\n var KeyTime = opt.KeyTime;\n var method = (opt.method || opt.Method || 'get').toLowerCase();\n var queryParams = clone(opt.Query || opt.params || {});\n var headers = getSignHeaderObj(clone(opt.Headers || opt.headers || {}));\n var Key = opt.Key || '';\n var pathname;\n if (opt.UseRawKey) {\n pathname = opt.Pathname || opt.pathname || '/' + Key;\n } else {\n pathname = opt.Pathname || opt.pathname || Key;\n pathname.indexOf('/') !== 0 && (pathname = '/' + pathname);\n }\n\n // ForceSignHost明确传入false才不加入host签名\n var forceSignHost = opt.ForceSignHost === false ? false : true;\n\n // 如果有传入存储桶且需要强制签名,那么签名默认加 Host 参与计算,避免跨桶访问\n if (!headers.Host && !headers.host && opt.Bucket && opt.Region && forceSignHost) headers.Host = opt.Bucket + '.cos.' + opt.Region + '.myqcloud.com';\n if (!SecretId) throw new Error('missing param SecretId');\n if (!SecretKey) throw new Error('missing param SecretKey');\n\n // 签名有效起止时间\n var now = Math.round(getSkewTime(opt.SystemClockOffset) / 1000) - 1;\n var exp = now;\n var Expires = opt.Expires || opt.expires;\n if (Expires === undefined) {\n exp += 900; // 签名过期时间为当前 + 900s\n } else {\n exp += Expires * 1 || 0;\n }\n\n // 要用到的 Authorization 参数列表\n var qSignAlgorithm = 'sha1';\n var qAk = SecretId;\n var qSignTime = KeyTime || now + ';' + exp;\n var qKeyTime = KeyTime || now + ';' + exp;\n var qHeaderList = getObjectKeys(headers, true).join(';').toLowerCase();\n var qUrlParamList = getObjectKeys(queryParams, true).join(';').toLowerCase();\n\n // 签名算法说明文档:https://www.qcloud.com/document/product/436/7778\n // 步骤一:计算 SignKey\n var signKey = CryptoJS.HmacSHA1(qKeyTime, SecretKey).toString();\n\n // 步骤二:构成 FormatString\n var formatString = [method, pathname, util.obj2str(queryParams, true), util.obj2str(headers, true), ''].join('\\n');\n\n // 步骤三:计算 StringToSign\n var stringToSign = ['sha1', qSignTime, CryptoJS.SHA1(formatString).toString(), ''].join('\\n');\n\n // 步骤四:计算 Signature\n var qSignature = CryptoJS.HmacSHA1(stringToSign, signKey).toString();\n\n // 步骤五:构造 Authorization\n var authorization = ['q-sign-algorithm=' + qSignAlgorithm, 'q-ak=' + qAk, 'q-sign-time=' + qSignTime, 'q-key-time=' + qKeyTime, 'q-header-list=' + qHeaderList, 'q-url-param-list=' + qUrlParamList, 'q-signature=' + qSignature].join('&');\n return authorization;\n};\nvar readIntBE = function readIntBE(chunk, size, offset) {\n var bytes = size / 8;\n var buf = chunk.slice(offset, offset + bytes);\n new Uint8Array(buf).reverse();\n return new {\n 8: Uint8Array,\n 16: Uint16Array,\n 32: Uint32Array\n }[size](buf)[0];\n};\nvar buf2str = function buf2str(chunk, start, end, isUtf8) {\n var buf = chunk.slice(start, end);\n var str = '';\n new Uint8Array(buf).forEach(function (charCode) {\n str += String.fromCharCode(charCode);\n });\n if (isUtf8) str = decodeURIComponent(escape(str));\n return str;\n};\nvar parseSelectPayload = function parseSelectPayload(chunk) {\n var header = {};\n var body = buf2str(chunk);\n var result = {\n records: []\n };\n while (chunk.byteLength) {\n var totalLength = readIntBE(chunk, 32, 0);\n var headerLength = readIntBE(chunk, 32, 4);\n var payloadRestLength = totalLength - headerLength - 16;\n var offset = 0;\n var content;\n chunk = chunk.slice(12);\n // 获取 Message 的 header 信息\n while (offset < headerLength) {\n var headerNameLength = readIntBE(chunk, 8, offset);\n var headerName = buf2str(chunk, offset + 1, offset + 1 + headerNameLength);\n var headerValueLength = readIntBE(chunk, 16, offset + headerNameLength + 2);\n var headerValue = buf2str(chunk, offset + headerNameLength + 4, offset + headerNameLength + 4 + headerValueLength);\n header[headerName] = headerValue;\n offset += headerNameLength + 4 + headerValueLength;\n }\n if (header[':event-type'] === 'Records') {\n content = buf2str(chunk, offset, offset + payloadRestLength, true);\n result.records.push(content);\n } else if (header[':event-type'] === 'Stats') {\n content = buf2str(chunk, offset, offset + payloadRestLength, true);\n result.stats = util.xml2json(content).Stats;\n } else if (header[':event-type'] === 'error') {\n var errCode = header[':error-code'];\n var errMessage = header[':error-message'];\n var err = new Error(errMessage);\n err.message = errMessage;\n err.name = err.code = errCode;\n result.error = err;\n } else if (['Progress', 'Continuation', 'End'].includes(header[':event-type'])) {\n // do nothing\n }\n chunk = chunk.slice(offset + payloadRestLength + 4);\n }\n return {\n payload: result.records.join(''),\n body: body\n };\n};\nvar getSourceParams = function getSourceParams(source) {\n var parser = this.options.CopySourceParser;\n if (parser) return parser(source);\n var m = source.match(/^([^.]+-\\d+)\\.cos(v6|-cdc|-cdz|-internal)?\\.([^.]+)\\.((myqcloud\\.com)|(tencentcos\\.cn))\\/(.+)$/);\n if (!m) return null;\n return {\n Bucket: m[1],\n Region: m[3],\n Key: m[7]\n };\n};\nvar noop = function noop() {};\n\n// 清除对象里值为的 undefined 或 null 的属性\nvar clearKey = function clearKey(obj) {\n var retObj = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] !== undefined && obj[key] !== null) {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n};\nvar readAsBinaryString = function readAsBinaryString(blob, callback) {\n var readFun;\n var fr = new FileReader();\n if (FileReader.prototype.readAsBinaryString) {\n readFun = FileReader.prototype.readAsBinaryString;\n fr.onload = function () {\n callback(this.result);\n };\n } else if (FileReader.prototype.readAsArrayBuffer) {\n // 在 ie11 添加 readAsBinaryString 兼容\n readFun = function readFun(fileData) {\n var binary = '';\n var pt = this;\n var reader = new FileReader();\n reader.onload = function (e) {\n var bytes = new Uint8Array(reader.result);\n var length = bytes.byteLength;\n for (var i = 0; i < length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n callback(binary);\n };\n reader.readAsArrayBuffer(fileData);\n };\n } else {\n console.error('FileReader not support readAsBinaryString');\n }\n readFun.call(fr, blob);\n};\nvar fileSliceNeedCopy = function () {\n var compareVersion = function compareVersion(a, b) {\n a = a.split('.');\n b = b.split('.');\n for (var i = 0; i < b.length; i++) {\n if (a[i] !== b[i]) {\n return parseInt(a[i]) > parseInt(b[i]) ? 1 : -1;\n }\n }\n return 0;\n };\n var check = function check(ua) {\n if (!ua) return false;\n var ChromeVersion = (ua.match(/Chrome\\/([.\\d]+)/) || [])[1];\n var QBCoreVersion = (ua.match(/QBCore\\/([.\\d]+)/) || [])[1];\n var QQBrowserVersion = (ua.match(/QQBrowser\\/([.\\d]+)/) || [])[1];\n var need = ChromeVersion && compareVersion(ChromeVersion, '53.0.2785.116') < 0 && QBCoreVersion && compareVersion(QBCoreVersion, '3.53.991.400') < 0 && QQBrowserVersion && compareVersion(QQBrowserVersion, '9.0.2524.400') <= 0 || false;\n return need;\n };\n return check(typeof navigator !== 'undefined' && navigator.userAgent);\n}();\n\n// 获取文件分片\nvar fileSlice = function fileSlice(file, start, end, isUseToUpload, callback) {\n var blob;\n if (file.slice) {\n blob = file.slice(start, end);\n } else if (file.mozSlice) {\n blob = file.mozSlice(start, end);\n } else if (file.webkitSlice) {\n blob = file.webkitSlice(start, end);\n }\n if (isUseToUpload && fileSliceNeedCopy) {\n var reader = new FileReader();\n reader.onload = function (e) {\n blob = null;\n callback(new Blob([reader.result]));\n };\n reader.readAsArrayBuffer(blob);\n } else {\n callback(blob);\n }\n};\n\n// 获取文件内容的 MD5\nvar getBodyMd5 = function getBodyMd5(UploadCheckContentMd5, Body, callback, onProgress) {\n callback = callback || noop;\n if (UploadCheckContentMd5) {\n if (typeof Body === 'string') {\n callback(util.md5(Body, true));\n } else if (Blob && Body instanceof Blob) {\n util.getFileMd5(Body, function (err, md5) {\n callback(md5);\n }, onProgress);\n } else {\n callback();\n }\n } else {\n callback();\n }\n};\n\n// 获取文件 md5 值\nvar md5ChunkSize = 1024 * 1024;\nvar getFileMd5 = function getFileMd5(blob, callback, onProgress) {\n var size = blob.size;\n var loaded = 0;\n var md5ctx = md5.getCtx();\n var next = function next(start) {\n if (start >= size) {\n var hash = md5ctx.digest('hex');\n callback(null, hash);\n return;\n }\n var end = Math.min(size, start + md5ChunkSize);\n util.fileSlice(blob, start, end, false, function (chunk) {\n readAsBinaryString(chunk, function (content) {\n chunk = null;\n md5ctx = md5ctx.update(content, true);\n loaded += content.length;\n content = null;\n if (onProgress) onProgress({\n loaded: loaded,\n total: size,\n percent: Math.round(loaded / size * 10000) / 10000\n });\n next(start + md5ChunkSize);\n });\n });\n };\n next(0);\n};\nfunction clone(obj) {\n return map(obj, function (v) {\n return _typeof(v) === 'object' && v !== null ? clone(v) : v;\n });\n}\nfunction attr(obj, name, defaultValue) {\n return obj && name in obj ? obj[name] : defaultValue;\n}\nfunction extend(target, source) {\n each(source, function (val, key) {\n target[key] = source[key];\n });\n return target;\n}\nfunction isArray(arr) {\n return arr instanceof Array;\n}\nfunction isInArray(arr, item) {\n var flag = false;\n for (var i = 0; i < arr.length; i++) {\n if (item === arr[i]) {\n flag = true;\n break;\n }\n }\n return flag;\n}\nfunction makeArray(arr) {\n return isArray(arr) ? arr : [arr];\n}\nfunction each(obj, fn) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n fn(obj[i], i);\n }\n }\n}\nfunction map(obj, fn) {\n var o = isArray(obj) ? [] : {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = fn(obj[i], i);\n }\n }\n return o;\n}\nfunction filter(obj, fn) {\n var iaArr = isArray(obj);\n var o = iaArr ? [] : {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (fn(obj[i], i)) {\n if (iaArr) {\n o.push(obj[i]);\n } else {\n o[i] = obj[i];\n }\n }\n }\n }\n return o;\n}\nvar b64 = function b64(str) {\n var i,\n len,\n char,\n res = '';\n for (i = 0, len = str.length / 2; i < len; i++) {\n char = parseInt(str[i * 2] + str[i * 2 + 1], 16);\n res += String.fromCharCode(char);\n }\n return btoa(res);\n};\nvar uuid = function uuid() {\n var S4 = function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n };\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n};\nvar hasMissingParams = function hasMissingParams(apiName, params) {\n var Bucket = params.Bucket;\n var Region = params.Region;\n var Key = params.Key;\n var Domain = this.options.Domain;\n var checkBucket = !Domain || typeof Domain === 'string' && Domain.indexOf('{Bucket}') > -1;\n var checkRegion = !Domain || typeof Domain === 'string' && Domain.indexOf('{Region}') > -1;\n if (apiName.indexOf('Bucket') > -1 || apiName === 'deleteMultipleObject' || apiName === 'multipartList' || apiName === 'listObjectVersions') {\n if (checkBucket && !Bucket) return 'Bucket';\n if (checkRegion && !Region) return 'Region';\n } else if (apiName.indexOf('Object') > -1 || apiName.indexOf('multipart') > -1 || apiName === 'sliceUploadFile' || apiName === 'abortUploadTask') {\n if (checkBucket && !Bucket) return 'Bucket';\n if (checkRegion && !Region) return 'Region';\n if (!Key) return 'Key';\n }\n return false;\n};\nvar formatParams = function formatParams(apiName, params) {\n // 复制参数对象\n params = extend({}, params);\n\n // 统一处理 Headers\n if (apiName !== 'getAuth' && apiName !== 'getV4Auth' && apiName !== 'getObjectUrl') {\n var Headers = params.Headers || {};\n if (params && _typeof(params) === 'object') {\n (function () {\n for (var key in params) {\n if (params.hasOwnProperty(key) && key.indexOf('x-cos-') > -1) {\n Headers[key] = params[key];\n }\n }\n })();\n var headerMap = {\n // params headers\n 'x-cos-mfa': 'MFA',\n 'Content-MD5': 'ContentMD5',\n 'Content-Length': 'ContentLength',\n 'Content-Type': 'ContentType',\n Expect: 'Expect',\n Expires: 'Expires',\n 'Cache-Control': 'CacheControl',\n 'Content-Disposition': 'ContentDisposition',\n 'Content-Encoding': 'ContentEncoding',\n Range: 'Range',\n 'If-Modified-Since': 'IfModifiedSince',\n 'If-Unmodified-Since': 'IfUnmodifiedSince',\n 'If-Match': 'IfMatch',\n 'If-None-Match': 'IfNoneMatch',\n 'x-cos-copy-source': 'CopySource',\n 'x-cos-copy-source-Range': 'CopySourceRange',\n 'x-cos-metadata-directive': 'MetadataDirective',\n 'x-cos-copy-source-If-Modified-Since': 'CopySourceIfModifiedSince',\n 'x-cos-copy-source-If-Unmodified-Since': 'CopySourceIfUnmodifiedSince',\n 'x-cos-copy-source-If-Match': 'CopySourceIfMatch',\n 'x-cos-copy-source-If-None-Match': 'CopySourceIfNoneMatch',\n 'x-cos-acl': 'ACL',\n 'x-cos-grant-read': 'GrantRead',\n 'x-cos-grant-write': 'GrantWrite',\n 'x-cos-grant-full-control': 'GrantFullControl',\n 'x-cos-grant-read-acp': 'GrantReadAcp',\n 'x-cos-grant-write-acp': 'GrantWriteAcp',\n 'x-cos-storage-class': 'StorageClass',\n 'x-cos-traffic-limit': 'TrafficLimit',\n 'x-cos-mime-limit': 'MimeLimit',\n // SSE-C\n 'x-cos-server-side-encryption-customer-algorithm': 'SSECustomerAlgorithm',\n 'x-cos-server-side-encryption-customer-key': 'SSECustomerKey',\n 'x-cos-server-side-encryption-customer-key-MD5': 'SSECustomerKeyMD5',\n // SSE-COS、SSE-KMS\n 'x-cos-server-side-encryption': 'ServerSideEncryption',\n 'x-cos-server-side-encryption-cos-kms-key-id': 'SSEKMSKeyId',\n 'x-cos-server-side-encryption-context': 'SSEContext',\n // 上传时图片处理\n 'Pic-Operations': 'PicOperations'\n };\n util.each(headerMap, function (paramKey, headerKey) {\n if (params[paramKey] !== undefined) {\n Headers[headerKey] = params[paramKey];\n }\n });\n params.Headers = clearKey(Headers);\n }\n }\n return params;\n};\nvar apiWrapper = function apiWrapper(apiName, apiFn) {\n return function (params, callback) {\n var self = this;\n\n // 处理参数\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n // 整理参数格式\n params = formatParams(apiName, params);\n\n // tracker传递\n var tracker;\n if (self.options.EnableTracker) {\n if (params.calledBySdk === 'sliceUploadFile') {\n // 分块上传内部方法使用sliceUploadFile的子链路\n tracker = params.tracker && params.tracker.generateSubTracker({\n apiName: apiName\n });\n } else if (['uploadFile', 'uploadFiles'].includes(apiName)) {\n // uploadFile、uploadFiles方法在内部处理,此处不处理\n tracker = null;\n } else {\n var fileSize = -1;\n if (params.Body) {\n fileSize = typeof params.Body === 'string' ? params.Body.length : params.Body.size || params.Body.byteLength || -1;\n }\n tracker = new Tracker({\n bucket: params.Bucket,\n region: params.Region,\n apiName: apiName,\n fileKey: params.Key,\n fileSize: fileSize,\n deepTracker: self.options.DeepTracker,\n customId: self.options.CustomId,\n delay: self.options.TrackerDelay\n });\n }\n }\n params.tracker = tracker;\n\n // 代理回调函数\n var formatResult = function formatResult(result) {\n if (result && result.headers) {\n result.headers['x-cos-request-id'] && (result.RequestId = result.headers['x-cos-request-id']);\n result.headers['x-ci-request-id'] && (result.RequestId = result.headers['x-ci-request-id']);\n result.headers['x-cos-version-id'] && (result.VersionId = result.headers['x-cos-version-id']);\n result.headers['x-cos-delete-marker'] && (result.DeleteMarker = result.headers['x-cos-delete-marker']);\n }\n return result;\n };\n var _callback = function _callback(err, data) {\n // 格式化上报参数并上报\n tracker && tracker.formatResult(err, data);\n callback && callback(formatResult(err), formatResult(data));\n };\n var checkParams = function checkParams() {\n if (apiName !== 'getService' && apiName !== 'abortUploadTask') {\n // 判断参数是否完整\n var missingResult = hasMissingParams.call(self, apiName, params);\n if (missingResult) {\n return 'missing param ' + missingResult;\n }\n // 判断 region 格式\n if (params.Region) {\n if (self.options.CompatibilityMode) {\n if (!/^([a-z\\d-.]+)$/.test(params.Region)) {\n return 'Region format error.';\n }\n } else {\n if (params.Region.indexOf('cos.') > -1) {\n return 'param Region should not be start with \"cos.\"';\n } else if (!/^([a-z\\d-]+)$/.test(params.Region)) {\n return 'Region format error.';\n }\n }\n // 判断 region 格式\n if (!self.options.CompatibilityMode && params.Region.indexOf('-') === -1 && params.Region !== 'yfb' && params.Region !== 'default' && params.Region !== 'accelerate') {\n console.warn('warning: param Region format error, find help here: https://cloud.tencent.com/document/product/436/6224');\n }\n }\n // 兼容不带 AppId 的 Bucket\n if (params.Bucket) {\n if (!/^([a-z\\d-]+)-(\\d+)$/.test(params.Bucket)) {\n if (params.AppId) {\n params.Bucket = params.Bucket + '-' + params.AppId;\n } else if (self.options.AppId) {\n params.Bucket = params.Bucket + '-' + self.options.AppId;\n } else {\n return 'Bucket should format as \"test-1250000000\".';\n }\n }\n if (params.AppId) {\n console.warn('warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g Bucket:\"test-1250000000\" ).');\n delete params.AppId;\n }\n }\n // 如果 Key 是 / 开头,强制去掉第一个 /\n if (!self.options.UseRawKey && params.Key && params.Key.substr(0, 1) === '/') {\n params.Key = params.Key.substr(1);\n }\n }\n };\n var errMsg = checkParams();\n var isSync = ['getAuth', 'getObjectUrl'].includes(apiName);\n if (typeof Promise === 'function' && !isSync && !callback) {\n return new Promise(function (resolve, reject) {\n callback = function callback(err, data) {\n err ? reject(err) : resolve(data);\n };\n if (errMsg) return _callback(util.error(new Error(errMsg)));\n apiFn.call(self, params, _callback);\n });\n } else {\n if (errMsg) return _callback(util.error(new Error(errMsg)));\n var res = apiFn.call(self, params, _callback);\n if (isSync) return res;\n }\n };\n};\nvar throttleOnProgress = function throttleOnProgress(total, onProgress) {\n var self = this;\n var size0 = 0;\n var size1 = 0;\n var time0 = Date.now();\n var time1;\n var timer;\n function update() {\n timer = 0;\n if (onProgress && typeof onProgress === 'function') {\n time1 = Date.now();\n var speed = Math.max(0, Math.round((size1 - size0) / ((time1 - time0) / 1000) * 100) / 100) || 0;\n var percent;\n if (size1 === 0 && total === 0) {\n percent = 1;\n } else {\n percent = Math.floor(size1 / total * 100) / 100 || 0;\n }\n time0 = time1;\n size0 = size1;\n try {\n onProgress({\n loaded: size1,\n total: total,\n speed: speed,\n percent: percent\n });\n } catch (e) {}\n }\n }\n return function (info, immediately) {\n if (info) {\n size1 = info.loaded;\n total = info.total;\n }\n if (immediately) {\n clearTimeout(timer);\n update();\n } else {\n if (timer) return;\n timer = setTimeout(update, self.options.ProgressInterval);\n }\n };\n};\nvar getFileSize = function getFileSize(api, params, callback) {\n var size;\n if (typeof params.Body === 'string') {\n params.Body = new Blob([params.Body], {\n type: 'text/plain'\n });\n } else if (params.Body instanceof ArrayBuffer) {\n params.Body = new Blob([params.Body]);\n }\n if (params.Body && (params.Body instanceof Blob || params.Body.toString() === '[object File]' || params.Body.toString() === '[object Blob]')) {\n size = params.Body.size;\n } else {\n callback(util.error(new Error('params body format error, Only allow File|Blob|String.')));\n return;\n }\n params.ContentLength = size;\n callback(null, size);\n};\n\n// 获取调正的时间戳\nvar getSkewTime = function getSkewTime(offset) {\n return Date.now() + (offset || 0);\n};\nvar error = function error(err, opt) {\n var sourceErr = err;\n err.message = err.message || null;\n if (typeof opt === 'string') {\n err.error = opt;\n err.message = opt;\n } else if (_typeof(opt) === 'object' && opt !== null) {\n extend(err, opt);\n if (opt.code || opt.name) err.code = opt.code || opt.name;\n if (opt.message) err.message = opt.message;\n if (opt.stack) err.stack = opt.stack;\n }\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {\n writable: true,\n enumerable: false\n });\n Object.defineProperty(err, 'message', {\n enumerable: true\n });\n }\n err.name = opt && opt.name || err.name || err.code || 'Error';\n if (!err.code) err.code = err.name;\n if (!err.error) err.error = clone(sourceErr); // 兼容老的错误格式\n\n return err;\n};\nvar isWebWorker = function isWebWorker() {\n // 有限判断 worker 环境的 constructor name 其次用 worker 独有的 FileReaderSync 兜底 详细参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers\n return (typeof globalThis === \"undefined\" ? \"undefined\" : _typeof(globalThis)) === 'object' && (globalThis.constructor.name === 'DedicatedWorkerGlobalScope' || globalThis.FileReaderSync);\n};\nvar isNode = function isNode() {\n // 得兜底 web worker 环境中 webpack 用了 process 插件之类的情况\n return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== 'object' && (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && \"function\" === 'function' && !isWebWorker();\n};\nvar isCIHost = function isCIHost(url) {\n return /^https?:\\/\\/([^/]+\\.)?ci\\.[^/]+/.test(url);\n};\n\n//判断是否是ios\nvar isIOS = function () {\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n return false;\n }\n var u = navigator.userAgent;\n var isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端\n return isIOS;\n}();\n\n// 判断是qq内置浏览器\nvar isQQ = function () {\n if ((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) !== 'object') {\n return false;\n }\n return /\\sQQ/i.test(navigator.userAgent);\n}();\nvar encodeBase64 = function encodeBase64(str, safe) {\n var base64Str = base64.encode(str);\n // 万象使用的安全base64格式需要特殊处理\n if (safe) {\n base64Str = base64Str.replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '');\n }\n return base64Str;\n};\nvar util = {\n noop: noop,\n formatParams: formatParams,\n apiWrapper: apiWrapper,\n xml2json: xml2json,\n json2xml: json2xml,\n md5: md5,\n clearKey: clearKey,\n fileSlice: fileSlice,\n getBodyMd5: getBodyMd5,\n getFileMd5: getFileMd5,\n b64: b64,\n extend: extend,\n isArray: isArray,\n isInArray: isInArray,\n makeArray: makeArray,\n each: each,\n map: map,\n filter: filter,\n clone: clone,\n attr: attr,\n uuid: uuid,\n camSafeUrlEncode: camSafeUrlEncode,\n throttleOnProgress: throttleOnProgress,\n getFileSize: getFileSize,\n getSkewTime: getSkewTime,\n error: error,\n obj2str: obj2str,\n getAuth: getAuth,\n parseSelectPayload: parseSelectPayload,\n getSourceParams: getSourceParams,\n isBrowser: true,\n isNode: isNode,\n isCIHost: isCIHost,\n isIOS_QQ: isIOS && isQQ,\n encodeBase64: encodeBase64\n};\nmodule.exports = util;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/process/browser.js */ \"./node_modules/process/browser.js\")))\n\n/***/ })\n\n/******/ });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/cos-js-sdk-v5/dist/cos-js-sdk-v5.js\n// module id = vYgC\n// module chunks = 0","// date.js\nexport function formatDate(date, fmt) {\n if (/(y+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));\n }\n let o = {\n 'M+': date.getMonth() + 1,\n 'd+': date.getDate(),\n 'h+': date.getHours(),\n 'm+': date.getMinutes(),\n 's+': date.getSeconds()\n };\n for (let k in o) {\n if (new RegExp(`(${k})`).test(fmt)) {\n let str = o[k] + '';\n fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));\n }\n }\n return fmt;\n}\n\nfunction padLeftZero(str) {\n return ('00' + str).substr(str.length);\n}\n\nexport function str2Date(dateStr, separator) {\n if (!separator) {\n separator = \"-\";\n }\n let dateArr = dateStr.split(separator);\n let year = parseInt(dateArr[0]);\n let month;\n //处理月份为04这样的情况\n if (dateArr[1].indexOf(\"0\") == 0) {\n month = parseInt(dateArr[1].substring(1));\n } else {\n month = parseInt(dateArr[1]);\n }\n let day = parseInt(dateArr[2]);\n let date = new Date(year, month - 1, day);\n return date;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/date.js"],"sourceRoot":""}
|