{"version":3,"sources":["webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/codecs.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack:///./node_modules/element-ui/lib/mixins/focus.js","webpack:///./src/views/cscomponents/OfferInfo.vue","webpack:///src/views/cscomponents/OfferInfo.vue","webpack:///./src/views/cscomponents/OfferInfo.vue?3d75","webpack:///./src/views/cscomponents/OfferInfo.vue?7240","webpack:///./node_modules/element-ui/lib/scrollbar.js","webpack:///./node_modules/element-ui/lib/dropdown-item.js","webpack:///./src/views/cscomponents/elements/DataRow.vue","webpack:///src/views/cscomponents/elements/DataRow.vue","webpack:///./src/views/cscomponents/elements/DataRow.vue?2f58","webpack:///./src/views/cscomponents/elements/DataRow.vue?94a7","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/index.js","webpack:///./src/views/Pages/AVSOffer.vue?f8ef","webpack:///./src/views/Pages/Invoices.vue?857d","webpack:///./src/views/Pages/Documents.vue?7dc0","webpack:///./node_modules/element-ui/lib/utils/scroll-into-view.js","webpack:///./node_modules/videojs-vtt.js/lib/browser-index.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js","webpack:///./src/services/offer.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/media-types.js","webpack:///./node_modules/@videojs/xhr/lib/index.js","webpack:///./node_modules/mux.js/lib/utils/clock.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./src/views/Pages/Documents.vue?e0ec","webpack:///./node_modules/element-ui/lib/utils/resize-event.js","webpack:///./node_modules/element-ui/lib/utils/clickoutside.js","webpack:///./src/views/Pages/Offers.vue","webpack:///src/views/Pages/Offers.vue","webpack:///./src/views/Pages/Offers.vue?f4c1","webpack:///./src/views/Pages/Offers.vue?e5f1","webpack:///./node_modules/vue-select/dist/vue-select.js","webpack:///./node_modules/element-ui/lib/select.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./src/views/Pages/AVSOffer.vue","webpack:///./src/views/cscomponents/avsoffer/Customer.vue","webpack:///src/views/cscomponents/avsoffer/Customer.vue","webpack:///./src/views/cscomponents/avsoffer/Customer.vue?1160","webpack:///./src/views/cscomponents/avsoffer/Customer.vue?5ac0","webpack:///./src/views/cscomponents/avsoffer/Car.vue","webpack:///src/views/cscomponents/avsoffer/Car.vue","webpack:///./src/views/cscomponents/avsoffer/Car.vue?1ea5","webpack:///./src/views/cscomponents/avsoffer/Car.vue?2d60","webpack:///./src/views/cscomponents/avsoffer/Van.vue","webpack:///src/views/cscomponents/avsoffer/Van.vue","webpack:///./src/views/cscomponents/avsoffer/Van.vue?b1a7","webpack:///./src/views/cscomponents/avsoffer/Van.vue?0597","webpack:///./src/views/cscomponents/avsoffer/Insurance.vue","webpack:///src/views/cscomponents/avsoffer/Insurance.vue","webpack:///./src/views/cscomponents/avsoffer/Insurance.vue?7b80","webpack:///./src/views/cscomponents/avsoffer/Insurance.vue?69c6","webpack:///./src/views/cscomponents/avsoffer/Options.vue","webpack:///src/views/cscomponents/avsoffer/Options.vue","webpack:///./src/views/cscomponents/avsoffer/Options.vue?805a","webpack:///./src/views/cscomponents/avsoffer/Options.vue?ed0d","webpack:///./src/views/cscomponents/avsoffer/Pricing.vue","webpack:///src/views/cscomponents/avsoffer/Pricing.vue","webpack:///./src/views/cscomponents/avsoffer/Pricing.vue?9d87","webpack:///./src/views/cscomponents/avsoffer/Pricing.vue?5778","webpack:///src/views/Pages/AVSOffer.vue","webpack:///./src/views/Pages/AVSOffer.vue?d98f","webpack:///./src/views/Pages/AVSOffer.vue?fe2e","webpack:///./node_modules/core-js/modules/es6.number.parse-float.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/containers.js","webpack:///./node_modules/element-ui/lib/mixins/locale.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./src/views/Pages/NewEvb.vue?2adc","webpack:///./node_modules/normalize-wheel/src/isEventSupported.js","webpack:///./node_modules/element-ui/lib/checkbox-group.js","webpack:///./node_modules/mux.js/lib/tools/parse-sidx.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/element-ui/lib/button-group.js","webpack:///./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack:///./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/@xmldom/xmldom/lib/conventions.js","webpack:///./node_modules/@videojs/xhr/lib/http-handler.js","webpack:///./node_modules/safe-json-parse/tuple.js","webpack:///./node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/normalize-wheel/src/ExecutionEnvironment.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./src/views/Tables/RegularTables/LightTable.vue","webpack:///./src/views/Tables/projects.js","webpack:///src/views/Tables/RegularTables/LightTable.vue","webpack:///./src/views/Tables/RegularTables/LightTable.vue?5fc7","webpack:///./src/views/Tables/RegularTables/LightTable.vue?1a01","webpack:///./node_modules/mux.js/lib/utils/numbers.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.js","webpack:///./node_modules/element-ui/lib/table.js","webpack:///./src/views/Pages/Documents.vue","webpack:///src/views/Pages/Documents.vue","webpack:///./src/views/Pages/Documents.vue?1913","webpack:///./src/views/Pages/Documents.vue?f7b4","webpack:///./node_modules/videojs-vtt.js/lib/vttcue.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack:///./node_modules/@xmldom/xmldom/lib/entities.js","webpack:///./node_modules/element-ui/lib/dropdown.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/video.js/node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack:///./src/views/Pages/Training.vue?52cf","webpack:///./node_modules/global/window.js","webpack:///./node_modules/normalize-wheel/index.js","webpack:///./src/views/Pages/Invoices.vue","webpack:///src/views/Pages/Invoices.vue","webpack:///./src/views/Pages/Invoices.vue?3fa7","webpack:///./src/views/Pages/Invoices.vue?3af0","webpack:///./src/views/Pages/Invoices.vue?001b","webpack:///./node_modules/videojs-vtt.js/lib/vtt.js","webpack:///./node_modules/url-toolkit/src/url-toolkit.js","webpack:///./node_modules/normalize-wheel/src/normalizeWheel.js","webpack:///./node_modules/@videojs/vhs-utils/es/stream.js","webpack:///./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack:///./node_modules/core-js/modules/_parse-float.js","webpack:///./node_modules/element-ui/lib/checkbox.js","webpack:///./node_modules/element-ui/lib/dropdown-menu.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/sax.js","webpack:///./src/views/Pages/NewEvb.vue","webpack:///src/views/Pages/NewEvb.vue","webpack:///./src/views/Pages/NewEvb.vue?8fc8","webpack:///./src/views/Pages/NewEvb.vue?a840","webpack:///./node_modules/@xmldom/xmldom/lib/dom.js","webpack:///./node_modules/isarray/index.js","webpack:///./src/views/cscomponents/CalcInfo.vue","webpack:///src/views/cscomponents/CalcInfo.vue","webpack:///./src/views/cscomponents/CalcInfo.vue?67a9","webpack:///./src/views/cscomponents/CalcInfo.vue?0230","webpack:///./node_modules/element-ui/lib/option.js","webpack:///./node_modules/element-ui/lib/table-column.js","webpack:///./src/views/Pages/Login.vue","webpack:///src/views/Pages/Login.vue","webpack:///./src/views/Pages/Login.vue?a309","webpack:///./src/views/Pages/Login.vue?dc57","webpack:///./src/views/Pages/Offer.vue","webpack:///src/views/Pages/Offer.vue","webpack:///./src/views/Pages/Offer.vue?cedb","webpack:///./src/views/Pages/Offer.vue?5456","webpack:///./node_modules/element-ui/lib/button.js","webpack:///./node_modules/global/document.js","webpack:///./node_modules/video.js/dist/video.es.js","webpack:///./src/views/Pages/Training.vue","webpack:///./src/components/VideoPlayer.vue","webpack:///src/components/VideoPlayer.vue","webpack:///./src/components/VideoPlayer.vue?5068","webpack:///./src/components/VideoPlayer.vue?a3be","webpack:///src/views/Pages/Training.vue","webpack:///./src/views/Pages/Training.vue?12bf","webpack:///./src/views/Pages/Training.vue?9694","webpack:///./src/views/Pages/NewOffer.vue","webpack:///./src/views/cscomponents/offer/Customer.vue","webpack:///src/views/cscomponents/offer/Customer.vue","webpack:///./src/views/cscomponents/offer/Customer.vue?3aae","webpack:///./src/views/cscomponents/offer/Customer.vue?0c74","webpack:///./src/views/cscomponents/offer/Car.vue","webpack:///src/views/cscomponents/offer/Car.vue","webpack:///./src/views/cscomponents/offer/Car.vue?88c1","webpack:///./src/views/cscomponents/offer/Car.vue?fba5","webpack:///./src/views/cscomponents/offer/Van.vue","webpack:///src/views/cscomponents/offer/Van.vue","webpack:///./src/views/cscomponents/offer/Van.vue?e32d","webpack:///./src/views/cscomponents/offer/Van.vue?1bc5","webpack:///./src/views/cscomponents/offer/Insurance.vue","webpack:///src/views/cscomponents/offer/Insurance.vue","webpack:///./src/views/cscomponents/offer/Insurance.vue?1750","webpack:///./src/views/cscomponents/offer/Insurance.vue?ba7c","webpack:///./src/views/cscomponents/offer/Options.vue","webpack:///src/views/cscomponents/offer/Options.vue","webpack:///./src/views/cscomponents/offer/Options.vue?a0e4","webpack:///./src/views/cscomponents/offer/Options.vue?b87a","webpack:///src/views/Pages/NewOffer.vue","webpack:///./src/views/Pages/NewOffer.vue?c71b","webpack:///./src/views/Pages/NewOffer.vue?00b7","webpack:///./src/views/Pages/NewContract.vue","webpack:///./src/views/cscomponents/contract/Customer.vue","webpack:///src/views/cscomponents/contract/Customer.vue","webpack:///./src/views/cscomponents/contract/Customer.vue?0043","webpack:///./src/views/cscomponents/contract/Customer.vue?56ad","webpack:///./src/views/cscomponents/contract/Car.vue","webpack:///src/views/cscomponents/contract/Car.vue","webpack:///./src/views/cscomponents/contract/Car.vue?0b8d","webpack:///./src/views/cscomponents/contract/Car.vue?2cd3","webpack:///./src/views/cscomponents/contract/Insurance.vue","webpack:///src/views/cscomponents/contract/Insurance.vue","webpack:///./src/views/cscomponents/contract/Insurance.vue?f4a7","webpack:///./src/views/cscomponents/contract/Insurance.vue?3584","webpack:///./src/views/cscomponents/contract/Holder.vue","webpack:///src/views/cscomponents/contract/Holder.vue","webpack:///./src/views/cscomponents/contract/Holder.vue?cf3d","webpack:///./src/views/cscomponents/contract/Holder.vue?4c8b","webpack:///src/views/Pages/NewContract.vue","webpack:///./src/views/Pages/NewContract.vue?3842","webpack:///./src/views/Pages/NewContract.vue?8def","webpack:///./node_modules/videojs-vtt.js/lib/vttregion.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js","webpack:///./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js"],"names":["regexs","mp4","webm","ogg","video","audio","text","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","codec","replace","orig","profile","avcLevel","profileHex","Number","toString","slice","avcLevelHex","parseCodecs","codecString","codecs","split","result","forEach","codecType","trim","name","match","exec","toLowerCase","length","type","substring","details","push","mediaType","codecsFromDefault","master","audioGroupId","mediaGroups","AUDIO","audioGroup","audioType","default","playlists","attributes","CODECS","isAudioCodec","test","isTextCodec","getMimeForCodec","map","c","container","every","browserSupportsCodec","MediaSource","isTypeSupported","muxerSupportsCodec","i","DEFAULT_AUDIO_CODEC","DEFAULT_VIDEO_CODEC","DEFAULT_LOCATION","resolveUrl","baseUrl","relativeUrl","location","href","nativeURL","URL","protocolLess","removeLocation","buildAbsoluteURL","newUrl","protocol","exports","__esModule","ref","methods","focus","this","$refs","render","_vm","_c","_self","staticClass","attrs","slot","_v","_s","offer","customer_first_name","customer_last_name","is_company","company_name","nosf","customer_sf","customer_sf2","dob","has_holder","holder_id","kravag_location_id","holder_kravag_location_id","youngest_driver_dob","oldest_driver_dob","insurance_start","holder_zip","car_brand","car_ccm","car_haftpflicht","car_kw","car_model","car_ps","car_teilkasko","car_vollkasko","car_hsn","car_tsn","car_first_registration","car_usage","car_mileage","mileage","is_car","is_van","leveling_list","leveling_type_list","leveling_type","participation","paymentterm","holder_only_driver","second_vehicle_holder","sf_holder_sf","staticRenderFns","components","DataRow","data","formatDate","computed","mapState","component","module","modules","installedModules","__webpack_require__","moduleId","l","call","m","d","getter","o","Object","defineProperty","configurable","enumerable","get","n","object","property","prototype","hasOwnProperty","p","s","18","2","3","336","_main","_main2","_interopRequireDefault","obj","install","Vue","337","_resizeEvent","_scrollbarWidth","_scrollbarWidth2","_util","_bar","_bar2","Bar","props","native","Boolean","wrapStyle","wrapClass","viewClass","viewStyle","noresize","tag","String","sizeWidth","sizeHeight","moveX","moveY","wrap","h","gutter","style","gutterWith","gutterStyle","Array","isArray","toObject","marginRight","marginBottom","view","class","$slots","on","handleScroll","nodes","move","size","vertical","scrollTop","clientHeight","scrollLeft","clientWidth","update","heightPercentage","widthPercentage","scrollHeight","scrollWidth","mounted","$nextTick","addResizeListener","resize","beforeDestroy","removeResizeListener","338","_dom","bar","BAR_MAP","$parent","key","clickTrackHandler","clickThumbHandler","renderThumbStyle","e","startDrag","axis","currentTarget","offset","client","getBoundingClientRect","direction","Math","abs","target","thumbHalf","thumb","thumbPositionPercentage","$el","scroll","scrollSize","stopImmediatePropagation","cursorDown","document","mouseMoveDocumentHandler","mouseUpDocumentHandler","onselectstart","prevPage","thumbClickPosition","off","destroyed","339","horizontal","_ref","translate","transform","msTransform","webkitTransform","38","0","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","existing","beforeCreate","_injectStyles","concat","1","80","_dropdownItem","_dropdownItem2","81","__webpack_exports__","value","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__","normalizeComponent","__vue_template_functional__","__vue_styles__","__vue_scopeId__","__vue_module_identifier__","Component","a","82","_emitter","_emitter2","mixins","command","disabled","divided","handleClick","dispatch","83","_h","$createElement","_t","esExports","icon","title","editable","$event","preventDefault","apply","arguments","_e","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","code","len","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","join","extraBytes","parts","maxChunkLength","len2","dom","DOMImplementation","XMLSerializer","DOMParser","scrollIntoView","_vue","_vue2","selected","$isServer","offsetParents","pointer","offsetParent","contains","top","offsetTop","reduce","prev","curr","bottom","offsetHeight","viewRectTop","viewRectBottom","window","vttjs","WebVTT","VTTCue","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","_arrayWithHoles","_iterableToArrayLimit","_i","_x","_r","_arr","_n","_d","next","done","err","_nonIterableRest","TypeError","_slicedToArray","unsupportedIterableToArray","remove_by_value","val","splice","add_by_value","includes","offerUtil","leveling_filter","allow","lev_filter","pos","allowlist","new_list","a_keys","4","keys","filter","itm","entries","values","myv","apply_rules","holder_registration_prior_insurance_start","has_divergent_holder","holder_household_member","all_ages_over_23","holder_is_only_driver","age_over_23","youngest_driver_over_23","filter_car_company_rules","filter_van_company_rules","filter_car_private_rules","filter_van_private_rules","console","log","customer_has_free_sfr","has_second_vehicle","license_age","set_sf_class","sf_holder_insurance_is_internal","insurance_id","set_sf_if_age","l_age","license_date","currentDate","Date","birthDate","difference","age","floor","date","moment","format","hfr","isa","holder_first_registration","dateUtil","holder_is_joungest_driver","sf_class","set_sf_class_range","sf_start","sf_end","sf_classes","each","$","customer_valid","vld","cusomer_first_name","cusomer_last_name","car_valid","hsn","tsn","new_car_above_max","radio_usage","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","_extends","isFunction","createXHR","httpHandler","parseHeaders","headers","row","index","forEachArray","array","iterator","isEmpty","initParams","uri","callback","params","_createXHR","called","response","body","readystatechange","xhr","readyState","setTimeout","loadFunc","getBody","undefined","responseText","getXml","isJson","JSON","parse","errorFunc","evt","clearTimeout","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","url","rawRequest","getAllResponseHeaders","cors","XDomainRequest","XMLHttpRequest","sync","json","stringify","onreadystatechange","onload","onerror","onprogress","onabort","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","responseType","beforeSend","send","responseXML","firefoxBugTakenEffect","documentElement","nodeName","noop","toUpperCase","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","ONE_SECOND_IN_TS","seconds","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","anObject","sameValue","regExpExec","defined","SEARCH","$search","maybeCallNative","regexp","O","fn","RegExp","res","rx","S","previousLastIndex","lastIndex","global","inheritIfRequired","dP","f","gOPN","isRegExp","$flags","$RegExp","Base","proto","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","constructor","source","proxy","set","it","_resizeObserverPolyfill","_resizeObserverPolyfill2","isServer","resizeHandler","_iterator","_isArray","Symbol","entry","listeners","__resizeListeners__","element","__ro__","observe","disconnect","nodeList","ctx","startClick","seed","createDocumentHandler","el","binding","vnode","mouseup","mousedown","popperElm","expression","methodName","bindingFn","node","documentHandler","bind","id","unbind","mode","retrieveOffers","retrieveContracts","retrieveSubmittedContracts","handlePageSizeChange","model","pagination","perPage","$$v","$set","_l","perPageOptions","item","searchOffers","searchQuery","loading","offers","scopedSlots","_u","$index","firstname","lastname","written_state","kravag_state","maker","car_model_name","ddsiplay","created_at","directives","rawName","modifiers","showOffer","editOffer","retrieveEvb","page_offer","pageSize","count","handlePageChange","page_con","page_submi","BasePagination","RouteBreadCrumb","LightTable","page","pageCount","currentPage","total","searchedData","getRequestParams","getOffers","then","page_count","catch","finally","createOfferEvb","offer_id","link","getContracts","getSubmittedContracts","path","token","searchRegExp","rows","created","t","self","646","713","writable","860","from","206","319","8","r","toStringTag","VueSelect","_","autoscroll","watch","typeAheadPointer","maybeAdjustScroll","dropdownMenu","children","getDropdownViewport","height","filteredOptions","selectable","typeAheadToLastSelected","selectedValue","typeAheadUp","typeAheadDown","typeAheadSelect","select","u","mutableLoading","search","$emit","toggleLoading","$root","$options","shadowRoot","Deselect","xmlns","width","OpenIndicator","inserted","appendToBody","toggle","left","scrollX","pageXOffset","scrollY","pageYOffset","unbindPosition","calculatePosition","appendChild","parentNode","removeChild","sort","y","g","b","getOwnPropertySymbols","getOwnPropertyDescriptor","v","getOwnPropertyDescriptors","defineProperties","clearable","deselectFromDropdown","searchable","multiple","placeholder","transition","clearSearchOnSelect","closeOnSelect","label","autocomplete","Function","getOptionLabel","warn","getOptionKey","onTab","selectOnTab","isComposing","taggable","tabindex","pushTags","filterable","filterBy","toLocaleLowerCase","createOption","optionList","resetOnOptionsChange","validator","clearSearchOnBlur","noDrop","inputId","dir","selectOnKeyCodes","searchInputQuerySelector","mapKeydown","dropdownShouldOpen","uid","pushedTags","_value","isTrackingValues","propsData","$data","searchEl","$scopedSlots","selectedOptions","querySelector","scope","searching","searchPlaceholder","readonly","dropdownOpen","events","compositionstart","compositionend","keydown","onSearchKeyDown","keypress","onSearchKeyPress","blur","onSearchBlur","onSearchFocus","input","spinner","noOptions","openIndicator","role","listHeader","listFooter","header","deselect","footer","childComponents","stateClasses","isValueEmpty","optionExists","unshift","showClearButton","clearSelection","setInternalValueFromOptions","immediate","handler","$on","pushTag","findOptionFromReducedValue","isOptionSelected","updateValue","onAfterSelect","optionComparator","toggleDropdown","deselectButtons","clearButton","some","isOptionDeselectable","find","closeSearchOptions","maybeDeleteValue","normalizeOptionForSlot","onEscape","onMousedown","onMouseUp","9","27","40","keyCode","refInFor","click","option","_g","_b","mouseover","stopPropagation","staticStyle","display","visibility","ajax","pointerScroll","10","12","138","_select","_select2","139","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__","14","140","_typeof","_focus","_focus2","_locale","_locale2","_input","_input2","_selectDropdown","_selectDropdown2","_option","_option2","_tag","_tag2","_scrollbar","_scrollbar2","_debounce","_debounce2","_clickoutside","_clickoutside2","_locale3","_scrollIntoView","_scrollIntoView2","_navigationMixin","_navigationMixin2","_shared","componentName","inject","elForm","elFormItem","provide","_elFormItemSize","elFormItemSize","isIE","isEdge","visible","showClose","hasValue","criteria","selectDisabled","inputHovering","iconClass","remote","debounce","emptyText","loadingText","query","filteredOptionsCount","noMatchText","noDataText","showNewOption","_this","hasExistingOption","currentLabel","allowCreate","selectSize","$ELEMENT","collapseTagSize","ElInput","ElSelectMenu","ElOption","ElTag","ElScrollbar","Clickoutside","required","autoComplete","automaticDropdown","popperClass","remoteMethod","filterMethod","multipleLimit","defaultFirstOption","reserveKeyword","valueKey","collapseTags","popperAppendToBody","cachedOptions","createdLabel","createdSelected","inputLength","inputWidth","initialInputHeight","cachedPlaceHolder","optionsCount","softFocus","selectedLabel","hoverIndex","previousQuery","currentPlaceholder","menuVisibleOnFocus","isOnComposition","isSilentBlur","_this2","resetInputHeight","oldVal","handleQueryChange","setSelected","valueEquals","_this3","broadcast","resetHoverIndex","_this4","inputs","querySelectorAll","activeElement","checkDefaultFirstOption","handleComposition","event","lastCharacter","isKorean","_this5","min","managePlaceholder","scrollToOption","popper","menu","scrollbar","handleMenuEnter","_this6","emitChange","getOption","isObject","isNull","cachedOption","isEqual","getValueByPath","newOption","hitState","_this7","handleFocus","reference","handleBlur","_this8","handleClearClick","deleteSelected","doDestroy","handleClose","toggleLastOptionHitState","hit","deletePrevTag","pop","resetInputState","_this9","inputChildNodes","childNodes","tagName","tags","sizeInMap","max","_this10","handleOptionSelect","byClick","_this11","optionIndex","getValueIndex","setSoftFocus","_this12","_ret","toggleMenu","selectOption","deleteTag","onInputChange","onOptionDestroy","resetInputWidth","handleResize","hasCreated","groupDisabled","itemSelected","getValueKey","_this13","debouncedOnInputChange","debouncedQueryChange","_this14","sizeMap","medium","small","mini","141","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__","142","_vuePopper","_vuePopper2","placement","boundariesPadding","popperOptions","gpuAcceleration","visibleArrow","minWidth","referenceElm","updatePopper","destroyPopper","143","144","hoverOption","optionsAllDisabled","hover","navigateOptions","145","domProps","_k","composing","nativeOn","17","19","23","25","26","35","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__","36","currentValue","limitReached","handleGroupDisabled","hoverItem","selectOptionClick","queryChange","escapeRegexpString","37","5","6","7","DESCRIPTORS","getKeys","toIObject","isEnum","isEntries","toggleOfferType","toggleOfferCompany","setDefaults","currentAccount","hasRole","enstg","handleSubmit","firstFormSubmit","initInsurance","mayWeCalc","getZipFromSelection","customer_zip","changeHasHolder","required_if","KRAVAG_HOLDERS_CAR_COMPANY","KRAVAG_HOLDERS_CAR_PRIVAT","KRAVAG_HOLDERS_VAN_COMPANY","KRAVAG_HOLDERS_VAN_PRIVAT","KRAVAG_HOLDERS_VAN_PRIVATE","getHolderZipFromSelection","flatPicker","swal","CscDateInput","date_value","formatted","labels","de","labelPrevDecade","labelPrevYear","labelPrevMonth","labelCurrentMonth","labelNextMonth","labelNextYear","labelNextDecade","labelToday","labelSelected","labelNoDateSelected","labelCalendar","labelNav","labelHelp","list","showHolder","writtenHolder","zipcode","config","altInput","selectTitleOptions","onContext","getKravagLocations","plz","toggleHolder","currentHolder","holder","deep","customer_dob","mapGetters","customerAddress","second_vehicle","only_driver","regex","carData","fetched","car_registration","participations","showUsage","showValue","below_expensive","brand","ccm","haftpflicht","kw","ps","teilkasko","radios","radio1","radio2","fetchCarData","getCarData","toggleValue","toggleUsage","mayFetchCar","car_value","body_id","KRAVAG_VAN_AUFBAUART","fetchParticipations","qtp","getParticipations","str","paymentterms","show_only_driver","selected_only_driver","display_joungest_driver","display_oldest_driver","display_second_vehicle","sf_enabled","display_license_date","display_holder_sf_selection","possible_sf_holders_privat","possible_sf_holders_company","searchInsurances","insurances","today","selected_free_sfr","selected_second_vehicle","has_free_sfr","fetchPaymentterms","getPaymentterms","fetchInsurances","getInsurances","fetchSfClasses","setHiddenSf","setDefaultDates","getPaymenttermSelection","sfInfoText","apply_sf_filter","ol_apply_rules","holders_list","sf_holder_insurance","display_sf","display_holder_sf","display_holder_insurance","oldValue","option_fahrerschutz","option_schutzbrief_plus","option_schutzbrief","option_discount_protection_kh","mayHaveDicountProtektionKH","option_discount_protection_fv","option_gap","option_kex","nonkh","pricing","products","product","financial","price_net","_m","price_net_complete","price_brut_complete","price_tax_complete","downloadFile","acceptOffer","getOfferDocument","BaseSlider","Modal","Customer","Car","Van","Insurance","Options","Pricing","OfferInfo","CalcInfo","offerdata","hsntsn","edtload","modals","notice","lawyer","expertise","damageheight","retrieveOffer_old","getOffer","showCarValueNotice","logValidity","customerValidated","carValidated","insuranceValidated","allDataValidated","slogValidity","retrieveOffer","submitToApi","createOffer","zeroPrice","mapActions","resetOffer","maySave","sallDataValidated","allValidated","option_discount_protection","option_gap_helvetia","option_owndamage","reallyFinished","$export","$parseFloat","F","parseFloat","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","getWeek","givenDate","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","bool","wait","args","arrayify","toggleClass","elem","className","classList","remove","createElement","content","textContent","clearNode","firstChild","findParent","condition","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","getEventTarget","composedPath","error","doNothing","monthToStr","monthNumber","revFormat","D","dateObj","monthName","setMonth","G","hour","getHours","H","J","day","K","M","shortMonth","setSeconds","U","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","minutes","setMinutes","j","month","unixMillSeconds","w","tokenRegex","toISOString","getMonth","getSeconds","getMinutes","createDateFormatter","_a","l10n","isMobile","frmt","overrideLocale","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","datestr","parseDate","matched","ops","matchIndex","regexStr","isBackSlash","escaped","isNaN","compareDates","date1","date2","isBetween","ts","ts1","ts2","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","assign","__spreadArrays","il","k","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","instanceConfig","flatpickr","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","setCalendarWidth","isSafari","positionCalendar","triggerEvent","getClosestActiveElement","calendarContainer","getRootNode","bindToInstance","requestAnimationFrame","daysContainer","daysWidth","days","offsetWidth","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","onYearInput","eventTarget","delta","changeYear","ev","addEventListener","_handlers","removeEventListener","triggerChange","setupMobile","debouncedResize","onResize","onMouseOver","ontouchstart","documentClick","capture","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","onBlur","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","changeMonth","focusOnDay","dayFocused","isInView","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","monthElement","monthNavFragment","selectedMonth","yearInput","yearElement","getElementsByTagName","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","newYear","newYearNum","isNewYear","dateToCheck","enable","parsed","to","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","delta_1","ctrlKey","elems","pluginElements","x","shiftKey","charAt","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","dayElem","outOfRange","_positionElement","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","dataset","formats","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","pluginConf","getInputElem","l10ns","customPositionElement","calendarHeight","acc","child","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","innerHeight","showOnTop","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","CALLBACKS","updatePositionElement","setSelectedDate","inputDate","rule","preloadedDate","inputType","mobileFormatStr","defaultValue","step","hooks","initEvent","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","newValue","isHourElem","isMinuteElem","_flatpickr","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","jQuery","fp_incr","normalizePaths","paths","bytes","results","headerSize","byte","z","_DESCRIPTORS$z","parser","subarray","desc","flags","dependsOnEsId","ocrEsId","descriptors","oti","streamType","bufferSize","maxBitrate","avgBitrate","findBox","complete","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","Track","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","VideoTrack","AudioTrack","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","getLength","removeLength","signed","valueBytes","normalizePath","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","totalLength","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","positions","newLength","newData","sourceIndex","shift","dataType","types","nalLimit","Infinity","nalStart","nalsFound","nalOffset","nalType","findH264Nal","findH265Nal","CONSTANTS","_isLikely","aac","mask","mp3","docType","mkv","matroska","mov","fmp4","moof","moov","ac3","flac","avi","riff","wav","isLikelyTypes","isLikelyFn","isLikely","_len","_key","MapShim","Map","getIndex","class_1","__entries__","delete","has","isBrowser","global$1","requestAnimationFrame$1","trailingTimeout","throttle","delay","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","connect_","removeObserver","observers","disconnect_","changesDetected","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","propertyName","isReflowProperty","getInstance","instance_","defineConfigurable","getWindowOf","ownerGlobal","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","styles","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getBBox","getHTMLElementContentRect","getComputedStyle","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","createReadOnlyRect","Constr","DOMRectReadOnly","rect","create","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","_loop_1","args_1","useHasFeature","ExecutionEnvironment","isEventSupported","eventNameSuffix","canUseDOM","eventName","isSupported","implementation","hasFeature","130","_checkboxGroup","_checkboxGroup2","131","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__","132","fill","textColor","checkboxGroupSize","133","getUint64","parseSidx","DataView","buffer","byteOffset","version","references","referenceId","getUint32","timescale","earliestPresentationTime","firstOffset","referenceCount","getUint16","referenceType","referencedSize","subsegmentDuration","startsWithSap","sapType","sapDeltaTime","string","alert","confirm","prompt","is","155","_buttonGroup","_buttonGroup2","156","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__","157","158","forEachMediaGroup","groups","groupKey","labelKey","mediaProperties","merge","objects","flatten","lists","findIndexes","union","keyFunction","errors","INVALID_NUMBER_OF_PERIOD","DASH_EMPTY_MANIFEST","DASH_INVALID_XML","NO_BASE_URL","MISSING_SEGMENT_INFORMATION","SEGMENT_TIME_UNSPECIFIED","UNSUPPORTED_UTC_TIMING_SCHEME","urlTypeToSegment","indexRange","segment","resolvedUri","rangeStr","ranges","startRange","BigInt","endRange","MAX_SAFE_INTEGER","byterange","byteRangeToString","parseEndNumber","endNumber","segmentRange","sourceDuration","periodDuration","segmentDuration","NOW","clientOffset","availabilityStartTime","periodStart","minimumUpdatePeriod","timeShiftBufferDepth","periodStartWC","periodEndWC","segmentCount","ceil","availableStart","availableEnd","toSegments","startNumber","timeline","time","parseByDuration","segments","sectionDuration","segmentsFromBase","initialization","presentationTime","initSegment","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist$1","playlist","sidx","sidxByteRange","sidxEnd","mediaReferences","endList","mediaSequence","SUPPORTED_MEDIA_TYPES","TIME_FUDGE","getUniqueTimelineStarts","timelineStarts","findPlaylistWithName","NAME","getMediaGroupPlaylists","manifest","mediaGroupPlaylists","properties","group","updateMediaSequenceForPlaylist","updateSequenceNumbers","oldPlaylists","newPlaylists","discontinuitySequence","findIndex","oldPlaylist","firstNewSegment","oldMatchingSegmentIndex","oldSegment","discontinuity","discontinuityStarts","oldMatchingSegment","positionManifestOnTimeline","oldManifest","newManifest","generateSidxKey","mergeDiscontiguousPlaylists","mergedPlaylists","lang","contentProtection","addSidxSegmentsToPlaylist","sidxMapping","sidxKey","sidxMatch","addSidxSegmentsToPlaylists","formatAudioPlaylist","isAudioOnly","BANDWIDTH","bandwidth","targetDuration","SUBTITLES","formatVttPlaylist","m3u8Attributes","organizeAudioPlaylists","mainPlaylist","formattedPlaylists","language","roleLabel","autoselect","firstLabel","organizeVttPlaylists","organizeCaptionServices","captionServices","svcObj","svc","service","channel","instreamId","aspectRatio","easyReader","formatVideoPlaylist","RESOLUTION","frameRate","videoOnly","mimeType","contentType","audioOnly","vttOnly","addMediaSequenceValues","flattenMediaGroupPlaylists","mediaGroupObject","labelContents","toM3u8","dashPlaylists","locations","previousManifest","suggestedPresentationDelay","videoPlaylists","audioPlaylists","vttPlaylists","captions","allowCache","VIDEO","organizedAudioGroup","organizedVttGroup","playlistTimelineStarts","subs","cc","getLiveRValue","parseByTimeline","segmentTimeline","media","sIndex","repeat","segmentTime","nextS","identifierPattern","identifierReplacement","identifier","constructTemplateUrl","parseTemplateInfo","segmentsFromTemplate","templateValues","RepresentationID","Bandwidth","mapSegment","Time","presentationTimeOffset","SegmentURLToSegmentObject","segmentUrl","mediaRange","segmentsFromList","segmentUrls","segmentUrlMap","segmentUrlObject","generateSegments","segmentInfo","segmentAttributes","segmentsFn","template","base","segmentsInfo","toPlaylists","representations","findChildren","getContent","parseDivisionValue","parseDuration","SECONDS_IN_YEAR","SECONDS_IN_MONTH","SECONDS_IN_DAY","SECONDS_IN_HOUR","SECONDS_IN_MIN","durationRegex","minute","second","dateRegex","parsers","parsedValue","parseAttributes","parseFn","DEFAULT","keySystemsMap","buildBaseUrls","referenceUrls","baseUrlElements","baseUrlElement","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","inheritBaseUrls","adaptationSetAttributes","adaptationSetBaseUrls","adaptationSetSegmentInfo","representation","repBaseUrlElements","repBaseUrls","representationSegmentInfo","generateKeySystemInformation","contentProtectionNodes","schemeIdUri","keySystem","psshNode","pssh","parseCaptionServiceMetadata","opt","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","roleAttributes","accessibility","labelVal","nodeValue","toAdaptationSets","mpdAttributes","mpdBaseUrls","period","adaptationSets","getPeriodStart","priorPeriodAttributes","mpdType","inheritAttributes","mpd","manifestUri","periodNodes","mediaPresentationDuration","periods","priorPeriod","representationInfo","stringToMpdXml","manifestString","xml","parseFromString","parseUTCTimingScheme","UTCTimingNode","parsedManifestInfo","parseUTCTiming","$values","predicate","ac","freeze","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","httpResponseHandler","decodeResponseBody","responseBody","cause","TextDecoder","charset","getCharset","decode","fromCharCode","contentTypeHeader","_contentType$split","SafeParseTuple","reviver","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","_populated","_populate","uas","agent","os","NaN","documentMode","trident","ver","UserAgent_DEPRECATED","ie","ieCompatibilityMode","ie64","firefox","opera","webkit","safari","chrome","windows","osx","linux","iphone","mobile","nativeApp","android","ipad","ID3","getId3Size","returnSize","footerPresent","getId3Offset","read","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","pow","write","rt","LN2","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","projects","img","statusType","completion","budget","MAX_UINT32","dv","getBigUint64","root","factory","__WEBPACK_EXTERNAL_MODULE__311__","__webpack_modules__","311","__webpack_module_cache__","cachedModule","definition","prop","external_flatpickr_","external_flatpickr_default","includedEvents","excludedEvents","camelToKebab","nullify","cloneObject","allEvents","configCallbacks","onInput","fp","safeConfig","globalCallbacks","localCallback","getElem","fpInput","$watch","watchDisabled","dateStr","newState","newConfig","Plugin","src","13","159","_table","_table2","16","160","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f98fcd1_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_table_vue__","161","_checkbox","_checkbox2","_mousewheel","_mousewheel2","_migrating","_migrating2","_tableStore","_tableStore2","_tableLayout","_tableLayout2","_tableBody","_tableBody2","_tableHeader","_tableHeader2","_tableFooter","_tableFooter2","tableIdSeed","Mousewheel","maxHeight","fit","stripe","border","rowKey","showHeader","showSummary","sumText","summaryMethod","rowClassName","rowStyle","cellClassName","cellStyle","headerRowClassName","headerRowStyle","headerCellClassName","headerCellStyle","highlightCurrentRow","currentRowKey","expandRowKeys","defaultExpandAll","defaultSort","tooltipEffect","spanMethod","selectOnIndeterminate","TableHeader","TableFooter","TableBody","ElCheckbox","getMigratingConfig","expand","setCurrentRow","store","commit","toggleRowSelection","updateAllSelected","toggleRowExpansion","expanded","clearFilter","columnKeys","clearSort","handleMouseLeave","hoverState","updateScrollY","layout","updateColumnsWidth","handleFixedMousewheel","bodyWrapper","spinY","currentScrollTop","pixelY","pixelX","handleHeaderFooterMousewheel","_$refs","headerWrapper","footerWrapper","refs","fixedBodyWrapper","rightFixedBodyWrapper","maxScrollLeftPosition","scrollPosition","resizeListener","$ready","shouldUpdateLayout","_resizeState","resizeState","oldWidth","oldHeight","shouldUpdateHeight","doLayout","updateElsHeight","order","toggleAllSelection","tableId","debouncedUpdateLayout","tableSize","fixedColumns","rightFixedColumns","selection","states","columns","tableData","_layout","gutterWidth","bodyHeight","headerHeight","footerHeight","fixedBodyHeight","fixedHeight","tableHeight","viewportHeight","setHeight","setMaxHeight","newVal","setCurrentRowKey","setExpandRowKeys","updateColumns","column","filteredValue","silent","table","isHidden","renderExpanded","resizeProxyVisible","isGroup","162","_normalizeWheel","_normalizeWheel2","isFirefox","mousewheel","normalized","163","164","_merge","_merge2","sortData","sortingColumn","sortable","orderBy","sortProp","sortOrder","sortMethod","sortBy","getKeysMap","arrayMap","getRowIdentity","changed","expandRows","_index","TableStore","initialState","_columns","originColumns","leafColumns","fixedLeafColumns","rightFixedLeafColumns","leafColumnsLength","fixedLeafColumnsLength","rightFixedLeafColumnsLength","isComplex","filteredData","isAllSelected","reserveSelection","currentRow","hoverRow","filters","mutations","setData","dataInstanceChanged","_data","columnId","getColumnById","updateCurrentRow","selectedMap","rowId","rowInfo","cleanSelection","ids","nextTick","changeSortCondition","tr","hasClass","removeClass","addClass","filterChange","multi","col","columnKey","insertColumn","scheduleLayout","removeColumn","setHoverRow","oldCurrentRow","rowSelectedChanged","selectionChanged","doFlattenColumns","fixed","notFixedColumns","isSelected","oldSelection","rowKeys","keysMap","info","isRowExpanded","_states","_states$expandRows","expandMap","deleted","dataMap","deletedItem","_table$$refs","tableHeader","fixedTableHeader","rightFixedTableHeader","panels","filterPanels","getColumnByKey","selectedCount","isRowSelectable","newCurrentRow","165","_classCallCheck","instance","Constructor","TableLayout","fixedWidth","rightFixedWidth","appendHeight","appendWrapper","noData","notifyObservers","getFlattenColumns","flattenColumns","isColumnGroup","bodyMinWidth","flexColumns","realWidth","scrollYWidth","totalFlexWidth","allColumnsWidth","flexWidthPerPixel","noneFirstWidth","flexWidth","onColumnsChange","onScrollableChange","166","_tooltip","_tooltip2","_layoutObserver","_layoutObserver2","ElTooltip","highlight","columnsHidden","isColumnHidden","cellspacing","cellpadding","getRowStyle","getKeyOfRow","handleDoubleClick","handleContextMenu","handleMouseEnter","getRowClass","cellIndex","_getSpan","getSpan","rowspan","colspan","getCellStyle","getCellClass","handleCellMouseEnter","handleCellMouseLeave","renderCell","_renderProxy","effect","tooltipContent","oldRow","newRow","columnsCount","leftFixedLeafCount","rightFixedLeafCount","leftFixedCount","rightFixedCount","activateTooltip","tooltip","handleShowPopper","rowIndex","columnIndex","classes","align","cell","getCell","getColumnByCell","cellChild","createRange","setStart","setEnd","rangeWidth","padding","getStyle","innerText","setExpectedState","handleClosePopper","oldHoverState","handleEvent","handleExpandClick","167","_filterPanel","_filterPanel2","getAllColumns","convertToRows","maxLevel","traverse","level","colSpan","subColumn","allColumns","rowSpan","columnRows","hasGutter","getHeaderRowStyle","getHeaderRowClass","handleMouseMove","handleMouseOut","handleMouseDown","handleHeaderClick","handleHeaderContextMenu","getHeaderCellStyle","getHeaderCellClass","labelClassName","renderHeader","handleSortClick","handleFilterClick","filterOpened","tableLayout","_defaultSort","$destroy","isCellHidden","after","headerAlign","filterPanel","showPopper","filterPlacement","$mount","draggingColumn","dragging","tableEl","tableLeft","columnEl","columnRect","minLeft","dragState","startMouseLeft","clientX","startLeft","startColumnLeft","resizeProxy","ondragstart","deltaLeft","proxyLeft","handleMouseUp","_dragState","finalLeft","columnWidth","cursor","resizable","bodyStyle","pageX","toggleOrder","sortOrders","givenOrder","168","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_784f4ebc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_filter_panel_vue__","169","_popup","_dropdown","_dropdown2","ElCheckboxGroup","customRender","handleConfirm","handleReset","filterValue","handleOutsideClick","confirmFilter","handleSelect","filterMultiple","popperJS","_popper","zIndex","PopupManager","nextZIndex","170","dropdowns","dropdown","171","172","sums","precisions","notNumber","decimal","precision","before","173","22","39","updated","__updated__","cols","columnsMap","ths","_j","th","48","sortKey","reverse","getKey","by","$value","compare","matches","documents","file","currentInvoice","fileNameAndExt","fileName","retrieveDocuments","autoKeyword","directionSetting","alignSetting","findDirectionSetting","findAlignSetting","startTime","endTime","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","SyntaxError","displayState","getCueAsHTML","convertCueToDOMTree","conventions","entities","sax","ParseError","XMLReader","normalizeLineEndings","locator","buildErrorHandler","errorImpl","domBuilder","DOMHandler","isCallback","msg","_locator","cdata","lineNumber","columnNumber","systemId","_toString","chars","substr","java","appendElement","hander","currentElement","defaultNSMap","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","normalize","startDocument","createDocument","documentURI","startElement","namespaceURI","localName","qName","createElementNS","getURI","getValue","attr","getQName","createAttributeNS","getLocator","setAttributeNode","endElement","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","createTextNode","skippedEntity","endDocument","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","createDocumentType","dt","doctype","warning","fatalError","__DOMHandler","amp","apos","gt","lt","quot","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","euro","trade","larr","uarr","rarr","darr","harr","crarr","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","15","72","73","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default","__vue_template__","74","_button","_button2","ElButton","ElButtonGroup","trigger","splitButton","hideOnClick","showTimeout","hideTimeout","triggerElm","menuItems","menuItemsArray","dropdownElm","focusing","listId","generateId","dropdownSize","handleMenuItemClick","initAria","selfDefine","show","hide","removeTabindex","resetTabindex","handleTriggerKeyDown","handleItemKeyDown","currentIndex","nextIndex","ele","elm","handleMainButtonClick","75","base64","ieee754","typedArraySupport","__proto__","foo","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","allocUnsafe","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","isEncoding","actual","fromArrayLike","isBuffer","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","countBits","countBytes","padStart","isArrayBufferView","isTypedArray","toUint8","toHexString","toBinaryString","BYTE_TABLE","bytesToNumber","Uint16Array","_temp","_ref$signed","_ref$le","exponent","numberToBytes","_temp2","_ref2","_ref2$le","byteCount","byteIndex","bytesToString","decodeURIComponent","escape","stringToBytes","stringIsBytes","unescape","encodeURIComponent","concatTypedArrays","buffers","totalLen","tempBuffer","bytesMatch","_temp3","_ref3","_ref3$offset","_ref3$mask","bByte","aByte","win","searchInvoices","tutorials","invoices","currentTutorial","searchTitle","pageSizes","retrieveTutorials","submitClaimData","_objCreate","ParsingError","errorData","parseTimeStamp","computeSeconds","Settings","parseOptions","keyValueDelim","groupDelim","kv","parseCue","cue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","consumeCueSettings","settings","region","alt","vals","vals0","integer","percent","line","lineAlign","snapToLines","center","middle","positionAlign","skipWhitespace","BadSignature","dflt","defaultKey","TEXTAREA_ELEMENT","TAG_NAME","ruby","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","consume","shouldAdd","annotation","rootDiv","tagStack","cl","bgColor","colorName","propName","propValue","strongRTLRanges","isStrongRTLChar","charCode","currentRange","determineBidi","cueDiv","nodeStack","pushNodes","nextTextNode","computeLinePos","track","textTrackList","mediaElement","trackList","StyleBox","CueStyleBox","styleOptions","color","backgroundColor","writingMode","unicodeBidi","applyStyles","div","textAlign","font","whiteSpace","textPos","formatStyle","box","BoxPosition","lh","rects","getClientRects","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","findBestPosition","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","boxPosition","linePos","maxPosition","initialAxis","calculatedPercentage","toCSSCompatValues","unit","toMove","overlaps","b2","boxes","intersectArea","getSimpleBoxPosition","StringDecoder","cuetext","FONT_SIZE_PERCENT","FONT_STYLE","CUE_BACKGROUND_PADDING","processCues","cues","overlay","paddedOverlay","shouldCompute","margin","fontSize","Parser","decoder","state","reportOrThrowError","onparsingerror","collectNextLine","parseRegion","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","onregion","parseTimestampMap","ontimestampmap","parseHeader","stream","alreadyCollectedLine","hasSubstring","oncue","flush","onflush","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","buildURLFromParts","relativeParts","scheme","baseParts","netLoc","pathParts","builtParts","baseURLPath","newPath","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","normalizeWheel","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","getEventType","Stream","_proto","listener","callbacks","_length","dispose","pipe","destination","super","nextNewline","TAB","parseByterange","byterangeString","attributeSeparator","keyvalue","customParsers","tagMappers","newLines","mapper","mappedLine","newLine","tagType","playlistType","allowed","URI","BYTERANGE","resolution","dateTimeString","dateTimeObject","IV","Uint32Array","PRECISE","subkey","customType","dataParser","mapFn","camelCase","camelCaseKeys","setHoldBack","serverControl","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","lineStream","parseStream","uris","currentMap","currentUri","hasParts","defaultMediaGroups","widevineUuid","currentTimeline","lastByterangeEnd","lastPartByterangeEnd","preloadHints","preloadSegment","mediaGroup","rendition","METHOD","KEYFORMAT","VALID_METHODS","KEYID","keyId","iv","TYPE","mediaGroupType","AUTOSELECT","LANGUAGE","CHARACTERISTICS","characteristics","FORCED","forced","timeOffset","precise","cueOut","cueOutCont","cueIn","skip","warnOnMissingAttributes_","segmentIndex","partIndex","renditionReports","canBlockReload","canSkipDateranges","hint","isPart","otherHint","report","partInf","partTarget","custom","missing","chunk","addParser","addTagMapper","$trim","122","123","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__","124","selfModel","isLimitExceeded","isChecked","trueLabel","isDisabled","checkboxSize","temCheckboxSize","indeterminate","falseLabel","controls","addToStore","handleChange","125","_q","$$a","$$el","$$c","$$i","76","_dropdownMenu","_dropdownMenu2","77","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__","78","arrowOffset","currentPlacement","79","searchInput","hasKeyCode","names","foundNamedKey","codes","aliases","isEventKey","nameOrCode","alias","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","captureStackTrace","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","entityReplacer","appendText","xt","lineEnd","linePattern","lineStart","parseStack","currentNSMap","closeMap","tagStart","localNSMap","endMatch","endIgnoreCaseMach","parseInstruction","parseDCC","ElementAttributes","parseElementStartPart","closed","fixSelfClosed","locator2","copyLocator","parseHtmlSpecialContent","addAttribute","qname","attributeNames","addValue","attrName","setTagName","nsp","nsPrefix","_copy","ns","elStartEnd","elEndStart","matchs","pubid","sysid","lastMatch","endDTD","getLocalName","evb","toggleEvbCompany","zip","city","street","nationality","holder_firstname","holder_lastname","holder_city","holder_street","evbData","createEvb","toggleEvbHolder","resetEvb","notEmptyString","splitOnASCIIWhitespace","orderedSetReducer","toOrderedSet","arrayIncludes","dest","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","LiveNodeList","_node","_refresh","_updateLiveList","inc","_inc","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_onAddAttribute","_removeNamedNode","_xmlEncoder","_visitNode","Document","_nsMap","_onUpdateChild","newChild","cs","_removeChild","previous","previousSibling","hasValidParentNodeType","hasInsertableNodeType","isElementNode","isTextNode","isDocTypeNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","hasElementChildThatIsNotChild","assertPreInsertionValidity1to5","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","hasDoctypeChildThatIsNotChild","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","pre","_appendSingleChild","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","addSerializedAttribute","qualifiedName","prefixedNodeName","defaultNS","ai","nsi","internalSubset","importNode","node2","cloneNode","attrs2","_ownerElement","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","feature","refChild","replaceChild","oldChild","hasChildNodes","appendData","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","getElementsByClassName","classNames","classNamesSet","nodeClassNames","nodeClassNamesSet","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","$$length","146","174","_tableColumn","_tableColumn2","175","columnIdSeed","_ref4","_ref5","_ref6","getDefaultColumn","DEFAULT_RENDER_CELL","_ref7","getPropByPath","formatter","parseWidth","parseMinWidth","showTooltipWhenOverflow","showOverflowTooltip","isSubColumn","owner","columnOrTableParent","columnConfig","hiddenColumns","onSubmit","email","currentDealer","account","dealer","checkCurrentLogin","loginSuccessful","localStorage","loginFailed","internal_id","show_kravag","offerWidth","kravag_ready","_f","acceptContract","handleOk","kravag_payment_mode","checkboxes","sepa","bedingungen","signage","handleAvo","Badge","TimeLine","TimeLineItem","Tabs","TabPane","selectedRows","janitos_ready","show_janitos","tab","toCurrency","currency","retrieveOfferPdf","retrieveContractPdf","submitContract","showSwal","buttonsStyling","confirmButtonClass","timer","channels","OffersChannel","connected","rejected","received","disconnected","$route","151","152","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__","153","nativeType","plain","autofocus","circle","buttonSize","buttonDisabled","154","doccy","minDoc","topLevel","version$6","hooks_","removeHook","hookOnce","original","FullscreenApi","prefixed","apiMap","specApi","browserApi","history","LogByTypeFactory","lvl","levels","lvlRegExp","createLogger$1","logByType","createLogger","subname","all","debug","fname","historyItem","log$1","initial","accum","isPlain","merge$1","sources","defineLazyProperty","setter","Obj","ANDROID_VERSION","IS_IPOD","IOS_VERSION","IS_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROMIUM","IS_CHROME","CHROMIUM_VERSION","CHROME_VERSION","IE_VERSION","IS_SAFARI","IS_WINDOWS","IS_IPAD","IS_IPHONE","TOUCH_ENABLED","isReal","maxTouchPoints","DocumentTouch","UAD","userAgentData","platform","brands","USER_AGENT","major","minor","IS_IOS","IS_ANY_SAFARI","browser","isNonBlankString","throwIfWhitespace","isEl","isInFrame","createQuerier","createEl","getOwnPropertyNames","appendContent","prependTo","classToCheck","classesToAdd","classesToRemove","classToToggle","setAttributes","attrValue","getAttributes","knownBooleans","attrVal","attribute","blockTextSelection","unblockTextSelection","computedStyle","findPosition","fullscreenElement","offsetLeft","getPointerPosition","translated","boxTarget","boxW","boxH","offsetY","offsetX","changedTouches","pageY","emptyEl","normalizeContent","insertContent","isSingleLeftClick","button","buttons","$$","computedStyleValue","getPropertyValue","Dom","videojs$1","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","player","vjs","setWindowLoaded","createStyleElement","setTextContent","styleSheet","cssText","DomData","_initialGuid","_supportsPassive","_guid","newGUID","_cleanUpEvents","handlers","dispatcher","detachEvent","_handleMultipleEvents","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","isImmediatePropagationStopped","srcElement","fromElement","toElement","returnValue","defaultPrevented","cancelBubble","clientLeft","clientY","clientTop","supportsPassive","passiveEvents","guid","hash","handlersCopy","passive","removeType","elemData","bubbles","targetData","one","func","any","Events","UPDATE_REFRESH_INTERVAL","bind_","bound","last","performance","throttled","cancel","debounced","later","Fn","EVENT_MAP","EventTarget$2","ael","allowedEvents_","oldTimeout","objName","name_","isEvented","eventBusEl_","addEventedCallback","eventedCallbacks","isValidEventType","validateTarget","fnName","validateEventType","validateListener","normalizeListenArgs","isTargetingSelf","listen","EventedMixin","removeListenerOnDispose","removeRemoverOnTargetDispose","largs","targetOrType","typeOrListener","evented","eventBusKey","el_","StatefulMixin","stateUpdates","changes","stateful","defaultState","handleStateChanged","toTitleCase$1","titleCaseEquals","str1","str2","Str","toTitleCase","Component$1","ready","play","player_","isDisposed_","parentComponent_","options_","id_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","Set","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","restoreEl","tokens","languages","primaryCode","primaryLang","localizedString","contentEl_","currentChild","getChild","componentClassName","componentClass","ComponentClass","getComponent","contentEl","childFound","compEl","parentOptions","handleAdd","playerOptions","addChild","workingChildren","Tech","wchild","isTech","isReady_","readyQueue","skipListeners","dimension","widthOrHeight","pxIndex","computedWidthOrHeight","currentDimension","handleKeyDown","touchStart","firstTouch","tapMovementThreshold","touchTimeThreshold","couldBeTap","touches","xdiff","ydiff","touchDistance","sqrt","noTap","touchTime","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","cancelAnimationFrame","idName","cancelName","ComponentToRegister","isComp","isPrototypeOf","reason","components_","Player","players","playerNames","pname","rangeCheck","maxIndex","getRange","valueIndex","rangeIndex","createTimeRangesObj","timeRangesObj","createTimeRanges$1","registerComponent","defaultImplementation","guide","gm","gh","setFormatTime","customImplementation","resetFormatTime","formatTime","createTimeRanges","createTimeRange","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","errorTypes","errNum","isPromise","silencePromise","trackToJson_","textTracksToJson","tech","trackEls","trackObjs","tracks","trackEl","textTracks","jsonToTextTracks","addedTrack","addRemoteTextTrack","addCue","textTrackConverter","MODAL_CLASS_NAME","ModalDialog","handleKeyDown_","close_","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","descEl_","description","buildCSSClass","previouslyActiveEl_","fillAlways","wasPlaying_","paused","pauseOnOpen","pause","hadControls_","conditionalFocus_","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","closeButton","content_","activeEl","playerEl","focusableEls","focusableEls_","focusIndex","allChildren","HTMLAnchorElement","HTMLAreaElement","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","TrackList","tracks_","addTrack","labelchange_","rtrack","change","addtrack","removetrack","labelchange","disableOthers$1","enabled","AudioTrackList","changing_","enabledChange_","removeTrack","disableOthers","VideoTrackList","selectedChange_","TextTrackList","queueChange_","queueTrigger","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","nonLanguageTextTrackKind","kind","selectedlanguagechange_","HtmlTrackElementList","trackElements","trackElements_","addTrackElement_","trackElement","trackElement_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","VideoTrackKind","alternative","main","sign","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","metadata","TextTrackMode","hidden","showing","trackProps","newLabel","parseUrl","host","getAbsoluteURL","getFileExtension","splitPathRe","isCrossOrigin","winLoc","urlInfo","srcProtocol","crossOrigin","Url","parseCues","srcContent","groupCollapsed","groupEnd","loadTrack","tech_","loaded_","TextTrack","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","timeupdateHandler","isDisposed","rvf_","requestVideoFrameCallback","disposeHandler","stopTracking","startTracking","newMode","ct","active","cancelVideoFrameCallback","originalCue","originalCue_","removeCue","cuechange","newEnabled","newSelected","HTMLTrackElement","NONE","LOADED","load","LOADING","ERROR","NORMAL","ListClass","TrackClass","capitalName","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","createTrackHelper","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","queuedHanders_","hasStarted_","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","emitTapEvents","triggerSourceset","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","currentTimeInterval","manuallyTriggered","clearTracks","manualProgressOff","manualTimeUpdatesOff","removeRemoteTextTrack","error_","trackListChanges","script","addWebVttScript_","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","manualCleanup","htmlTrackElement","createRemoteTextTrack","remoteTextTrackEls","getTrackElementByTrack_","removeTrackElement_","Promise","reject","cb","requestNamedAnimationFrame","cancelNamedAnimationFrame","srcObj","canPlayType","techs_","canPlaySource","defaultTechOrder_","videojs","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","featuresVideoFrameCallback","withSourceHandlers","_Tech","registerSourceHandler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","deferrable","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","cleanupAutoTextTracks","registerTech","middlewares","middlewareInstances","TERMINATOR","use","middleware","setSourceHelper","setTech","mw","reduceRight","middlewareIterator","mediate","callMethod","middlewareValue","terminated","executeRight","allowedGetters","muted","played","seekable","volume","ended","allowedSetters","setCurrentTime","setMuted","setVolume","allowedMediators","mws","clearCacheForPlayer","getOrCreateFactory","mwFactory","mwf","mwi","lastRun","mwrest","_src","MimetypesKind","opus","ogv","m4v","m4a","caf","oga","m3u8","jpg","jpeg","gif","png","svg","webp","getMimetype","mimetype","findMimetype","cache_","matchingSources","filterSource","newsrc","srcobj","fixSource","MediaLoader","techOrder","techName","getTech","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleClick_","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","enabled_","clickHandler","PosterImage","update_","crossorigin","poster","setSrc","darkGray","lightGray","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","opacity","hex","tryUpdateStyle","TextTrackDisplay","updateDisplayHandler","toggleDisplay","preselectTrack","screenOrientation","orientation","changeOrientationEvent","modes","userPref","selectedLanguage","firstDesc","firstCaptions","preferredTrack","allowMultipleShowingTracks","clearDisplay","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","overrides","textTrackSettings","getValues","textOpacity","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontFamily","fontVariant","cueEl","updateDisplayState","LoadingSpinner","isAudio","playerType","Button","BigPlayButton","mouseused_","playPromise","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","TimeDisplay","updateContent","updateTextNode_","span","labelText_","textNode_","formattedTime_","oldNode","CurrentTimeDisplay","scrubbing","getCache","DurationDisplay","TimeDivider","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","liveTracker","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","Num","Slider","handleMouseDown_","handleMouseUp_","handleMouseMove_","barName","playerEvent","progress","getProgress","progress_","sizeKey","getPercent","stepBack","stepForward","vertical_","percentify","LoadProgressBar","partEls_","loadedText","percentageEl_","isLive","seekableEnd","bufferedEnd","percent_","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","pullTooltipBy","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","MouseTimeDisplay","STEP_SECONDS","PAGE_KEY_MULTIPLIER","SeekBar","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","visibilityState","getCurrentTime_","liveCurrentTime","currentTime_","nextSeekedFromUser","seekableStart","videoWasPlaying","mouseDown","newTime","distance","calculateDistance","userSeek_","mouseTimeDisplay","handleAction","gotoFraction","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","isSourceAudio","currentType","audioPosterMode","audioOnlyMode","isInPictureInPicture","exitPictureInPicture","pictureInPictureEnabled","disablePictureInPicture","requestPictureInPicture","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","checkVolumeSupport","VolumeLevel","VolumeLevelTooltip","rangeBarRect","rangeBarPoint","volumeBarPointPx","MouseVolumeLevelDisplay","updateVolume","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","throttledHandleMouseMove","orientationClass","checkMuteSupport","MuteToggle","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","soundOff","VolumePanel","volumeControl","handleKeyPressHandler_","handleKeyPress","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","Menu","menuButton_","menuButton","focusedChild_","boundHandleBlur_","boundHandleTapClick_","handleTapClick","removeEventListenerForItem","childComponent","addEventListenerForItem","contentElType","append","btn","buttonPressed_","unpressButton","foundComponent","stepChild","haveTitle","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","handleSubmenuKeyDown","createMenu","items","hideThreshold_","titleEl","titleComponent","addItem","createItems","buildWrapperCSSClass","menuButtonClass","pressButton","lockShowing","unlockShowing","TrackButton","updateHandler","MenuKeys","MenuItem","isSelected_","multiSelectable","TextTrackMenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","Event","referenceTrack","shouldBeSelected","OffTextTrackMenuItem","allHidden","TextTrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","ChaptersButton","selectCurrentItem_","track_","findChaptersTrack","setTrack","updateHandler_","remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","CaptionsButton","SubsCapsMenuItem","parentSpan","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","featuresNativeAudioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","labelElId_","updateVisibility","updateLabel","handlePlaybackRateschange","labelEl_","rates","playbackRates","playbackRateSupported","Spacer","CustomControlSpacer","ControlBar","ErrorDisplay","LOCAL_STORAGE_KEY$1","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","selectConfigs","parseOptionValue","getSelectedOptionValue","setSelectedOption","TextTrackSettings","endDialog","persistTextTrackSettings","saveSettings","restoreSettings","legendId","selectLabelledbyIds","optionId","createElSelect_","createElFgColor_","createElBgColor_","createElWinColor_","defaultsDescription","createElColors_","createElFont_","createElControls_","getItem","setValues","setItem","removeItem","ttDisplay","controlBar","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","loadListener_","resizeObserver_","debouncedHandler_","contentWindow","unloadListener_","resizeObserver","trackingThreshold","liveTolerance","LiveTracker","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","timeDiff","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","seekableStarts","behindLiveEdge","TitleBar","updateDom_","els","techEl","techAriaAttrs","techAriaAttr","setState","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","dummy","docFrag","getDescriptor","priority","descriptor","getInnerHTMLDescriptor","HTMLMediaElement","firstSourceWatch","resetSourceWatch_","innerDescriptor","appendFn","retval","srcDescriptorPolyfill","getSrcDescriptor","setupSourceset","resetSourceset_","srcDescriptor","oldSetAttribute","oldLoad","currentSrc","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","triggerReady","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","override","lowerCaseType","elTracks","proxyNativeTracksForType_","overrideNative_","techTracks","removeOldTracks","removeTracks","playerElIngest","movingMediaElementInDOM","clone","tagAttributes","techId","playerId","preload","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","webkitEnterFullScreen","HAVE_METADATA","webkitDisplayingFullscreen","webkitExitFullScreen","webkitKeys","resetMediaElement","addTextTrack","getVideoPlaybackQuality","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","TEST_VID","canControlVolume","canControl","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","DEFAULT_BREAKPOINTS","tiny","xsmall","large","xlarge","huge","getTagSettings","closest","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","boundUpdateStyleEl_","updateStyleEl_","boundApplyInitTime_","applyInitTime_","boundUpdateCurrentBreakpoint_","updateCurrentBreakpoint_","boundHandleTechClick_","handleTechClick_","boundHandleTechDoubleClick_","handleTechDoubleClick_","boundHandleTechTouchStart_","handleTechTouchStart_","boundHandleTechTouchMove_","handleTechTouchMove_","boundHandleTechTouchEnd_","handleTechTouchEnd_","boundHandleTechTap_","handleTechTap_","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","audioOnlyMode_","audioPosterMode_","audioOnlyCache_","playerHeight","hiddenChildren","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","autoplay","scrubbing_","fullscreenchange","fluid_","playerOptionsCopy","middleware_","majorVersion","userActive","listenForUserActivity_","breakpoints","responsive","styleEl_","playerElIngest_","divEmbed","VIDEOJS_NO_DYNAMIC_STYLE","defaultsStyleEl","fill_","fluid","links","linkEl","techGet_","techCall_","posterImage","privDimension","parsedVal","ratio","aspectRatio_","width_","height_","idClass","videoWidth","videoHeight","ratioParts","ratioMultiplier","unloadTech_","titleTechName","camelTechName","techName_","normalizeAutoplay","techOptions","playsinline","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","manualAutoplay_","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","promise","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","updateSourceCaches_","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","request","lastPlaybackRate","queued","timeWhenWaiting","timeUpdateListener","userActions","inAllowedEls","doubleClick","userWasActive","cancelable","targetPlayer","isFs","fullscreen","msMatchesSelector","initTime","inactivityTimeout","defaultPlaybackRate","resolve","play_","isSrcReady","waitToPlay_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","percentAsDecimal","defaultMuted","isFS","toggleFullscreenClass_","fullscreenOptions","offHandler","requestFullscreenHelper_","fsOptions","supportsFullScreen","preferFullWindow","enterFullWindow","exitFullscreenHelper_","exitFullWindow","isFullWindow","docOrigOverflow","overflow","isPiP","isInPictureInPicture_","togglePictureInPictureClass_","hotkeys","excludeElement","isContentEditable","allowedInputTypes","excludedTags","handleHotkeys","fullscreenKey","keydownEvent","muteKey","playPauseKey","FSToggle","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","foundSourceAndTech","flip","finder","sourceOrder","isRetry","resetRetryOnError_","middlewareSource","src_","handleSrc_","notSupportedMessage","retry","stopListeningForErrors","sourceTech","selectSource","doReset_","resetControlBarUI_","resetProgressBar_","resetPlaybackRate_","resetVolumeBar_","durationDisplay","techAutoplay","newPoster","usingNativeControls_","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","errorDisplay","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseUpAndMouseLeave","isAudio_","playerChildren","controlBarHeight","currentHeight","exitPromises","enableAudioOnlyUI_","disableAudioOnlyUI_","audioOnlyModePromise","enablePosterModeUI_","disablePosterModeUI_","modal","currentBreakpoint","currentWidth","candidateBreakpoint","maxWidth","breakpoints_","breakpoint_","currentBreakpointClass","responsive_","removeCurrentBreakpoint_","reset","artist","artwork","tt","titleBar","currentSources","baseOptions","tagOptions","dataSetup","childName","previousLogLevel_","newRates","html5","userLanguage","navigationUI","BASE_PLUGIN_NAME","PLUGIN_CACHE_KEY","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","createBasicPlugin","plugin","basicPluginWrapper","createPluginFactory","PluginSubClass","getEventHash","VERSION","isBasic","deprecate","warned","deprecateForMajor","oldName","newName","registerPlugin","usingPlugin","hasPlugin","normalizeId","getPlayer","PlayerComponent","getPlayers","nId","getAllPlayers","comp","writeable","mergeOptions","deregisterPlugin","getPlugins","getPluginVersion","addLanguage","EventTarget","QualityLevel","bitrate","QualityLevelList","levels_","selectedIndex_","qualityLevel","getQualityLevelById","removed","addqualitylevel","removequalitylevel","version$5","initPlugin$1","originalPluginFn","qualityLevels","qualityLevelList","resolveManifestRedirect","req","responseURL","logger","TIME_FUDGE_FACTOR","SAFE_TIME_DELTA","filterRanges","timeRanges","findRange","findNextRange","findGaps","bufferIntersection","bufferA","bufferB","arity","extents","printableRange","strArr","timeUntilRebuffer","timeRangesToArray","timeRangesList","isRangeDifferent","lastBufferedEnd","timeAheadOf","segmentDurationWithParts","getPartsAndSegments","si","getLastParts","lastSegment","getKnownPartCount","partCount","liveEdgeDelay","partHoldBack","holdBack","backwardDuration","endSequence","forwardDuration","intervalDuration","expired","backward","forward","totalDuration","sumDurations","defaultDuration","durationList","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentEndTime","getMediaInfoForTime","startingSegmentIndex","startingPartIndex","exactManifestTimings","partsAndSegments","partAndSegment","isExcluded","excludeUntil","isIncompatible","excluded","isAes","estimateSegmentRequestTime","bytesReceived","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","playlistMatch","someAudioVariant","groupName","variant","Playlist","createPlaylistID","parseManifest","onwarn","oninfo","customTagParsers","customTagMappers","llhls","customParser","setupMediaPlaylist","playlistErrors_","setupMediaPlaylists","resolveMediaGroupUris","mainForMedia","addPropertiesToMain","phonyUri","audioOnlyMain","groupId","EventTarget$1","addLLHLSQueryDirectives","parameters","nextMSN","nextPart","_HLS_part","_HLS_msn","canSkipUntil","_HLS_skip","parsedUri","searchParams","updateSegment","skipped","updateSegments","oldSegments","newSegments","newIndex","newSegment","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMain$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skippedSegments","refreshDelay","lastPart","lastDuration","PlaylistLoader","vhs","logger_","vhs_","vhsOptions","handleMediaupdatetimeout_","playlistRequestError","haveMetadata","playlistString","startingState","playlistObject","parseManifest_","lastRequest","pendingMedia_","media_","updateMediaUpdateTimeout_","stopRequest","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","shouldDelay","mediaChange","mainPlaylistRef","started","setupInitialPlaylist","srcUri","videojsXHR","callbackWrapper","reqResponse","responseTime","roundTripTime","requestTime","responseHeaders","timedout","xhrFactory","XhrFunction","beforeRequest","Vhs","newOptions","xhrMethod","originalAbort","byterangeStr","byterangeEnd","byterangeStart","segmentXhrHeaders","Range","textRange","formatHexString","formatAsciiString","createTransferableMessage","transferable","initSegmentId","segmentKeyId","hexDump","ascii","tagDump","textRanges","SEGMENT_END_FUDGE_PERCENT","playerTimeToProgramTime","playerTime","transmuxerPrependedSeconds","videoTimingInfo","transmuxedStart","transmuxedPresentationStart","startOfSegment","offsetFromSegmentStart","originalSegmentVideoDuration","transmuxedPresentationEnd","findSegmentForProgramTime","programTime","nextSegmentStart","lastSegmentStart","lastSegmentDuration","lastSegmentEnd","estimatedStart","findSegmentForPlayerTime","segmentEnd","getOffsetFromTimestamp","comparisonTimeStamp","segmentDateTime","programDateTime","segmentTimeEpoch","programTimeEpoch","verifyProgramDateTimeTags","getProgramTime","matchedSegment","seekTime","programTimeObject","mediaSeconds","seekToProgramTime","retryCount","seekTo","pauseAfterSeek","mediaOffset","seekToTime","seekedCallback","callbackOnCompleted","containerRequest","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","overrideMimeType","loaded","dashPlaylistUnchanged","aSegment","bSegment","aByterange","bByterange","parseMainXml","mainXml","srcUrl","updateMain","oldMain","newMain","noChanges","playlistUpdate","equivalentSidx","neitherMap","equivalentMap","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","filterChangedSidxMappings","videoSidx","mediaGroupSidx","DashPlaylistLoader","srcUrlOrPlaylist","mainPlaylistLoader","mainPlaylistLoader_","isMain_","refreshXml_","refreshMedia_","loadedPlaylists_","sidxMapping_","childPlaylist_","mediaRequest_","fin","requestErrored_","internal","playlistExclusionDuration","minimumUpdatePeriodTimeout_","createMupOnMedia_","addSidxSegments_","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","requestMain_","mainChanged","haveMain_","hasPendingRequest","mainXml_","mainLoaded_","handleMain_","syncClientServerClock_","utcTiming","clientOffset_","serverTime","mpl","mup","createMUPTimeout_","mediaID","mediaChanged","createMediaUpdateTimeout","Config","GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","BACK_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","INITIAL_BANDWIDTH","BANDWIDTH_VARIANCE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BUFFER_HIGH_WATER_LINE","stringToArrayBuffer","browserWorkerPolyFill","workerObj","createObjectURL","Blob","blob","BlobBuilder","getBlob","objectUrl","worker","objURL","terminate","revokeObjectURL","getWorkerString","workerCode$1","commonjsGlobal","globalThis","Stream$8","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mdat","mfhd","minf","mvex","mvhd","trak","tkhd","mdia","mdhd","hdlr","sdtp","stbl","stsd","traf","trex","trun$1","MAJOR_BRAND","MINOR_VERSION","AVC1_BRAND","VIDEO_HDLR","AUDIO_HDLR","HDLR_TYPES","VMHD","SMHD","DREF","STCO","STSC","STSZ","STTS","MAX_UINT32$1","getUint64$2","numbers","avc1","avcC","btrt","dref","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","payload","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","samples","dependsOn","isDependedOn","hasRedundancy","videoSample","audioSample","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","dataOffset","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","baseMediaDecodeTime","audioTrun","videoTrun","trunHeader","durationPresent","sizePresent","flagsPresent","compositionTimeOffset","bytesOffest","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","mp4Generator","fileType","movie","groupNalsIntoFrames","nalUnits","currentNal","currentFrame","frames","nalCount","nalUnitType","dts","pts","keyFrame","groupFramesIntoGops","currentGop","gops","extendFirstKeyFrame","createDefaultSample","sampleForFrame","frame","generateSampleTable$1","baseDataOffset","concatenateNalData","nalsByteLength","numberOfNals","totalByteLength","generateSampleTableForFrame","concatenateNalDataForFrame","frameUtils$1","generateSampleTable","highPrefix","lowPrefix","zeroFill","makeTable","metaTable","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","ONE_SECOND_IN_TS$4","clock$2","clock$1","sumFrameByteLengths","currentObj","prefixWithSilence","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","silentFrame","firstFrame","frameDuration","audioGapDuration","audioFillFrameCount","audioFillDuration","trimAdtsFramesByEarliestDts","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","concatenateFrameData","audioFrameUtils$1","ONE_SECOND_IN_TS$3","collectDtsInfo","timelineStartInfo","maxSegmentPts","maxSegmentDts","clearDtsInfo","calculateTrackBaseMediaDecodeTime","scale","trackDecodeInfo$1","USER_DATA_REGISTERED_ITU_T_T35","RBSP_TRAILING_BITS","parseSei","payloadType","payloadSize","userIdentifier","parseUserData","sei","parseCaptionPackets","userData","ccData","discardEmulationPreventionBytes$1","emulationPreventionBytesPositions","captionPacketParser","discardEmulationPreventionBytes","Stream$7","cea708Parser","CaptionStream$2","parse708captions_","parse708captions","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","idx","presortIndex","packet","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","get708CharFromCode","newCode","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rowIdx","beforeRowOverflow","addText","backspace","Cea708Service","serviceNum","currentWindow","createTextDecoder","startPts","setCurrentWindow","textDecoder_","serviceProps","captionServiceEncodings","serviceName","serviceEncodings","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","blockSize","seq","sizeCode","pushServiceBlock","initService","handleText","multiByteCharacter","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","isExtended","getPts","flushDisplayed","char","charCodeArray","isMultiByte","extended","currentByte","nextByte","fillOpacity","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","justify","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","underline","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","CHARACTER_TRANSLATION","getCharFromCode","BOTTOM_ROW","ROWS","createDisplayBuffer","field","dataChannel","field_","dataChannel_","setConstants","char0","char1","lastControlCode_","PADDING_","RESUME_CAPTION_LOADING_","mode_","END_OF_CAPTION_","clearFormatting","displayed_","nonDisplayed_","startPts_","ROLL_UP_2_ROWS_","rollUpRows_","setRollUp","ROLL_UP_3_ROWS_","ROLL_UP_4_ROWS_","CARRIAGE_RETURN_","shiftRowsUp_","BACKSPACE_","row_","ERASE_DISPLAYED_MEMORY_","ERASE_NON_DISPLAYED_MEMORY_","RESUME_DIRECT_CAPTIONING_","isSpecialCharacter","column_","isExtCharacter","isMidRowCode","addFormatting","isOffsetControlCode","isPAC","formatting_","isColorPAC","isNormalChar","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","newBaseRow","popOn","baseRow","rollUp","paintOn","captionStream","CaptionStream","streamTypes","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","Stream$6","MAX_TS","RO_THRESH","TYPE_SHARED","handleRollover$1","TimestampRolloverStream$1","lastDTS","referenceDTS","type_","MetadataStream","timestampRolloverStream","TimestampRolloverStream","handleRollover","typedArrayIndexOf$1","typedArray","fromIndex","typedArrayIndexOf","Stream$5","StreamTypes$3","textEncodingDescriptionByte","Iso88591","Utf16","Utf16be","Utf8","percentEncode$1","parseUtf8","parseIso88591$1","parseSyncSafeInteger$1","frameParsers","mimeTypeEndIndex","descriptionEndIndex","LINK_MIME_TYPE","pictureType","pictureData","privateData","tagSize","dispatchType","frameStart","frameSize","frameHeader","dataAlignmentIndicator","TransportPacketStream","TransportParseStream","ElementaryStream","metadataStream","Stream$4","CaptionStream$1","StreamTypes$2","MP2T_PACKET_LENGTH$1","SYNC_BYTE$1","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","sectionLength","tableEnd","programInfoLength","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","parsePes","pes","ptsDtsFlags","startPrefix","packetLength","forceFlush","packetFlushable","trackId","flushStreams_","m2ts$1","PAT_PID","MP2T_PACKET_LENGTH","AdtsStream$1","m2ts_1","Stream$3","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES$1","handlePartialSegments","frameNum","skipWarn_","frameLength","protectionSkipBytes","oldBuffer","sampleCount","adtsFrameDuration","ExpGolomb$1","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","H264Stream$1","NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","Stream$2","ExpGolomb","syncPoint","swapBuffer","100","110","244","44","86","118","128","134","currentPts","currentDts","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","deltaScale","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","aspectRatioIdc","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","AacStream$1","H264Stream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","isLikelyAacData$1","parseSyncSafeInteger","percentEncode","parseIso88591","parseAdtsSize","lowThree","highTwo","parseType$4","parseSampleRate","parseAacTimestamp","isLikelyAacData","parseType","Stream$1","aacUtils","setTimestamp","bytesLeft","tempLength","VideoSegmentStream","AudioSegmentStream","Transmuxer","CoalesceStream","AUDIO_PROPERTIES$1","audioProperties","VIDEO_PROPERTIES$1","videoProperties","frameUtils","audioFrameUtils","trackDecodeInfo","m2ts","clock","AdtsStream","AacStream","ONE_SECOND_IN_TS$1","AUDIO_PROPERTIES","VIDEO_PROPERTIES","retriggerForStream","addPipelineLogRetriggers","transmuxer","pipeline","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","ptsOffsetFromDts","decodeDuration","presentationDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","halfSecond","allowableOverlap","nearestDistance","alignIndex","gopIndex","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remux","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","audioTrack","caption","id3","captionStreams","cueTime","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","getLogTrigger_","hasAudio","hasVideo","setupTsPipeline","packetStream","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","toUnsigned$3","toHexString$1","bin","toUnsigned","parseType$3","parseType_1","toUnsigned$2","parseType$2","findBox$2","subresults","findBox_1","toUnsigned$1","getUint64$1","parseTfdt$2","parseSampleFlags$1","parseSampleFlags_1","parseSampleFlags","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","parseTrun$2","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","parseTfhd$2","compositionStartTime","getVideoTrackIds","getTracks","getTimescaleFromMediaHeader","window_1","findBox$1","parseTfdt$1","parseTrun$1","parseTfhd$1","window$2","mapToSample","approximateOffset","findSeiNals","avcStream","seiNal","lastMatchedSample","avcView","logs","seiNals","matchingSample","parseSamples","truns","allSamples","trackRun","parseCaptionNals","videoTrackId","trafs","mdats","captionNals","mdatTrafPairs","matchingTraf","pair","headerInfo","parseEmbeddedCaptions","trackNals","CaptionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isPartial","isNewInit","videoTrackIds","timescales","parsedData","cachedSegment","pushNals","nals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","captionParser","parseType$1","parseTfhd","parseTrun","parseTfdt","window$1","traks","lowestTime","baseTime","trafBoxes","parsedTfhd","parsedTfdt","parsedTrun","hdlrs","tkhds","handlerType","getUint8","tkhdVersion","sampleDescriptions","codecConfig","codecConfigType","codecBox","probe$2","StreamTypes$1","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","pusi","payloadOffset","parsePesType","parsePesTime","parseNalUnitType","videoPacketContainsKeyFrame","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","probe$1","StreamTypes","probe","SYNC_BYTE","parsePsi_","parseAudioPes_","pesType","endLoop","parseVideoPes_","firstKeyFrame","adjustTimestamp_","baseTimestamp","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","inspectAac_","audioCount","audioTimescale","inspectTs_","isAacData","tsInspector","wireTransmuxerEvents","initArray","postMessage","action","gopInfo","timingInfo","videoSegmentTimingInfo","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","MessageHandlers","trackIds","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","timestampOffset","appendStart","onmessage","messageHandlers","TransmuxWorker","handleData_","transmuxedData","videoFrameDtsTime","videoFramePtsTime","handleDone_","handleGopInfo_","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","waitForEndedTimelineEvent","handleMessage","currentTransmux","dequeue","transmuxQueue","processAction","enqueueAction","transmux","createTransmuxer","term","segmentTransmuxer","workerCallback","endAction","listenForEndEvent","isArrayBuffer","transfers","REQUEST_ERRORS","FAILURE","TIMEOUT","ABORTED","abortAll","activeXhrs","getRequestStats","getProgressStats","progressEvent","stats","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","parseInitSegment","handleInitSegmentResponse","encryptedBytes","parseError","handleSegmentResponse","newBytes","lastReachedChar","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","finish","id3Frames","probeResult","handleSegmentBytes","bytesAsUint8Array","isFmp4","audioCodec","videoCodec","finishLoading","decrypt","decryptionWorker","decryptionHandler","decrypted","keyBytes","encrypted","decryptSegment","requestId","decryptedBytes","waitForCompletion","didError","segmentFinish","endOfAllRequests","handleLoadEnd","loadendState","abortFn","calledAbortFn","handleProgress","progressFn","firstBytesReceivedAt","mediaSegmentRequest","xhrOptions","keyRequestOptions","keyRequestCallback","keyXhr","differentMapKey","mapKeyRequestOptions","mapKeyRequestCallback","mapKeyXhr","initSegmentOptions","initSegmentRequestCallback","initSegmentXhr","segmentRequestOptions","segmentRequestCallback","segmentXhr","activeXhr","logFn$1","getCodecs","mediaAttributes","isMaat","unwrapCodecList","codecList","codecCount","codecObj","codecsForPlaylist","codecInfo","defaultCodecs","logFn","representationToString","safeGetComputedStyle","stableSort","sortFn","newArray","cmp","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","comparePlaylistResolution","leftWidth","rightWidth","simpleSelector","playerBandwidth","playerWidth","limitRenditionByPlayerDimensions","playlistController","getAudioTrackPlaylists_","sortedPlaylistReps","rep","enabledPlaylistReps","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","chosenRep","haveResolution","resolutionBestRepList","resolutionBestRep","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","leastPixelDiffSelector","leastPixelDiffList","pixelDiff","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","devicePixelRatio","systemBandwidth","playlistController_","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","minRebufferMaxBandwidthSelector","syncController","compatiblePlaylists","enabledPlaylists","bandwidthPlaylists","rebufferingEstimates","getSyncPoint","numRequests","requestTimeEstimate","rebufferingImpact","noRebufferingPlaylists","estimate","lowestBitrateCompatibleVariantSelector","playlistsWithVideo","concatSegments","segmentObj","createCaptionsTrackIfNotExists","inbandTextTracks","getTrackById","def","captionService","addCaptionData","captionArray","Cue","WebKitDataCue","deprecateOldCue","addMetadata","metadataArray","videoDuration","metadataTrack","metadataTrack_","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","nextTime","createMetadataTrackIfNotExists","inBandMetadataTrackDispatchType","removeCuesFromTrack","removeDuplicateCuesFromTrack","duplicates","occurrences","dupe","gopsSafeToAlignWith","mapping","currentTimePts","updateGopBuffer","removeGopBuffer","updatedBuffer","shallowEqual","akeys","bkeys","QUOTA_EXCEEDED_ERR","getSyncSegmentCandidate","targetTime","timelineSegments","MIN_BACK_BUFFER","CHECK_BUFFER_DELAY","finite","MIN_SEGMENT_DURATION_TO_SAVE_STATS","illegalMediaSwitch","loaderType","startingMedia","safeBackBufferTrimTime","trimTime","maxTrimTime","segmentInfoString","mediaIndex","segmentLen","isSyncRequest","independent","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","timestampOffsetForSegment","overrideCheck","shouldWaitForTimelineChange","timelineChangeController","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","mediaDuration","timingInfos","maxDuration","typeTimingInfo","segmentTooLong","getTroublesomeSegmentDurationMessage","sourceType","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","SegmentLoader","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","loaderType_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","timelineChangeController_","shouldSaveSegmentTimingInfo_","useDtsForTimestampOffset_","useDtsForTimestampOffset","captionServices_","checkBufferTimeout_","currentTimeline_","pendingSegment_","xhrOptions_","pendingSegments_","audioDisabled_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","waitingOnRemove_","quotaExceededErrorRetryTimeout_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncPoint_","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","mediaAppends","abort_","removeAudio","monitorBuffer_","abortRequests","clearPendingTimelineChange","getMediaInfo_","videoBuffered","audioBuffered","storedMap","storedKey","playlist_","couldBeginLoading_","init_","resetEverything","newPlaylist","syncInfo","setDateTimeMappingForStart","oldId","resyncLoader","resetLoader","mediaSequenceDiff","saveExpiredSegmentInfo","force","removesRemaining","removeFinished","removeVideo","monitorBufferTick_","fillBuffer_","updating","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","buffered_","bufferedTime","preloaded","haveEnoughBuffer","nextSegment","lastSegmentLastPart","generateSegmentInfo_","forceTimestampOffset","random","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","videoTimestampOffset","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","switchCandidate","timeSavedBySwitching","minimumTimeSaving","simpleSegment","earlyAbortWhenNeeded_","checkForAbort_","checkForIllegalMediaSwitch","timeType","timingInfoProperty","captionData","hasAppendedData_","handleCaptions_","captionTracks","captionTrack","trackName","handleId3_","callQueue","fun","loadQueue","getCurrentMediaInfo_","setTimeMapping_","updateMediaSecondsLoaded_","initSegmentForMap","segmentKey","useVideoTimingInfo","firstVideoFrameTimeForData","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","processMetadataQueue_","appendData_","changedTimestampOffset","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","handleQuotaExceededError_","appendBuffer","handleAppendError_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","getInitSegmentAndUpdateState_","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","handleAbort_","handleProgress_","handleTrackInfo_","handleTimingInfo_","handleSegmentTimingInfo_","segmentRequestFinished_","removeToTime","previousSegment","saveTransferStats_","handleTimeout_","saveBandwidthRelatedStats_","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","didChange","getSegmentStartTimeForTimestampOffsetCalculation_","prioritizedTimingInfo","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","badSegmentGuess","badPartGuess","endOfStream","segmentProcessingTime","segmentProcessingThroughput","bufferTypes","sourceBuffer","queuePending","nextQueueIndexOfType","queueEntry","shiftQueue","queueIndex","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","onError","addSourceBuffer","mime","removeSourceBuffer","changeType","pushQueue","onUpdateend","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","hasCreatedSourceBuffers","hasInitializedAnyEme","addOrChangeSourceBuffers","canRemoveSourceBuffer","SourceBuffer","canChangeType","processedAppend_","videoBuffer","que","audioBuffer","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","VTTSegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","combinedByteLength","combinedSegment","timestampOffsetForTimeline","checkTimestampOffset","skipEmptySegments_","stopForError","loadHandler","requested","parseVTTCues_","updateTimeMapping_","timelines","decodeBytesToString","timestampmap","MPEGTS","LOCAL","mapData","segmentData","mappingObj","diff","firstStart","lastStart","findAdCue","mediaTime","adStartTime","adEndTime","updateAdCues","adOffset","adTotal","MAX_MEDIA_SEQUENCE_DIFF_FOR_SYNC","syncPointStrategies","run","timelineToDatetimeMappings","lastDistance","datetimeMapping","discontinuitySync","discontinuities","SyncController","syncPoints","runStrategies_","selectSyncPoint_","strategy","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","firstSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","workerCode","unpad","padded","precompute","tables","encTable","decTable","sbox","sboxInv","xInv","x2","x4","x8","tEnc","tDec","aesTables","AES","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","a2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","ntoh","word","initVector","encrypted32","Int32Array","decipher","decrypted32","init0","init1","init2","init3","wordIx","Decrypter","STEP","asyncStream_","decryptChunk_","audioTrackKind_","stopLoaders","segmentLoader","activePlaylistLoader","startLoaders","playlistLoader","onGroupChanged","segmentLoaders","mainSegmentLoader","activeTrack","activeGroup","getActiveGroup","previousActiveLoader","lastGroup","lastGroup_","lastTrack_","isMainPlaylist","onGroupChanging","onTrackChanged","lastTrack","pc","selectPlaylist","fastQualityChange_","setAudio","excludePlaylist","defaultTrack","setupListeners","requestOptions","initialize","variantLabel","newProps","groupMatch","variants","groupKeys","groupPropertyList","activeTrack_","setupMediaGroups","audioSegmentLoader","activeAudioGroup","onAudioTrackChanged","createMediaTypes","ABORT_EARLY_EXCLUSION_SECONDS","Vhs$1","loaderStats","sumLoaderStat","stat","audioSegmentLoader_","mainSegmentLoader_","shouldSwitchToMedia","currentPlaylist","nextPlaylist","bufferLowWaterLine","bufferHighWaterLine","bufferBasedABR","sharedLogLine","isBuffered","forwardBuffer","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","PlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","maxPlaylistRetries","useCueTags_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","segmentLoaderSettings","setupMainPlaylistLoaderListeners_","subtitleSegmentLoader_","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","shouldSwitchToMedia_","switchMedia_","newId","abrTimer_","checkABR_","defaultPlaylists","defaultGroup","requestTimeout","triggerPresenceUsage_","setupFirstPlay","updatedPlaylist","selectedMedia","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","haveJsonSource","handleUpdatedMediaPlaylist","playlistToExclude","lastExcludeReason_","playlistOutdated","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","mainMediaInfo","getExpiredTime","absolutePlaylistEnd","reincluded","errorMessage","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","audioSeekable","mainSeekable","oldEnd","oldStart","updateDuration_","setDuration","usingAudioLoader","hasMainMediaInfo","hasAudioMediaInfo","playlistCodecs","supportFunction","unsupportedCodecs","unsupportedAudio","supporter","variantAudioGroup","switchMessages","newCodec","oldCodec","areMediaTypesKnown_","createSourceBuffers","excludeIncompatibleVariants_","unsupported","codecCount_","videoDetails","audioDetails","exclusionReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","newMax","enableFunction","playlistID","changePlaylistFn","incompatible","currentlyEnabled","Representation","vhsHandler","qualityChangeFunction","renditionSelectionMixin","timerCancelEvents","PlaybackWatcher","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","consecutiveUpdates","lastRecordedTime","checkCurrentTimeTimeout_","playHandler","monitorCurrentTime_","canPlayHandler","waitingHandler","techWaiting_","cancelTimerHandler","resetTimeUpdate_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","setSeekingHandlers","seekingAppendCheck_","fixesBadSeeks_","clearSeekingAppendCheck_","watchForBadSeeking_","checkCurrentTime_","isBufferedDifferent","playlistId","waiting_","isAfterSeekableRange","afterSeekableWindow_","beforeSeekableWindow_","minAppendedDuration","bufferedToCheck","timeAhead","nextRange","livePoint","videoUnderflow","videoUnderflow_","skipTheGap_","allowedEnd","gap","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gaps","defaultOptions","errorInterval","IWillNotUseThisInPlugins","initPlugin","lastCalled","localOptions","loadedMetadataHandler","getSource","cleanupEvents","reinitPlugin","reloadSourceOnError","version$4","version$3","version$2","version$1","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","LOCAL_STORAGE_KEY","handleVhsMediaChange","handleVhsLoadedMetadata","addQualityLevel","emeKeySystems","keySystemOptions","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","getAllPsshKeySystemsOptions","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","eme","initializeMediaKeys","keySystemsOptionsArr","initializationFinishedPromises","keySessionCreatedPromises","race","setupEmeOptions","sourceOptions","getVhsLocalStorage","storedObject","updateVhsLocalStorage","objectToStore","expandDataUri","dataUri","supportsNativeHls","canPlay","canItPlay","supportsNativeDash","supportsTypeNatively","VhsHandler","initialBandwidth","_player","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","overrideNativeAudioTracks","overrideNativeVideoTracks","featuresNativeVideoTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","useNetworkInformationApi","playbackWatcherOptions","playbackWatcher_","defaultSelector","playerBandwidthEst","networkInformation","connection","mozConnection","webkitConnection","tenMbpsAsBitsPerSecond","networkInfoBandwidthEstBitsPerSec","downlink","invBandwidth","invThroughput","systemBitrate","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaSecondsLoaded_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","appendsToLoadedData_","timeToLoadedData","timeToLoadedData_","currentTech","playerDimensions","currentDimensions","setupEme_","setupQualityLevels_","mediaSourceUrl_","audioPlaylistLoader","initializedEme","createKeySessions_","didSetupEmeOptions","excludedHDPlaylists","handleWaitingForKey_","qualityLevels_","VhsSourceHandler","supportedType","canUseMsePlayback","supportsNativeMediaSources","showVideo1","showVideo2","showVideo3","showVideo4","showVideo5","showVideo6","showVideo7","showVideo8","video1","videoOptions1","video2","videoOptions2","video3","videoOptions3","video4","videoOptions4","video5","videoOptions5","video6","videoOptions6","video7","videoOptions7","video8","videoOptions8","VideoPlayer","isAdmin","customer_titles","simple","show_usage","activated","nextDialogInWizard","fetchOffer","moveToSummary","requires_holder","phone","searchCountries","countries","disablePaymentMode","payments","iban","forgein_bank_owner","forgein_bank_owner_firstname","forgein_bank_owner_lastname","forgein_bank_owner_street","forgein_bank_owner_number","forgein_bank_owner_zip","forgein_bank_owner_city","getZipFromSelection_2","getCountryFromSelection","fetchCountries","getCountries","pl1","pl2","pl3","vin","current_mileage","tmpplate","splitPlate","plate","needsPastIns","insurance_number","getInsFromSelection","getInsFromSelections","holder_title","holder_number","Holder","createContract","requires_insurance","einstufungsgrund","scrollSetting","findScrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","$entries","atob","decodeB64ToUint8Array","b64Text","decodedString"],"mappings":"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A,IACf/D,eACA2G,gBACA8/B,gBAAA,kBACA,kCACA,kCACA,kCACA,kCACA,kCACA,oBAEA5/B,gBACA,OACAohB,aAGA7kB,SACA8qC,uBACA,mBACAluC,wBACAqe,QAAAyM,mCAGAmjB,2BAAA,WACA,gBACA,UACAE,sBACA/jB,kBACA,yBAAA/pB,yBACA,gCACA2W,eACA,gBAEAsT,sBAEAqjB,sBACA,8CACA,EAGA,kCAGA5mC,kBACA6hC,gBAAApD,mCACAx+B,gBACA/C,kBAAA,gBACAupC,oBAAA,2BAGAvhB,SAEA3f,sBC/I0gB,MCOtgB,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,knBCyNA,QACf3F,gBACA8/B,gBAAA,kBACA,gCACA,iDACA/c,4CACAC,uCACAykB,kCACAC,qCACAC,2BACAC,2BACAC,iCACAC,gCACAC,gCACAC,kCACAC,sCACAC,aAEAhoC,gBACA,OACAohB,WAEA6mB,aACAC,UACAC,WACAC,QACAC,UACAC,UACAC,aACAC,mBAIA1lC,OACAmhB,aACA5X,8BACAD,gBAEA7P,SACA8qC,uBACA,mBACAluC,wBACAqe,QAAAyM,mCAGAua,2BACA,mBACA,qBACA,uBAEA,qBACA,uBAGAC,8BACA,uBACA,yBACA,2BAEA,yBACA,2BAIAgK,8BAAA,WACA50B,yCACA,gBACA,UACA60B,YACAnlB,kBAIA1P,sCACAA,0BACAA,wBAEA4P,mBACA5P,kBAEA6P,oBACA,iBAKAilB,8BACA,yBAGAC,uBACA,gCAqBAC,6BAoBA,OAnBAh1B,YACA,kEAiBAA,kDACA,iBAGAA,oEACA,0BAGAA,gEACA,yBAKAi1B,0BACAC,gCAEAC,4BACA,GACAH,oBAgBA,OAHA,2BACAh1B,mCAEA,GAIAo1B,wBACA,oBAGAC,0BAAA,WAEAr1B,+BACA,iBAEA,gBACA,gBACA,UACA60B,YACAnlB,kBAEA1P,qCACAA,eACAA,oCACAA,4BACAA,kCAGA,yBAGA,uBACA,sCAGA,kBACAA,yBACAA,wBAEA4P,mBACA5P,kBAEA6P,oBACA,aACA,iBAGAkgB,+BAAA,WACA,gBACA,YACA,oBACAC,SAEA,UACAC,qBACAvgB,kBACA,qDACA,SAcA,OAZA,SACAwgB,6BAIAA,4BAGA,4BACAA,UAGA,CAAAp5B,WAAAke,eAGApF,uBAGAC,oBACA,iBAIAuhB,6BAAA,WACA,gBACA,UACAC,kBACA3hB,kBAEA,mDACA,OAAA5Y,WAAAke,oBAGApF,uBAGAC,oBAGA,kDACA,iBAKAyhB,2BAAA,WACA,gBACA,UACAC,gBACA7hB,kBAEA,2CACA,OAAA5Y,WAAAke,uBAGApF,uBAGAC,oBAEA,iBAKAylB,uBAAA,WACA,iBACA,gBACA,gBACA,UACAC,wBACA7lB,kBAGA1P,uBACAA,4BACA,qBACA,+BAIA4P,mBACA5P,kBAEA6P,oBACA,aACA,iBAIA2lB,qBACA,uBAaApK,qBAIA,GAHA,eAEAprB,iDACA,aACA,SAGA,4BACAA,iDACA,gBACA,SAIA,GADAA,mEACA,wBACA,SAGA,GADAA,8DACA,wBACAA,kEACA,uBACA,SAaA,GATA,oBACAA,gDACA,qFACA,iBAKAA,uFACA,kCACA,SAGA,GADAA,2EACA,4BACA,SAGA,GADAA,yEACA,2BACA,SAKA,GAFAA,gEACAA,uEACA,4BAEA,OADAA,sEACA,EAGA,GADAA,kEACA,6BACA,SAIA,GADAA,yDACA,mBACA,SAGA,GADAA,qEACA,yBACA,SAGA,GADAA,iEACA,uBACA,SAGA,GADAA,uEACA,kCAEA,GADAA,oFACA,qCACA,SAOA,GALAA,kEACA,wBAGAA,kEACA,4BACA,SAIA,GADAA,wDACA,oBACA,mBACA,UAIA,kCACA,kBACA,oBAeAmrB,2BAGAN,uBACA,gBACA,mCAEA,0BACA,2BACA,qBACA,yBACA,wBACA,mCACA,gCACA,uBACA,6BACA,0BAGA,+BACA,2BAEA,qBACA,qBACA,8BACA,8BACA,6BACA,6BAKA,eAEA,mCACA,8BACA,kBAEA,gBACA7qB,2BAEA,oCACA,8BACA,6BAGAA,wCACAA,2BAEA,2BACA,+BAEA,gBAEA,2BACA,yBAEA,uBAEA,2BACA,oFAMA3T,wBACA6hC,gBAAApD,mCAC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GAAA,IACf1G,eACA2J,OACAuJ,SACAD,SAEAtM,eACA8/B,gBAAA,iBACA,+BACA,iBAEA5/B,gBACA,OACAohB,WACAslB,0BAGAnqC,SACA+pC,sCAGA,qCAGA,gDASApmC,kBACA6hC,gBAAApD,mCACAx+B,gBACA/C,kBAAA,mBAGAqI,sBC1I0gB,MCOtgB,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,knBC8GA,QACf3F,gBACA8/B,gBAAA,kBACA,gCACA,iDACA/c,4CACAC,uCACAykB,kCACAC,qCACAC,2BACAC,2BACAC,iCACAC,gCACAC,kCACAE,sCACAC,aAEAhoC,gBACA,OACAohB,WAEA6mB,aACAG,QACAC,UACAC,UACAC,aACAC,mBAIA1lC,OACAmhB,cAEA1nB,SACA2sC,0BAAA,WACAr1B,yCACA,gBACA,UACA60B,YACAnlB,kBAIA1P,sCACAA,0BACAA,wBAEA4P,mBACA5P,kBAEA6P,oBACA,iBAIAi/N,8BACA,gCACA,uBAEA,4BACA,8BAEA,sBACA,6BADA,GAMAh6M,8BACA,yBAGAC,uBACA,gCAqBAC,6BAEA,OADAh1B,gFACA,gCAGAA,sDACA,mBAGAA,8EACA,+BAGAA,kDACA,iBAGAA,oEACA,0BAGAA,gEACA,4BAKAi1B,0BAGAC,gCAIAC,4BACA,uBAeA,OAFA,2BACAn1B,mCACA,GAIAo1B,wBACA,oBAIAE,uBAAA,WACA,gBACA,UACAC,wBACA7lB,kBAGA1P,uBACA,gBAAAmQ,uCAEAP,mBACA5P,kBAEA6P,oBACA,kBAIAxjB,wBACA6hC,gBAAApD,mCACAx+B,gBACA/C,kBAAA,mBAEAksC,gBACAs5M,uBAAA,qBACAr5M,uBAAA,wBACA,IAIAC,mBACA,gCAGAC,6BACA,YAIArkB,OACA0kB,0BACA,wBACA,2BACAj2B,oCAGAgvO,yBACA,0BACAhvO,kCACA,wBAKApO,mBACA,0BACAoO,2BACA,4DAEA,mCACA,gCACA,sCACA,2BAGA,mBACA,mCAGAA,wCACA,0BAGAA,uBACAA,kCAEAuQ,sBCrW4f,MCOxf,GAAY,eACd,GACAznB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","file":"js/pages.fb3e8e15.js","sourcesContent":["import window from 'global/window';\nvar regexs = {\n // to determine mime types\n mp4: /^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,\n webm: /^(vp0?[89]|av0?1|opus|vorbis)/,\n ogg: /^(vp0?[89]|theora|flac|opus|vorbis)/,\n // to determine if a codec is audio or video\n video: /^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,\n audio: /^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,\n text: /^(stpp.ttml.im1t)/,\n // mux.js support regex\n muxerVideo: /^(avc0?1)/,\n muxerAudio: /^(mp4a)/,\n // match nothing as muxer does not support text right now.\n // there cannot never be a character before the start of a string\n // so this matches nothing.\n muxerText: /a^/\n};\nvar mediaTypes = ['video', 'audio', 'text'];\nvar upperMediaTypes = ['Video', 'Audio', 'Text'];\n/**\n * Replace the old apple-style `avc1.
.
` codec string with the standard\n * `avc1.`\n *\n * @param {string} codec\n * Codec string to translate\n * @return {string}\n * The translated codec string\n */\n\nexport var translateLegacyCodec = function translateLegacyCodec(codec) {\n if (!codec) {\n return codec;\n }\n\n return codec.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (orig, profile, avcLevel) {\n var profileHex = ('00' + Number(profile).toString(16)).slice(-2);\n var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);\n return 'avc1.' + profileHex + '00' + avcLevelHex;\n });\n};\n/**\n * Replace the old apple-style `avc1.
.
` codec strings with the standard\n * `avc1.`\n *\n * @param {string[]} codecs\n * An array of codec strings to translate\n * @return {string[]}\n * The translated array of codec strings\n */\n\nexport var translateLegacyCodecs = function translateLegacyCodecs(codecs) {\n return codecs.map(translateLegacyCodec);\n};\n/**\n * Replace codecs in the codec string with the old apple-style `avc1.
.
` to the\n * standard `avc1.`.\n *\n * @param {string} codecString\n * The codec string\n * @return {string}\n * The codec string with old apple-style codecs replaced\n *\n * @private\n */\n\nexport var mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {\n return codecString.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (match) {\n return translateLegacyCodecs([match])[0];\n });\n};\n/**\n * @typedef {Object} ParsedCodecInfo\n * @property {number} codecCount\n * Number of codecs parsed\n * @property {string} [videoCodec]\n * Parsed video codec (if found)\n * @property {string} [videoObjectTypeIndicator]\n * Video object type indicator (if found)\n * @property {string|null} audioProfile\n * Audio profile\n */\n\n/**\n * Parses a codec string to retrieve the number of codecs specified, the video codec and\n * object type indicator, and the audio profile.\n *\n * @param {string} [codecString]\n * The codec string to parse\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = [];\n codecs.forEach(function (codec) {\n codec = codec.trim();\n var codecType;\n mediaTypes.forEach(function (name) {\n var match = regexs[name].exec(codec.toLowerCase());\n\n if (!match || match.length <= 1) {\n return;\n }\n\n codecType = name; // maintain codec case\n\n var type = codec.substring(0, match[1].length);\n var details = codec.replace(type, '');\n result.push({\n type: type,\n details: details,\n mediaType: name\n });\n });\n\n if (!codecType) {\n result.push({\n type: codec,\n details: '',\n mediaType: 'unknown'\n });\n }\n });\n return result;\n};\n/**\n * Returns a ParsedCodecInfo object for the default alternate audio playlist if there is\n * a default alternate audio playlist for the provided audio group.\n *\n * @param {Object} master\n * The master playlist\n * @param {string} audioGroupId\n * ID of the audio group for which to find the default codec info\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var codecsFromDefault = function codecsFromDefault(master, audioGroupId) {\n if (!master.mediaGroups.AUDIO || !audioGroupId) {\n return null;\n }\n\n var audioGroup = master.mediaGroups.AUDIO[audioGroupId];\n\n if (!audioGroup) {\n return null;\n }\n\n for (var name in audioGroup) {\n var audioType = audioGroup[name];\n\n if (audioType.default && audioType.playlists) {\n // codec should be the same for all playlists within the audio type\n return parseCodecs(audioType.playlists[0].attributes.CODECS);\n }\n }\n\n return null;\n};\nexport var isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nexport var isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nexport var isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nexport var getMimeForCodec = function getMimeForCodec(codecString) {\n if (!codecString || typeof codecString !== 'string') {\n return;\n }\n\n var codecs = codecString.toLowerCase().split(',').map(function (c) {\n return translateLegacyCodec(c.trim());\n }); // default to video type\n\n var type = 'video'; // only change to audio type if the only codec we have is\n // audio\n\n if (codecs.length === 1 && isAudioCodec(codecs[0])) {\n type = 'audio';\n } else if (codecs.length === 1 && isTextCodec(codecs[0])) {\n // text uses application/ for now\n type = 'application';\n } // default the container to mp4\n\n\n var container = 'mp4'; // every codec must be able to go into the container\n // for that container to be the correct one\n\n if (codecs.every(function (c) {\n return regexs.mp4.test(c);\n })) {\n container = 'mp4';\n } else if (codecs.every(function (c) {\n return regexs.webm.test(c);\n })) {\n container = 'webm';\n } else if (codecs.every(function (c) {\n return regexs.ogg.test(c);\n })) {\n container = 'ogg';\n }\n\n return type + \"/\" + container + \";codecs=\\\"\" + codecString + \"\\\"\";\n};\nexport var browserSupportsCodec = function browserSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nexport var muxerSupportsCodec = function muxerSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return codecString.toLowerCase().split(',').every(function (codec) {\n codec = codec.trim(); // any match is supported.\n\n for (var i = 0; i < upperMediaTypes.length; i++) {\n var type = upperMediaTypes[i];\n\n if (regexs[\"muxer\" + type].test(codec)) {\n return true;\n }\n }\n\n return false;\n });\n};\nexport var DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nexport var DEFAULT_VIDEO_CODEC = 'avc1.4d400d';","import URLToolkit from 'url-toolkit';\nimport window from 'global/window';\nvar DEFAULT_LOCATION = 'http://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n } // IE11 supports URL but not the URL constructor\n // feature detect the behavior we want\n\n\n var nativeURL = typeof window.URL === 'function';\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n if (nativeURL) {\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n } else if (!/\\/\\//i.test(baseUrl)) {\n baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);\n }\n\n if (nativeURL) {\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n }\n\n return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);\n};\n\nexport default resolveUrl;","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (ref) {\n return {\n methods: {\n focus: function focus() {\n this.$refs[ref].focus();\n }\n }\n };\n};\n\n;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('card',[_c('h5',{staticClass:\"h3 mb-0\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('i',{staticClass:\"fas fa-info\"}),_vm._v(\"\\n Angebotsdaten\\n \")]),_c('div',{staticClass:\"list-group list-group-flush\"},[_c('div',{staticClass:\"list-group-item\"},[_c('data-row',{attrs:{\"title\":\"Kundendaten\",\"icon\":\"fas fa-users\",\"editable\":\"true\"}},[_c('small',[_vm._v(\"\\noffer.customer_first_name -> \"+_vm._s(_vm.offer.customer_first_name)+\" \"),_c('br'),_vm._v(\"\\noffer.customer_last_name -> \"+_vm._s(_vm.offer.customer_last_name)+\" \"),_c('br'),_vm._v(\"\\noffer.is_company -> \"+_vm._s(_vm.offer.is_company)+\" \"),_c('br'),_vm._v(\"\\noffer.company_name -> \"+_vm._s(_vm.offer.company_name)+\" \"),_c('br'),_vm._v(\"\\noffer.nosf -> \"+_vm._s(_vm.offer.nosf)+\" \"),_c('br'),_vm._v(\"\\noffer.customer_sf -> \"+_vm._s(_vm.offer.customer_sf)+\" \"),_c('br'),_vm._v(\"\\noffer.customer_sf2 -> \"+_vm._s(_vm.offer.customer_sf2)+\" \"),_c('br'),_vm._v(\"\\noffer.dob -> \"+_vm._s(_vm.offer.dob)+\" \"),_c('br'),_vm._v(\"\\noffer.has_holder -> \"+_vm._s(_vm.offer.has_holder)+\" \"),_c('br'),_vm._v(\"\\noffer.holder_id -> \"+_vm._s(_vm.offer.holder_id)+\" \"),_c('br'),_vm._v(\"\\noffer.kravag_location_id -> \"+_vm._s(_vm.offer.kravag_location_id)+\" \"),_c('br'),_vm._v(\"\\noffer.holder_kravag_location_id -> \"+_vm._s(_vm.offer.holder_kravag_location_id)+\" \"),_c('br'),_vm._v(\"\\noffer.youngest_driver_dob -> \"+_vm._s(_vm.offer.youngest_driver_dob)+\" \"),_c('br'),_vm._v(\"\\noffer.oldest_driver_dob -> \"+_vm._s(_vm.offer.oldest_driver_dob)+\" \"),_c('br'),_vm._v(\"\\noffer.insurance_start -> \"+_vm._s(_vm.offer.insurance_start)+\" \"),_c('br'),_vm._v(\"\\noffer.holder_zip -> \"+_vm._s(_vm.offer.holder_zip)+\" \"),_c('br'),_vm._v(\"\\noffer.holder_id -> \"+_vm._s(_vm.offer.holder_id)+\" \"),_c('br')])])],1),_c('div',{staticClass:\"list-group-item\"},[_c('data-row',{attrs:{\"title\":\"Fahrzeugdaten\",\"icon\":\"fas fa-car\",\"editable\":\"true\"}},[_c('small',[_vm._v(\"\\noffer.car_brand -> \"+_vm._s(_vm.offer.car_brand)+\" \"),_c('br'),_vm._v(\"\\noffer.car_ccm -> \"+_vm._s(_vm.offer.car_ccm)+\" \"),_c('br'),_vm._v(\"\\noffer.car_haftpflicht -> \"+_vm._s(_vm.offer.car_haftpflicht)+\" \"),_c('br'),_vm._v(\"\\noffer.car_kw -> \"+_vm._s(_vm.offer.car_kw)+\" \"),_c('br'),_vm._v(\"\\noffer.car_model -> \"+_vm._s(_vm.offer.car_model)+\" \"),_c('br'),_vm._v(\"\\noffer.car_ps -> \"+_vm._s(_vm.offer.car_ps)+\" \"),_c('br'),_vm._v(\"\\noffer.car_teilkasko -> \"+_vm._s(_vm.offer.car_teilkasko)+\" \"),_c('br'),_vm._v(\"\\noffer.car_vollkasko -> \"+_vm._s(_vm.offer.car_vollkasko)+\" \"),_c('br'),_vm._v(\"\\noffer.car_hsn -> \"+_vm._s(_vm.offer.car_hsn)+\" \"),_c('br'),_vm._v(\"\\noffer.car_tsn -> \"+_vm._s(_vm.offer.car_tsn)+\" \"),_c('br'),_vm._v(\"\\noffer.car_first_registration -> \"+_vm._s(_vm.offer.car_first_registration)+\" \"),_c('br'),_vm._v(\"\\noffer.car_usage -> \"+_vm._s(_vm.offer.car_usage)+\" \"),_c('br'),_vm._v(\"\\noffer.car_mileage -> \"+_vm._s(_vm.offer.car_mileage)+\" \"),_c('br'),_vm._v(\"\\noffer.mileage -> \"+_vm._s(_vm.offer.mileage)+\" \"),_c('br')])])],1),_c('div',{staticClass:\"list-group-item\"},[_c('data-row',{attrs:{\"title\":\"Einstufungsgründe\",\"icon\":\"fas fa-user\",\"editable\":\"true\"}},[_c('small',[_vm._v(\"\\n PKW \"+_vm._s(_vm.offer.is_car)),_c('br'),_vm._v(\"\\n LKW \"+_vm._s(_vm.offer.is_van)),_c('br'),_vm._v(\"\\n Halter \"+_vm._s(_vm.offer.holder_id)),_c('br'),_vm._v(\"\\n List \"+_vm._s(_vm.offer.leveling_list)),_c('br'),_vm._v(\"\\n Value \"+_vm._s(_vm.offer.leveling_type_list)),_c('br'),_vm._v(\"\\n Einstufungsgrund \"+_vm._s(_vm.offer.leveling_type)+\"\\n \")])])],1),_c('div',{staticClass:\"list-group-item\"},[_c('data-row',{attrs:{\"title\":\"Versdata\",\"icon\":\"fas fa-user\",\"editable\":\"true\"}},[_c('small',[_vm._v(\"\\noffer.participation -> \"+_vm._s(_vm.offer.participation)+\" \"),_c('br'),_vm._v(\"\\noffer.paymentterm -> \"+_vm._s(_vm.offer.paymentterm)+\" \"),_c('br'),_vm._v(\"\\n\\noffer.holder_only_driver -> \"+_vm._s(_vm.offer.holder_only_driver)),_c('br'),_vm._v(\"\\n offer.holder_id -> \"+_vm._s(_vm.offer.holder_id)),_c('br'),_vm._v(\"\\n offer.second_vehicle_holder -> \"+_vm._s(_vm.offer.second_vehicle_holder)),_c('br'),_vm._v(\"\\n offer.sf_holder_sf -> \"+_vm._s(_vm.offer.sf_holder_sf)),_c('br')])])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./OfferInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OfferInfo.vue?vue&type=template&id=092d2620&\"\nimport script from \"./OfferInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./OfferInfo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 336);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 18:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 336:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(337);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n\n/***/ 337:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _resizeEvent = __webpack_require__(18);\n\nvar _scrollbarWidth = __webpack_require__(38);\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _util = __webpack_require__(2);\n\nvar _bar = __webpack_require__(338);\n\nvar _bar2 = _interopRequireDefault(_bar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n// reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js\n\nexports.default = {\n name: 'ElScrollbar',\n\n components: { Bar: _bar2.default },\n\n props: {\n native: Boolean,\n wrapStyle: {},\n wrapClass: {},\n viewClass: {},\n viewStyle: {},\n noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能\n tag: {\n type: String,\n default: 'div'\n }\n },\n\n data: function data() {\n return {\n sizeWidth: '0',\n sizeHeight: '0',\n moveX: 0,\n moveY: 0\n };\n },\n\n\n computed: {\n wrap: function wrap() {\n return this.$refs.wrap;\n }\n },\n\n render: function render(h) {\n var gutter = (0, _scrollbarWidth2.default)();\n var style = this.wrapStyle;\n\n if (gutter) {\n var gutterWith = '-' + gutter + 'px';\n var gutterStyle = 'margin-bottom: ' + gutterWith + '; margin-right: ' + gutterWith + ';';\n\n if (Array.isArray(this.wrapStyle)) {\n style = (0, _util.toObject)(this.wrapStyle);\n style.marginRight = style.marginBottom = gutterWith;\n } else if (typeof this.wrapStyle === 'string') {\n style += gutterStyle;\n } else {\n style = gutterStyle;\n }\n }\n var view = h(this.tag, {\n class: ['el-scrollbar__view', this.viewClass],\n style: this.viewStyle,\n ref: 'resize'\n }, this.$slots.default);\n var wrap = h(\n 'div',\n {\n ref: 'wrap',\n style: style,\n on: {\n 'scroll': this.handleScroll\n },\n\n 'class': [this.wrapClass, 'el-scrollbar__wrap', gutter ? '' : 'el-scrollbar__wrap--hidden-default'] },\n [[view]]\n );\n var nodes = void 0;\n\n if (!this.native) {\n nodes = [wrap, h(\n _bar2.default,\n {\n attrs: {\n move: this.moveX,\n size: this.sizeWidth }\n },\n []\n ), h(\n _bar2.default,\n {\n attrs: {\n vertical: true,\n move: this.moveY,\n size: this.sizeHeight }\n },\n []\n )];\n } else {\n nodes = [h(\n 'div',\n {\n ref: 'wrap',\n 'class': [this.wrapClass, 'el-scrollbar__wrap'],\n style: style },\n [[view]]\n )];\n }\n return h('div', { class: 'el-scrollbar' }, nodes);\n },\n\n\n methods: {\n handleScroll: function handleScroll() {\n var wrap = this.wrap;\n\n this.moveY = wrap.scrollTop * 100 / wrap.clientHeight;\n this.moveX = wrap.scrollLeft * 100 / wrap.clientWidth;\n },\n update: function update() {\n var heightPercentage = void 0,\n widthPercentage = void 0;\n var wrap = this.wrap;\n if (!wrap) return;\n\n heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;\n widthPercentage = wrap.clientWidth * 100 / wrap.scrollWidth;\n\n this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : '';\n this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : '';\n }\n },\n\n mounted: function mounted() {\n if (this.native) return;\n this.$nextTick(this.update);\n !this.noresize && (0, _resizeEvent.addResizeListener)(this.$refs.resize, this.update);\n },\n beforeDestroy: function beforeDestroy() {\n if (this.native) return;\n !this.noresize && (0, _resizeEvent.removeResizeListener)(this.$refs.resize, this.update);\n }\n};\n\n/***/ }),\n\n/***/ 338:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(3);\n\nvar _util = __webpack_require__(339);\n\n/* istanbul ignore next */\nexports.default = {\n name: 'Bar',\n\n props: {\n vertical: Boolean,\n size: String,\n move: Number\n },\n\n computed: {\n bar: function bar() {\n return _util.BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];\n },\n wrap: function wrap() {\n return this.$parent.wrap;\n }\n },\n\n render: function render(h) {\n var size = this.size,\n move = this.move,\n bar = this.bar;\n\n\n return h(\n 'div',\n {\n 'class': ['el-scrollbar__bar', 'is-' + bar.key],\n on: {\n 'mousedown': this.clickTrackHandler\n }\n },\n [h(\n 'div',\n {\n ref: 'thumb',\n 'class': 'el-scrollbar__thumb',\n on: {\n 'mousedown': this.clickThumbHandler\n },\n\n style: (0, _util.renderThumbStyle)({ size: size, move: move, bar: bar }) },\n []\n )]\n );\n },\n\n\n methods: {\n clickThumbHandler: function clickThumbHandler(e) {\n this.startDrag(e);\n this[this.bar.axis] = e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]);\n },\n clickTrackHandler: function clickTrackHandler(e) {\n var offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);\n var thumbHalf = this.$refs.thumb[this.bar.offset] / 2;\n var thumbPositionPercentage = (offset - thumbHalf) * 100 / this.$el[this.bar.offset];\n\n this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n },\n startDrag: function startDrag(e) {\n e.stopImmediatePropagation();\n this.cursorDown = true;\n\n (0, _dom.on)(document, 'mousemove', this.mouseMoveDocumentHandler);\n (0, _dom.on)(document, 'mouseup', this.mouseUpDocumentHandler);\n document.onselectstart = function () {\n return false;\n };\n },\n mouseMoveDocumentHandler: function mouseMoveDocumentHandler(e) {\n if (this.cursorDown === false) return;\n var prevPage = this[this.bar.axis];\n\n if (!prevPage) return;\n\n var offset = (this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1;\n var thumbClickPosition = this.$refs.thumb[this.bar.offset] - prevPage;\n var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / this.$el[this.bar.offset];\n\n this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n },\n mouseUpDocumentHandler: function mouseUpDocumentHandler(e) {\n this.cursorDown = false;\n this[this.bar.axis] = 0;\n (0, _dom.off)(document, 'mousemove', this.mouseMoveDocumentHandler);\n document.onselectstart = null;\n }\n },\n\n destroyed: function destroyed() {\n (0, _dom.off)(document, 'mouseup', this.mouseUpDocumentHandler);\n }\n};\n\n/***/ }),\n\n/***/ 339:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.renderThumbStyle = renderThumbStyle;\nvar BAR_MAP = exports.BAR_MAP = {\n vertical: {\n offset: 'offsetHeight',\n scroll: 'scrollTop',\n scrollSize: 'scrollHeight',\n size: 'height',\n key: 'vertical',\n axis: 'Y',\n client: 'clientY',\n direction: 'top'\n },\n horizontal: {\n offset: 'offsetWidth',\n scroll: 'scrollLeft',\n scrollSize: 'scrollWidth',\n size: 'width',\n key: 'horizontal',\n axis: 'X',\n client: 'clientX',\n direction: 'left'\n }\n};\n\nfunction renderThumbStyle(_ref) {\n var move = _ref.move,\n size = _ref.size,\n bar = _ref.bar;\n\n var style = {};\n var translate = 'translate' + bar.axis + '(' + move + '%)';\n\n style[bar.size] = size;\n style.transform = translate;\n style.msTransform = translate;\n style.webkitTransform = translate;\n\n return style;\n};\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scrollbar-width\");\n\n/***/ })\n\n/******/ });","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 80);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 80:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdownItem = __webpack_require__(81);\n\nvar _dropdownItem2 = _interopRequireDefault(_dropdownItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdownItem2.default.install = function (Vue) {\n Vue.component(_dropdownItem2.default.name, _dropdownItem2.default);\n};\n\nexports.default = _dropdownItem2.default;\n\n/***/ }),\n\n/***/ 81:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__ = __webpack_require__(82);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__ = __webpack_require__(83);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 82:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElDropdownItem',\n\n mixins: [_emitter2.default],\n\n props: {\n command: {},\n disabled: Boolean,\n divided: Boolean\n },\n\n methods: {\n handleClick: function handleClick(e) {\n this.dispatch('ElDropdown', 'menu-item-click', [this.command, this]);\n }\n }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 83:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"el-dropdown-menu__item\",class:{\n 'is-disabled': _vm.disabled,\n 'el-dropdown-menu__item--divided': _vm.divided\n },attrs:{\"aria-disabled\":_vm.disabled,\"tabindex\":_vm.disabled ? null : -1},on:{\"click\":_vm.handleClick}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('b-row',{attrs:{\"slot\":\"header\",\"align-v\":\"center\"},slot:\"header\"},[_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('h4',{staticClass:\"mb-0\"},[_c('i',{class:_vm.icon}),_vm._v(\" \"+_vm._s(_vm.title))])]),(_vm.editable)?_c('b-col',{staticClass:\"text-right\",attrs:{\"cols\":\"4\"}},[_c('a',{staticClass:\"btn-inner--icon\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-pencil-alt\",attrs:{\"float\":\"right\"}})])]):_vm._e()],1),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DataRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./DataRow.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DataRow.vue?vue&type=template&id=28ce8b5a&\"\nimport script from \"./DataRow.vue?vue&type=script&lang=js&\"\nexport * from \"./DataRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AVSOffer.vue?vue&type=style&index=0&id=283f817b&prod&lang=css&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Invoices.vue?vue&type=style&index=0&id=269514ee&prod&lang=css&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Documents.vue?vue&type=style&index=0&id=7625d4f6&prod&lang=css&\"","'use strict';\n\nexports.__esModule = true;\nexports.default = scrollIntoView;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scrollIntoView(container, selected) {\n if (_vue2.default.prototype.$isServer) return;\n\n if (!selected) {\n container.scrollTop = 0;\n return;\n }\n\n var offsetParents = [];\n var pointer = selected.offsetParent;\n while (pointer && container !== pointer && container.contains(pointer)) {\n offsetParents.push(pointer);\n pointer = pointer.offsetParent;\n }\n var top = selected.offsetTop + offsetParents.reduce(function (prev, curr) {\n return prev + curr.offsetTop;\n }, 0);\n var bottom = top + selected.offsetHeight;\n var viewRectTop = container.scrollTop;\n var viewRectBottom = viewRectTop + container.clientHeight;\n\n if (top < viewRectTop) {\n container.scrollTop = top;\n } else if (bottom > viewRectBottom) {\n container.scrollTop = bottom - container.clientHeight;\n }\n}","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Default exports for Node. Export the extended versions of VTTCue and\n// VTTRegion in Node since we likely want the capability to convert back and\n// forth between JSON. If we don't then it's not that big of a deal since we're\n// off browser.\n\nvar window = require('global/window');\n\nvar vttjs = module.exports = {\n WebVTT: require(\"./vtt.js\"),\n VTTCue: require(\"./vttcue.js\"),\n VTTRegion: require(\"./vttregion.js\")\n};\n\nwindow.vttjs = vttjs;\nwindow.WebVTT = vttjs.WebVTT;\n\nvar cueShim = vttjs.VTTCue;\nvar regionShim = vttjs.VTTRegion;\nvar nativeVTTCue = window.VTTCue;\nvar nativeVTTRegion = window.VTTRegion;\n\nvttjs.shim = function() {\n window.VTTCue = cueShim;\n window.VTTRegion = regionShim;\n};\n\nvttjs.restore = function() {\n window.VTTCue = nativeVTTCue;\n window.VTTRegion = nativeVTTRegion;\n};\n\nif (!window.VTTCue) {\n vttjs.shim();\n}\n","import _Array$isArray from \"@babel/runtime-corejs2/core-js/array/is-array\";\nexport default function _arrayWithHoles(arr) {\n if (_Array$isArray(arr)) return arr;\n}","import _Symbol from \"@babel/runtime-corejs2/core-js/symbol\";\nimport _Symbol$iterator from \"@babel/runtime-corejs2/core-js/symbol/iterator\";\nexport default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof _Symbol && arr[_Symbol$iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import moment from 'moment';\nimport dateUtil from \"./date\";\n\nArray.prototype.remove_by_value = function(val) {\n for (var i = 0; i < this.length; i++) {\n if (this[i] === val) {\n this.splice(i, 1);\n i--;\n }\n }\n return this;\n }\n\n Array.prototype.add_by_value = function(val) {\n var found = false;\n if(!this.includes(val)){\n this.push(val);\n }\n return this;\n }\n\nconst offerUtil = {\n\n leveling_filter: (offer) => {\n var allow, lev_filter, pos, allowlist, new_list, a_keys\n allow = { \n 0: [\"Z\",\"D\", \"H\", \"B\"], \n 1: [\"F\", \"E\", \"L\", \"N\", \"C\", \"I\", \"O\"], \n 2: [\"V1\", \"V2\"], \n 4: [\"G1\", \"G2\"], \n };\n\n pos = Object.keys(allow);\n lev_filter = offer.leveling_list.filter(function(itm){\n return pos.indexOf(itm) > -1;\n });\n /*\n //console.log(\"LVLFILTER\");\n //console.log(lev_filter);\n //console.log(\"LVLFILTER\");\n */\n\n allowlist = [];\n for (const [key, value] of Object.entries(allow)) {\n if(lev_filter.includes(key)){\n for (const [myv] of Object.values(value)) {\n allowlist.push(myv);\n }\n }\n }\n\n \n // //console.log(\"allowlist\");\n // //console.log(allowlist);\n // //console.log(\"allowlist\");\n \n\n a_keys = Object.values(allowlist);\n new_list = offer.leveling_type_list.filter(function(itm){\n return a_keys.indexOf(itm) > -1;\n });\n\n // //console.log(new_list);\n offer.leveling_type_list = new_list;\n // //console.log(offer.leveling_type_list);\n },\n\n apply_rules: (offer) => {\n\n offerUtil.leveling_filter(offer);\n var holders_list, leveling_list, leveling_type_list, set_sf;\n switch (offer.is_company) {\n case true:\n // //console.log('customer is company');\n holders_list = [\"N\", \"C\", \"L\", \"G\", \"I\", \"W\", \"S\"];\n// leveling_list = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n offer.leveling_type_list = [\"\", \"Z\", \"E\", \"L\", \"N\", \"D\", \"O\", \"H\", \"B\", \"C\", \"I\", \"F\", \"V1\", \"V2\"];\n if (offerUtil.holder_registration_prior_insurance_start(offer)) {\n offer.leveling_type_list.remove_by_value(\"V2\");\n // //console.log('holder_registration_prior_insurance_start');\n }\n break;\n case false:\n // //console.log('customer is private');\n holders_list = [\"N\", \"P\", \"K\", \"L\", \"S\", \"C\", \"G\"];\n// leveling_list = [\"0\", \"1\", \"2\", \"3\", \"4\"];\n offer.leveling_type_list = [\"\", \"Z\", \"E\", \"L\", \"N\", \"D\", \"O\", \"H\", \"B\", \"C\", \"I\", \"F\", \"V1\", \"V2\", \"G1\", \"G2\"];\n if (offerUtil.holder_registration_prior_insurance_start(offer)) {\n offer.leveling_type_list.remove_by_value(\"V2\");\n // //console.log('holder_registration_prior_insurance_start');\n }\n switch (offerUtil.has_divergent_holder(offer)) {\n case true:\n offer.leveling_type_list.remove_by_value(\"B\");\n // //console.log('has divergent holder');\n if (offerUtil.holder_household_member(offer)) {\n // //console.log('holder_household_member');\n if (offerUtil.all_ages_over_23(offer)) {\n // //console.log('all_ages_over_23');\n offer.leveling_type_list.add_by_value(\"D\");\n }\n }\n break;\n case false:\n //console.log('no divergent holder');\n offer.leveling_type_list.remove_by_value(\"B\");\n if (offerUtil.holder_is_only_driver(offer)) {\n //console.log('holder_is_only_driver');\n if (offerUtil.age_over_23(offer)) {\n offer.leveling_type_list.add_by_value(\"B\");\n //console.log('TRUE: all_ages_over_23');\n }\n }\n if (!offerUtil.all_ages_over_23(offer)) {\n offer.leveling_type_list.remove_by_value(\"H\");\n //console.log('FALSE: all_ages_over_23');\n }\n }\n switch (offerUtil.has_divergent_holder(offer)) {\n case true:\n if (!offerUtil.age_over_23(offer)) {\n offer.leveling_type_list.remove_by_value(\"C\");\n offer.leveling_type_list.remove_by_value(\"I\");\n if (offerUtil.holder_household_member(offer)) {\n if (offerUtil.youngest_driver_over_23(offer)) {\n offer.leveling_type_list.remove_by_value(\"O\");\n }\n }\n }\n break;\n case false:\n if (!offerUtil.all_ages_over_23(offer)) {\n offer.leveling_type_list.remove_by_value(\"C\");\n offer.leveling_type_list.remove_by_value(\"I\");\n }\n }\n }\n\n if (!offerUtil.all_ages_over_23(offer)) {\n // //console.log(\"all_ages_over_23 -> false\");\n offer.leveling_type_list.remove_by_value(\"D\");\n offer.leveling_type_list.remove_by_value(\"H\");\n offer.leveling_type_list.remove_by_value(\"B\");\n }\n else{\n // //console.log(\"all_ages_over_23 -> true\");\n offer.leveling_type_list.add_by_value(\"D\");\n offer.leveling_type_list.add_by_value(\"H\");\n offer.leveling_type_list.add_by_value(\"B\");\n }\n //console.log('removing stuff from select if items no available anymore');\n\n /*\n if (!leveling_type_list.includes($(\".einstufung_2\").find(\":selected\").val())) {\n $(\".einstufung_2 option\").prop(\"selected\", false);\n $('.einstufung_2').prop('selectedIndex', 0);\n }\n */\n holders_list = [offer.holder_id];\n\n /*\n set_selection(leveling_type_list, 'offer_kravag_einstufung_type');\n set_selection(leveling_list, 'offer_kravag_einstufung_parent');\n set_selection(holders_list, 'offer_holder_id');\n */\n\n //console.log(\"LASTLIST 1\");\n //console.log(offer.leveling_type_list);\n\n // return true;\n\n\n\n switch (offer.is_company) {\n // company customer\n case true:\n switch (offer.is_car) {\n case true:\n offerUtil.filter_car_company_rules(offer);\n break;\n case false:\n offerUtil.filter_van_company_rules(offer);\n break;\n }\n break;\n // private customer\n case false:\n switch (offer.is_car) {\n case true:\n offerUtil.filter_car_private_rules(offer);\n break;\n case false:\n offerUtil.filter_van_private_rules(offer);\n break;\n }\n break;\n }\n\n // abfrage versciherwechsel\n /*\n else{\n /**\n * \n * \n 0 => {\n \"B\" => \"Angleichungsregelung (Min. SF 9 in KH und VK)\"\n },\n\n 1 => {\n \"F\" => \"Führerscheinregel (SF 1/2)\",\n \"E\" => \"Ehegattenregel (SF 1)\",\n \"L\" => \"Eltern-/Kindregel (SF 1)\",\n \"N\" => \"ohne Vorvertrag\", \n \"C\" => \"Kundenkindregel SF 5\",\n \"I\" => \"Partnerregel max. SF 8 (Min. SF 4)\",\n \"O\" => \"Partnerregel (SF 3)\"\n },\n * \n * \n * \n */\n //console.log(\"LASTLIST 4\");\n //console.log(offer.leveling_type_list);\n// if\n // offer.leveling_type_list.remove_by_value(\"B\");\n // offer.leveling_type_list.add_by_value(\"B\");\n \n \n // //console.log(holders_list);\n ////console.log(leveling_list);\n //console.log(offer.leveling_type_list);\n ////console.log('seeting lists');\n\n //console.log(\"LEVELING!!!!!!\");\n ////console.log(offer.leveling_type_list[0]);\n //offer.leveling_type = offer.leveling_type_list[0];\n ////console.log('leveling TYPE SELs');\n //console.log(offer.leveling_type);\n //offer.leveling_list = leveling_list;\n //offer.leveling_type_list = leveling_type_list;\n return //console.log('end of cheks');\n },\n\n filter_car_private_rules(offer){\n console.log(\"filter_car_private_rules\");\n console.log(\"customer_has_free_sfr: \"+offer.customer_has_free_sfr);\n console.log(\"has_second_vehicle: \"+offer.has_second_vehicle);\n if (offer.customer_has_free_sfr != 1 || offer.customer_has_free_sfr != true) {\n \n if (offer.has_second_vehicle != 1 || offer.has_second_vehicle != true) {\n if (offerUtil.license_age(offer) > 1) {\n offer.leveling_type_list = [\"F\"];\n offerUtil.set_sf_class(offer, 0.5);\n offer.leveling_type = \"F\";\n }\n else {\n offer.leveling_type_list = [\"N\"];\n offerUtil.set_sf_class(offer, 0);\n offer.leveling_type = \"N\";\n }\n }\n else {\n console.log(\"sf_holder_sf: \"+offer.sf_holder_sf);\n console.log(\"all_ages_over_23: \"+offerUtil.all_ages_over_23(offer));\n console.log(\"sf_holder_insurance_is_internal: \"+offerUtil.sf_holder_insurance_is_internal(offer));\n console.log(\"insurance_id: \"+offer.insurance_id);\n\n if (offer.sf_holder_sf >= 1 && offer.sf_holder_sf <= 55) {\n offer.leveling_type_list = [\"Z\"];\n offer.leveling_type = \"Z\";\n offerUtil.set_sf_class(offer, 1);\n }\n \n if (offer.sf_holder_sf >= 3 && offerUtil.all_ages_over_23(offer)) {\n offer.leveling_type_list = [\"D\"];\n offer.leveling_type = \"D\";\n offerUtil.set_sf_class(offer, 3);\n }\n /*\n if (offer.sf_holder_sf >= 4 && offerUtil.all_ages_over_23(offer) && offerUtil.sf_holder_insurance_is_internal(offer)) {\n var set_sf = 0;\n offer.leveling_type_list = [\"H\"];\n offer.leveling_type = \"H\";\n if (offer.sf_holder_sf <= 8) {\n set_sf = offer.sf_holder_sf;\n }\n else {\n set_sf = 8\n }\n offerUtil.set_sf_class(offer, set_sf);\n }\n */\n }\n }\n else {\n offer.leveling_type_list = [\"V2\"];\n offer.leveling_type = \"V2\";\n }\n },\n // wenn zulassungsdatum auf den halter unterscheidlich zu versicherungsbeginn dann V1 -> versichererwechsel ansonsten V2\n filter_car_company_rules(offer){\n if (offer.customer_has_free_sfr != 1 || offer.customer_has_free_sfr != true) {\n if (offer.has_second_vehicle != 1 || offer.has_second_vehicle != true) {\n offer.leveling_type_list = [\"N\"];\n offerUtil.set_sf_class(offer, 0);\n offer.leveling_type = \"N\";\n }\n else {\n if (offer.sf_holder_sf >= 1 && offer.sf_holder_sf <= 55) {\n offer.leveling_type_list = [\"Z\"];\n offer.leveling_type = \"Z\";\n offerUtil.set_sf_class(offer, 1);\n }\n \n if (offer.sf_holder_sf >= 3 && offerUtil.all_ages_over_23(offer)) {\n offer.leveling_type_list = [\"D\"];\n offer.leveling_type = \"D\";\n offerUtil.set_sf_class(offer, 3);\n }\n }\n }\n else {\n offer.leveling_type_list = [\"V2\"];\n offer.leveling_type = \"V2\";\n }\n },\n filter_van_private_rules(offer){\n if (offer.customer_has_free_sfr != 1 || offer.customer_has_free_sfr != true) {\n if (offer.has_second_vehicle != 1 || offer.has_second_vehicle != true) {\n if (offerUtil.license_age(offer) > 1) {\n offer.leveling_type_list = [\"F\"];\n offerUtil.set_sf_class(offer, 0.5);\n offer.leveling_type = \"F\";\n }\n else {\n offer.leveling_type_list = [\"N\"];\n offerUtil.set_sf_class(offer, 0);\n offer.leveling_type = \"N\";\n }\n }\n else {\n if (offer.sf_holder_sf >= 1 && offer.sf_holder_sf <= 55) {\n offer.leveling_type_list = [\"Z\"];\n offer.leveling_type = \"Z\";\n offerUtil.set_sf_class(offer, 1);\n }\n \n if (offer.sf_holder_sf >= 3 && offerUtil.all_ages_over_23(offer)) {\n offer.leveling_type_list = [\"D\"];\n offer.leveling_type = \"D\";\n offerUtil.set_sf_class(offer, 2);\n }\n }\n }\n else {\n offer.leveling_type_list = [\"V2\"];\n offer.leveling_type = \"V2\";\n }\n },\n filter_van_company_rules(offer){\n if (offer.customer_has_free_sfr != 1 || offer.customer_has_free_sfr != true) {\n if (offer.has_second_vehicle != 1 || offer.has_second_vehicle != true) {\n offer.leveling_type_list = [\"N\"];\n offerUtil.set_sf_class(offer, 0);\n offer.leveling_type = \"N\";\n }\n else {\n if (offer.sf_holder_sf >= 1 && offer.sf_holder_sf <= 55) {\n offer.leveling_type_list = [\"Z\"];\n offer.leveling_type = \"Z\";\n offerUtil.set_sf_class(offer, 1);\n }\n \n if (offer.sf_holder_sf >= 3 && offerUtil.all_ages_over_23(offer)) {\n offer.leveling_type_list = [\"D\"];\n offer.leveling_type = \"D\";\n offerUtil.set_sf_class(offer, 2);\n }\n }\n }\n else {\n offer.leveling_type_list = [\"V2\"];\n offer.leveling_type = \"V2\";\n }\n },\n\n // wenn versicherer oder tarifwechsel dann immer V1\n\n\n sf_holder_insurance_is_internal(offer){\n // if kravag, condor, ruv aber NICHT ruv24\n //if(offer.sf_holder_insurance == \"Condor Allgemeine Versicherungs-AG\"){\n if(offer.insurance_id == 483){\n return true;\n }\n //if(offer.sf_holder_insurance == \"KRAVAG KFZ-Versicherung\"){\n if(offer.insurance_id == 216){\n return true;\n }\n //if(offer.sf_holder_insurance == \"KRAVAG-LOGISTIC KFZ-Versicherung\"){\n if(offer.insurance_id == 267){\n return true;\n }\n return false;\n },\n\n set_sf_if_age(offer) {\n // this.offer.needs_sf_classes = true;\n if (l_age > 0) {\n // //console.log(\"setting sf to 0.5\");\n offer.customer_sf = \"SF 1/2\";\n offer.customer_sf2 = \"SF 1/2\";\n } else {\n // //console.log(\"setting sf to 0\");\n offer.customer_sf = 0;\n offer.customer_sf2 = 0;\n }\n // this.offer.needs_sf_classes = true;\n // this.offer.sf_classes_enabled = false;\n },\n\n license_age: (offer) => {\n if (offer.license_date) {\n let currentDate = new Date();\n let birthDate = new Date(offer.license_date);\n let difference = currentDate - birthDate;\n let age = Math.floor(difference / 31557600000);\n //console.log(age);\n return age;\n }\n return \"\";\n },\n \n formatDate: (date) => {\n return moment(date).format(\"DD.MM.YYYY\")\n },\n\n holder_registration_prior_insurance_start: (offer) => {\n var hfr, isa;\n isa = new Date(offer.insurance_start);\n hfr = new Date(offer.holder_first_registration);\n if (hfr < isa) {\n return true;\n } else {\n return false;\n }\n },\n \n all_ages_over_23: (offer) => {\n if (offer.holder_only_driver == 1){\n if (dateUtil.age(offer.dob) < 23) {\n return false;\n }\n else{\n return true;\n }\n }\n else{\n if (dateUtil.age(offer.youngest_driver_dob) < 23) {\n return false;\n }\n if (dateUtil.age(offer.oldest_driver_dob) < 23) {\n return false;\n }\n }\n return true;\n },\n \n youngest_driver_over_23: (offer) => {\n if (dateUtil.age(offer.youngest_driver_dob) < 23) {\n return false;\n }\n return true;\n },\n \n age_over_23: (offer) => {\n if (dateUtil.age(offer.dob) > 23) {\n return true;\n } else {\n return false;\n }\n },\n \n has_divergent_holder: (offer) => {\n if (offer.holder_id !== \"N\") {\n return true;\n } else {\n return false;\n }\n },\n \n holder_household_member: (offer) => {\n if (offer.holder_id === \"P\") {\n return true;\n }\n if (offer.holder_id === \"K\") {\n return true;\n }\n return false;\n },\n \n holder_is_only_driver: (offer) => {\n return offer.holder_only_driver;\n if (!offerUtil.holder_is_joungest_driver(offer)) {\n return false;\n }\n if (offer.dob !== offer.oldest_driver_dob) {\n return false;\n }\n if (offer.dob !== offer.youngest_driver_dob) {\n return false;\n }\n return true;\n },\n \n holder_is_joungest_driver: (offer) => {\n return offer.dob === offer.youngest_driver_dob;\n },\n \n is_company: (offer) => {\n return offer.is_company;\n },\n\n set_sf_class: (offer, sf_class) => {\n offer.customer_sf = sf_class;\n offer.customer_sf2 = sf_class;\n return true;\n },\n\n set_sf_class_range: (offer, sf_start, sf_end) => {\n\n // //console.log(offer.sf_classes);\n\n offer.sf_classes.each(function() {\n var val;\n val = $(this).value;\n if (val > sf_end || val < sf_start) {\n this.disabled = true;\n return true;\n } else {\n this.disabled = false;\n return false;\n }\n })\n /*\n $('#offer_customer_sf option').each(function() {\n var val;\n val = $(this).val();\n if (val > sf_end || val < sf_start) {\n $('#offer_customer_sf option[value=\"' + val + '\"]').prop('hidden', true);\n return $('#offer_customer_sf2 option[value=\"' + val + '\"]').prop('hidden', true);\n } else {\n $('#offer_customer_sf option[value=\"' + val + '\"]').removeProp('hidden');\n return $('#offer_customer_sf2 option[value=\"' + val + '\"]').removeProp('hidden');\n }\n });\n\n toggle_offer_option_discount_protection_kh(sf_end);\n return toggle_offer_option_discount_protection_fv(sf_end);\n */\n //return true;\n },\n\n\n\n // Validation \n /*\n customer vlidation\n ],\n sf_holder_sf: 0,\n sf_holder_insurance: '',\n\n // general data\n is_car: false,\n is_van: false,\n\n participations: [],\n paymentterms: [],\n\n participation: 0,\n paymentterm: 0,\n\n // customer data\n customer_first_name: '',\n customer_last_name: '',\n is_company: false,\n company_name: '',\n nosf: false,\n customer_sf: 0,\n customer_sf2: 0,\n dob: '',\n has_holder: false,\n holder_id: 'N',\n kravag_location_id: '',\n holder_kravag_location_id: '',\n\n\n // calc data\n holder_only_driver: true,\n youngest_driver_dob: '',\n oldest_driver_dob: '',\n license_date: '',\n insurance_start: '',\n sf_classes_enabled: false,\n customer_has_free_sfr: 0,\n has_second_vehicle: 0,\n\n */\n customer_valid: (offer) => {\n var vld = true;\n if(offer.cusomer_first_name == \"\"){\n vld = false;\n }\n if(offer.cusomer_last_name == \"\"){\n vld = false;\n }\n if(offer.dob == \"\"){\n vld = false;\n }\n if(offer.kravag_location_id == \"\"){\n vld = false;\n }\n if(offer.holder_id == \"\"){\n vld = false;\n }\n return vld;\n },\n\n car_valid: (offer) => {\n var vld = true;\n if(offer.hsn == \"\"){\n vld = false;\n }\n if(offer.tsn == \"\"){\n vld = false;\n }\n if(offer.mileage == \"\"){\n vld = false;\n }\n if(offer.new_car_above_max != false || offer.new_car_above_max != 0){\n vld = false;\n }\n if(offer.radio_usage == \"\"){\n vld = false;\n }\n if(offer.car_first_registration == \"\"){\n vld = false;\n }\n return vld;\n },\n\n}\n\nexport default offerUtil;\n\n","var MPEGURL_REGEX = /^(audio|video|application)\\/(x-|vnd\\.apple\\.)?mpegurl/i;\nvar DASH_REGEX = /^application\\/dash\\+xml/i;\n/**\n * Returns a string that describes the type of source based on a video source object's\n * media type.\n *\n * @see {@link https://dev.w3.org/html5/pf-summary/video.html#dom-source-type|Source Type}\n *\n * @param {string} type\n * Video source object media type\n * @return {('hls'|'dash'|'vhs-json'|null)}\n * VHS source type string\n */\n\nexport var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {\n if (MPEGURL_REGEX.test(type)) {\n return 'hls';\n }\n\n if (DASH_REGEX.test(type)) {\n return 'dash';\n } // Denotes the special case of a manifest object passed to http-streaming instead of a\n // source URL.\n //\n // See https://en.wikipedia.org/wiki/Media_type for details on specifying media types.\n //\n // In this case, vnd stands for vendor, video.js for the organization, VHS for this\n // project, and the +json suffix identifies the structure of the media type.\n\n\n if (type === 'application/vnd.videojs.vhs+json') {\n return 'vhs-json';\n }\n\n return null;\n};","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar _extends = require(\"@babel/runtime/helpers/extends\");\n\nvar isFunction = require('is-function');\n\ncreateXHR.httpHandler = require('./http-handler.js');\n/**\n * @license\n * slighly modified parse-headers 2.0.2 \n * Copyright (c) 2014 David Björklund\n * Available under the MIT license\n * \n */\n\nvar parseHeaders = function parseHeaders(headers) {\n var result = {};\n\n if (!headers) {\n return result;\n }\n\n headers.trim().split('\\n').forEach(function (row) {\n var index = row.indexOf(':');\n var key = row.slice(0, index).trim().toLowerCase();\n var value = row.slice(index + 1).trim();\n\n if (typeof result[key] === 'undefined') {\n result[key] = value;\n } else if (Array.isArray(result[key])) {\n result[key].push(value);\n } else {\n result[key] = [result[key], value];\n }\n });\n return result;\n};\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function (method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function (uri, options, callback) {\n options = initParams(uri, options, callback);\n options.method = method.toUpperCase();\n return _createXHR(options);\n };\n});\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i]);\n }\n}\n\nfunction isEmpty(obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) return false;\n }\n\n return true;\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri;\n\n if (isFunction(options)) {\n callback = options;\n\n if (typeof uri === \"string\") {\n params = {\n uri: uri\n };\n }\n } else {\n params = _extends({}, options, {\n uri: uri\n });\n }\n\n params.callback = callback;\n return params;\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback);\n return _createXHR(options);\n}\n\nfunction _createXHR(options) {\n if (typeof options.callback === \"undefined\") {\n throw new Error(\"callback argument missing\");\n }\n\n var called = false;\n\n var callback = function cbOnce(err, response, body) {\n if (!called) {\n called = true;\n options.callback(err, response, body);\n }\n };\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0);\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined;\n\n if (xhr.response) {\n body = xhr.response;\n } else {\n body = xhr.responseText || getXml(xhr);\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body);\n } catch (e) {}\n }\n\n return body;\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer);\n\n if (!(evt instanceof Error)) {\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n }\n\n evt.statusCode = 0;\n return callback(evt, failureResponse);\n } // will load the data & process the response in a special response object\n\n\n function loadFunc() {\n if (aborted) return;\n var status;\n clearTimeout(timeoutTimer);\n\n if (options.useXDR && xhr.status === undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200;\n } else {\n status = xhr.status === 1223 ? 204 : xhr.status;\n }\n\n var response = failureResponse;\n var err = null;\n\n if (status !== 0) {\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n };\n\n if (xhr.getAllResponseHeaders) {\n //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders());\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\");\n }\n\n return callback(err, response, response.body);\n }\n\n var xhr = options.xhr || null;\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest();\n } else {\n xhr = new createXHR.XMLHttpRequest();\n }\n }\n\n var key;\n var aborted;\n var uri = xhr.url = options.uri || options.url;\n var method = xhr.method = options.method || \"GET\";\n var body = options.body || options.data;\n var headers = xhr.headers = options.headers || {};\n var sync = !!options.sync;\n var isJson = false;\n var timeoutTimer;\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n };\n\n if (\"json\" in options && options.json !== false) {\n isJson = true;\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n body = JSON.stringify(options.json === true ? body : options.json);\n }\n }\n\n xhr.onreadystatechange = readystatechange;\n xhr.onload = loadFunc;\n xhr.onerror = errorFunc; // IE9 must have onprogress be set to a unique function.\n\n xhr.onprogress = function () {// IE must die\n };\n\n xhr.onabort = function () {\n aborted = true;\n };\n\n xhr.ontimeout = errorFunc;\n xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n if (!sync) {\n xhr.withCredentials = !!options.withCredentials;\n } // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n\n\n if (!sync && options.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n if (aborted) return;\n aborted = true; //IE9 may still call readystatechange\n\n xhr.abort(\"timeout\");\n var e = new Error(\"XMLHttpRequest timeout\");\n e.code = \"ETIMEDOUT\";\n errorFunc(e);\n }, options.timeout);\n }\n\n if (xhr.setRequestHeader) {\n for (key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\");\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType;\n }\n\n if (\"beforeSend\" in options && typeof options.beforeSend === \"function\") {\n options.beforeSend(xhr);\n } // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n\n\n xhr.send(body || null);\n return xhr;\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML;\n }\n\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML;\n }\n } catch (e) {}\n\n return null;\n}\n\nfunction noop() {}","/**\n * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n */\nvar\n ONE_SECOND_IN_TS = 90000, // 90kHz clock\n secondsToVideoTs,\n secondsToAudioTs,\n videoTsToSeconds,\n audioTsToSeconds,\n audioTsToVideoTs,\n videoTsToAudioTs,\n metadataTsToSeconds;\n\nsecondsToVideoTs = function(seconds) {\n return seconds * ONE_SECOND_IN_TS;\n};\n\nsecondsToAudioTs = function(seconds, sampleRate) {\n return seconds * sampleRate;\n};\n\nvideoTsToSeconds = function(timestamp) {\n return timestamp / ONE_SECOND_IN_TS;\n};\n\naudioTsToSeconds = function(timestamp, sampleRate) {\n return timestamp / sampleRate;\n};\n\naudioTsToVideoTs = function(timestamp, sampleRate) {\n return secondsToVideoTs(audioTsToSeconds(timestamp, sampleRate));\n};\n\nvideoTsToAudioTs = function(timestamp, sampleRate) {\n return secondsToAudioTs(videoTsToSeconds(timestamp), sampleRate);\n};\n\n/**\n * Adjust ID3 tag or caption timing information by the timeline pts values\n * (if keepOriginalTimestamps is false) and convert to seconds\n */\nmetadataTsToSeconds = function(timestamp, timelineStartPts, keepOriginalTimestamps) {\n return videoTsToSeconds(keepOriginalTimestamps ? timestamp : timestamp - timelineStartPts);\n};\n\nmodule.exports = {\n ONE_SECOND_IN_TS: ONE_SECOND_IN_TS,\n secondsToVideoTs: secondsToVideoTs,\n secondsToAudioTs: secondsToAudioTs,\n videoTsToSeconds: videoTsToSeconds,\n audioTsToSeconds: audioTsToSeconds,\n audioTsToVideoTs: audioTsToVideoTs,\n videoTsToAudioTs: videoTsToAudioTs,\n metadataTsToSeconds: metadataTsToSeconds\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Documents.vue?vue&type=style&index=1&id=7625d4f6&prod&scoped=true&lang=css&\"","'use strict';\n\nexports.__esModule = true;\nexports.removeResizeListener = exports.addResizeListener = undefined;\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isServer = typeof window === 'undefined';\n\n/* istanbul ignore next */\nvar resizeHandler = function resizeHandler(entries) {\n for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var entry = _ref;\n\n var listeners = entry.target.__resizeListeners__ || [];\n if (listeners.length) {\n listeners.forEach(function (fn) {\n fn();\n });\n }\n }\n};\n\n/* istanbul ignore next */\nvar addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) {\n if (isServer) return;\n if (!element.__resizeListeners__) {\n element.__resizeListeners__ = [];\n element.__ro__ = new _resizeObserverPolyfill2.default(resizeHandler);\n element.__ro__.observe(element);\n }\n element.__resizeListeners__.push(fn);\n};\n\n/* istanbul ignore next */\nvar removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) {\n if (!element || !element.__resizeListeners__) return;\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.__ro__.disconnect();\n }\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = require('element-ui/lib/utils/dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar nodeList = [];\nvar ctx = '@@clickoutsideContext';\n\nvar startClick = void 0;\nvar seed = 0;\n\n!_vue2.default.prototype.$isServer && (0, _dom.on)(document, 'mousedown', function (e) {\n return startClick = e;\n});\n\n!_vue2.default.prototype.$isServer && (0, _dom.on)(document, 'mouseup', function (e) {\n nodeList.forEach(function (node) {\n return node[ctx].documentHandler(e, startClick);\n });\n});\n\nfunction createDocumentHandler(el, binding, vnode) {\n return function () {\n var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!vnode || !vnode.context || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || el.contains(mousedown.target) || el === mouseup.target || vnode.context.popperElm && (vnode.context.popperElm.contains(mouseup.target) || vnode.context.popperElm.contains(mousedown.target))) return;\n\n if (binding.expression && el[ctx].methodName && vnode.context[el[ctx].methodName]) {\n vnode.context[el[ctx].methodName]();\n } else {\n el[ctx].bindingFn && el[ctx].bindingFn();\n }\n };\n}\n\n/**\n * v-clickoutside\n * @desc 点击元素外面才会触发的事件\n * @example\n * ```vue\n *
\n * ```\n */\nexports.default = {\n bind: function bind(el, binding, vnode) {\n nodeList.push(el);\n var id = seed++;\n el[ctx] = {\n id: id,\n documentHandler: createDocumentHandler(el, binding, vnode),\n methodName: binding.expression,\n bindingFn: binding.value\n };\n },\n update: function update(el, binding, vnode) {\n el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);\n el[ctx].methodName = binding.expression;\n el[ctx].bindingFn = binding.value;\n },\n unbind: function unbind(el) {\n var len = nodeList.length;\n\n for (var i = 0; i < len; i++) {\n if (nodeList[i][ctx].id === el[ctx].id) {\n nodeList.splice(i, 1);\n break;\n }\n }\n delete el[ctx];\n }\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content\"},[_c('base-header',{staticClass:\"pb-6 bg-gradient\",attrs:{\"type\":\"\"}},[_c('b-row',{staticClass:\"py-4\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"lg\":\"12\"}},[(_vm.mode =='Angebote')?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.retrieveOffers()}}},[_c('i',{staticClass:\"fa fa-file\"}),_vm._v(\"\\n Angebote\\n \")])]:_vm._e(),(_vm.mode !='Angebote')?[_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.retrieveOffers()}}},[_c('i',{staticClass:\"fa fa-file\"}),_vm._v(\"\\n Angebote\\n \")])]:_vm._e(),(_vm.mode =='Anträge')?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.retrieveContracts()}}},[_c('i',{staticClass:\"fa fa-file\"}),_vm._v(\"\\n Anträge\\n \")])]:_vm._e(),(_vm.mode !='Anträge')?[_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.retrieveContracts()}}},[_c('i',{staticClass:\"fa fa-file\"}),_vm._v(\"\\n Anträge\\n \")])]:_vm._e(),(_vm.mode =='Eingereichte Anträge')?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.retrieveSubmittedContracts()}}},[_c('i',{staticClass:\"fa fa-file\"}),_vm._v(\"\\n Eingereichte Anträge\\n \")])]:_vm._e(),(_vm.mode !='Eingereichte Anträge')?[_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.retrieveSubmittedContracts()}}},[_c('i',{staticClass:\"fa fa-file\"}),_vm._v(\"\\n Eingereichte Anträge\\n \")])]:_vm._e()],2)],1)],1),_c('b-container',{staticClass:\"mt--6\",attrs:{\"fluid\":\"\"}},[_c('div',[_c('card',{staticClass:\"no-border-card\",attrs:{\"body-classes\":\"px-0 pb-1\",\"footer-classes\":\"pb-2\"}},[_c('template',{slot:\"header\"},[_c('h3',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.mode))]),_c('p',{staticClass:\"text-sm mb-0\"})]),_c('div',[_c('b-col',{staticClass:\"d-flex justify-content-center justify-content-sm-between flex-wrap\",attrs:{\"cols\":\"12\"}},[_c('el-select',{staticClass:\"select-primary pagination-select\",attrs:{\"placeholder\":\"Anzahl pro Seite\"},on:{\"change\":_vm.handlePageSizeChange},model:{value:(_vm.pagination.perPage),callback:function ($$v) {_vm.$set(_vm.pagination, \"perPage\", $$v)},expression:\"pagination.perPage\"}},_vm._l((_vm.pagination.perPageOptions),function(item){return _c('el-option',{key:item,staticClass:\"select-primary\",attrs:{\"label\":item,\"value\":item}})}),1),_c('div',[_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-search\",\"placeholder\":\"Suchen...\"},on:{\"keyup\":_vm.searchOffers},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)],1),(_vm.loading)?_c('div',{staticClass:\"loader\"}):_vm._e(),(_vm.offers.length > 0)?_c('el-table',{staticClass:\"table-responsive align-items-center table-flush table-striped\",attrs:{\"header-row-class-name\":\"thead-light\",\"data\":_vm.offers}},[_c('el-table-column',{attrs:{\"label\":\"Nr.\",\"min-width\":\"120px\",\"prop\":\"id\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Name\",\"min-width\":\"120px\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ $index, row }){return _c('div',{staticClass:\"d-flex\"},[_vm._v(\"\\n \"+_vm._s(_vm.offers[$index].firstname)+\" \"+_vm._s(_vm.offers[$index].lastname)+\" \"+_vm._s(_vm.offers[$index].company_name)+\"\\n \")])}}],null,false,2246135753)}),_c('el-table-column',{attrs:{\"label\":\"Status\",\"min-width\":\"120px\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ $index, row }){return _c('div',{staticClass:\"d-flex\"},[_vm._v(\"\\n \"+_vm._s(_vm.written_state(_vm.offers[$index].kravag_state))+\"\\n \")])}}],null,false,3144997896)}),_c('el-table-column',{attrs:{\"label\":\"GEB.\",\"min-width\":\"100px\",\"prop\":\"dob\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Fahrz.\",\"min-width\":\"200px\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ $index, row }){return _c('div',{staticClass:\"d-flex\"},[_vm._v(\"\\n \"+_vm._s(_vm.offers[$index].maker)+\" \"+_vm._s(_vm.offers[$index].car_model_name)+\"\\n \")])}}],null,false,2677274874)}),_c('el-table-column',{attrs:{\"label\":\"KM\",\"prop\":\"mileage\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Erstellt\",\"min-width\":\"140px\",\"prop\":\"created_at\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('a',{staticClass:\"font-weight-bold\",attrs:{\"href\":\"#!\"}},[_vm._v(_vm._s(_vm.ddsiplay(row.created_at)))])]}}],null,false,3138987869)}),_c('el-table-column',{attrs:{\"min-width\":\"180px\",\"align\":\"right\",\"label\":\"Optionen\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ $index, row }){return _c('div',{staticClass:\"d-flex\"},[_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn btn-primary btn-sm\",attrs:{\"href\":'/#/offers/'+_vm.offers[$index].id,\"title\":\"Anzeigen\"},on:{\"click\":function($event){return _vm.showOffer(_vm.offers[$index].id)}}},[_c('i',{staticClass:\"fas fa-desktop\"})]),((_vm.mode == 'Angebote'))?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn btn-warning btn-sm\",attrs:{\"href\":'/#/offers/'+_vm.offers[$index].id+'/edit',\"title\":\"Bearbeiten\"},on:{\"click\":function($event){return _vm.editOffer(_vm.offers[$index].id)}}},[_c('i',{staticClass:\"fas fa-edit\"})]):_vm._e(),((_vm.mode == 'Eingereichte Anträge'))?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn btn-success btn-sm\",attrs:{\"href\":'#',\"title\":\"EvB\"},on:{\"click\":function($event){return _vm.retrieveEvb(_vm.offers[$index].id)}}},[_c('i',{staticClass:\"fas fa-id-card\"})]):_vm._e()])}}],null,false,3536328026)})],1):_vm._e()],1),_c('b-card-footer',{staticClass:\"py-4 d-flex justify-content-end\"},[(_vm.mode =='Angebote')?_c('base-pagination',{staticClass:\"pagination-no-border\",attrs:{\"current\":_vm.page_offer,\"per-page\":_vm.pageSize,\"total\":_vm.count},on:{\"change\":function($event){return _vm.handlePageChange($event)}}}):_vm._e(),(_vm.mode =='Anträge')?_c('base-pagination',{staticClass:\"pagination-no-border\",attrs:{\"current\":_vm.page_con,\"per-page\":_vm.pageSize,\"total\":_vm.count},on:{\"change\":function($event){return _vm.handlePageChange($event)}}}):_vm._e(),(_vm.mode =='Eingereichte Anträge')?_c('base-pagination',{staticClass:\"pagination-no-border\",attrs:{\"current\":_vm.page_submi,\"per-page\":_vm.pageSize,\"total\":_vm.count},on:{\"change\":function($event){return _vm.handlePageChange($event)}}}):_vm._e()],1)],2)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Offers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Offers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Offers.vue?vue&type=template&id=2772531d&\"\nimport script from \"./Offers.vue?vue&type=script&lang=js&\"\nexport * from \"./Offers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueSelect=t():e.VueSelect=t()}(\"undefined\"!=typeof self?self:this,(function(){return(()=>{var e={646:e=>{e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},860:e=>{e.exports=function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}},206:e=>{e.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}},319:(e,t,n)=>{var o=n(646),i=n(860),s=n(206);e.exports=function(e){return o(e)||i(e)||s()}},8:e=>{function t(n){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},t(n)}e.exports=t}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var o={};return(()=>{\"use strict\";n.r(o),n.d(o,{VueSelect:()=>m,default:()=>O,mixins:()=>_});var e=n(319),t=n.n(e),i=n(8),s=n.n(i),r=n(713),a=n.n(r);const l={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer:function(){this.autoscroll&&this.maybeAdjustScroll()},open:function(e){var t=this;this.autoscroll&&e&&this.$nextTick((function(){return t.maybeAdjustScroll()}))}},methods:{maybeAdjustScroll:function(){var e,t=(null===(e=this.$refs.dropdownMenu)||void 0===e?void 0:e.children[this.typeAheadPointer])||!1;if(t){var n=this.getDropdownViewport(),o=t.getBoundingClientRect(),i=o.top,s=o.bottom,r=o.height;if(in.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(n.height-r)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},c={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){for(var e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown:function(){for(var e=this.typeAheadPointer+1;e0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==e?!this.mutableLoading:e}}};function p(e,t,n,o,i,s,r,a){var l,c=\"function\"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),s&&(c._scopeId=\"data-v-\"+s),r?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=l):i&&(l=a?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:c}}const h={Deselect:p({},(function(){var e=this.$createElement,t=this._self._c||e;return t(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"10\",height:\"10\"}},[t(\"path\",{attrs:{d:\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])}),[],!1,null,null,null).exports,OpenIndicator:p({},(function(){var e=this.$createElement,t=this._self._c||e;return t(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"10\"}},[t(\"path\",{attrs:{d:\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])}),[],!1,null,null,null).exports},d={inserted:function(e,t,n){var o=n.context;if(o.appendToBody){var i=o.$refs.toggle.getBoundingClientRect(),s=i.height,r=i.top,a=i.left,l=i.width,c=window.scrollX||window.pageXOffset,u=window.scrollY||window.pageYOffset;e.unbindPosition=o.calculatePosition(e,o,{width:l+\"px\",left:c+a+\"px\",top:u+r+s+\"px\"}),document.body.appendChild(e)}},unbind:function(e,t,n){n.context.appendToBody&&(e.unbindPosition&&\"function\"==typeof e.unbindPosition&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};const f=function(e){var t={};return Object.keys(e).sort().forEach((function(n){t[n]=e[n]})),JSON.stringify(t)};var y=0;const g=function(){return++y};function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function v(e){for(var t=1;t-1}},filter:{type:Function,default:function(e,t){var n=this;return e.filter((function(e){var o=n.getOptionLabel(e);return\"number\"==typeof o&&(o=o.toString()),n.filterBy(e,o,t)}))}},createOption:{type:Function,default:function(e){return\"object\"===s()(this.optionList[0])?a()({},this.label,e):e}},resetOnOptionsChange:{default:!1,validator:function(e){return[\"function\",\"boolean\"].includes(s()(e))}},clearSearchOnBlur:{type:Function,default:function(e){var t=e.clearSearchOnSelect,n=e.multiple;return t&&!n}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:\"auto\"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:\"[type=search]\"},mapKeydown:{type:Function,default:function(e,t){return e}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(e,t,n){var o=n.width,i=n.top,s=n.left;e.style.top=i,e.style.left=s,e.style.width=o}},dropdownShouldOpen:{type:Function,default:function(e){var t=e.noDrop,n=e.open,o=e.mutableLoading;return!t&&(n&&!o)}},uid:{type:[String,Number],default:function(){return g()}}},data:function(){return{search:\"\",open:!1,isComposing:!1,pushedTags:[],_value:[]}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty(\"reduce\")},selectedValue:function(){var e=this.value;return this.isTrackingValues&&(e=this.$data._value),null!=e&&\"\"!==e?[].concat(e):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var e=this,t={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:v({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,\"aria-autocomplete\":\"list\",\"aria-labelledby\":\"vs\".concat(this.uid,\"__combobox\"),\"aria-controls\":\"vs\".concat(this.uid,\"__listbox\"),ref:\"search\",type:\"search\",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{\"aria-activedescendant\":\"vs\".concat(this.uid,\"__option-\").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return e.isComposing=!0},compositionend:function(){return e.isComposing=!1},keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(t){return e.search=t.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:\"openIndicator\",role:\"presentation\",class:\"vs__open-indicator\"}},listHeader:t,listFooter:t,header:v({},t,{deselect:this.deselect}),footer:v({},t,{deselect:this.deselect})}},childComponents:function(){return v({},h,{},this.components)},stateClasses:function(){return{\"vs--open\":this.dropdownOpen,\"vs--single\":!this.multiple,\"vs--multiple\":this.multiple,\"vs--searching\":this.searching&&!this.noDrop,\"vs--searchable\":this.searchable&&!this.noDrop,\"vs--unsearchable\":!this.searchable,\"vs--loading\":this.mutableLoading,\"vs--disabled\":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return this.dropdownShouldOpen(this)},searchPlaceholder:function(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions:function(){var e=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return e;var t=this.search.length?this.filter(e,this.search,this):e;if(this.taggable&&this.search.length){var n=this.createOption(this.search);this.optionExists(n)||t.unshift(n)}return t},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options:function(e,t){var n=this;!this.taggable&&(\"function\"==typeof n.resetOnOptionsChange?n.resetOnOptionsChange(e,t,n.selectedValue):n.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:{immediate:!0,handler:function(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple:function(){this.clearSelection()},open:function(e){this.$emit(e?\"open\":\"close\")},search:function(e){e.length&&(this.open=!0)}},created:function(){this.mutableLoading=this.loading,this.$on(\"option:created\",this.pushTag)},methods:{setInternalValueFromOptions:function(e){var t=this;Array.isArray(e)?this.$data._value=e.map((function(e){return t.findOptionFromReducedValue(e)})):this.$data._value=this.findOptionFromReducedValue(e)},select:function(e){this.$emit(\"option:selecting\",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&this.$emit(\"option:created\",e),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit(\"option:selected\",e)),this.onAfterSelect(e)},deselect:function(e){var t=this;this.$emit(\"option:deselecting\",e),this.updateValue(this.selectedValue.filter((function(n){return!t.optionComparator(n,e)}))),this.$emit(\"option:deselected\",e)},clearSelection:function(){this.updateValue(this.multiple?[]:null)},onAfterSelect:function(e){var t=this;this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=\"\"),this.noDrop&&this.multiple&&this.$nextTick((function(){return t.$refs.search.focus()}))},updateValue:function(e){var t=this;void 0===this.value&&(this.$data._value=e),null!==e&&(e=Array.isArray(e)?e.map((function(e){return t.reduce(e)})):this.reduce(e)),this.$emit(\"input\",e)},toggleDropdown:function(e){var n=e.target!==this.searchEl;n&&e.preventDefault();var o=[].concat(t()(this.$refs.deselectButtons||[]),t()([this.$refs.clearButton]||0));void 0===this.searchEl||o.filter(Boolean).some((function(t){return t.contains(e.target)||t===e.target}))?e.preventDefault():this.open&&n?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(e){var t=this;return this.selectedValue.some((function(n){return t.optionComparator(n,e)}))},isOptionDeselectable:function(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},optionComparator:function(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue:function(e){var n=this,o=[].concat(t()(this.options),t()(this.pushedTags)).filter((function(t){return JSON.stringify(n.reduce(t))===JSON.stringify(e)}));return 1===o.length?o[0]:o.find((function(e){return n.optionComparator(e,n.$data._value)}))||e},closeSearchOptions:function(){this.open=!1,this.$emit(\"search:blur\")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var e=null;this.multiple&&(e=t()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(e)}},optionExists:function(e){var t=this;return this.optionList.some((function(n){return t.optionComparator(n,e)}))},normalizeOptionForSlot:function(e){return\"object\"===s()(e)?e:a()({},this.label,e)},pushTag:function(e){this.pushedTags.push(e)},onEscape:function(){this.search.length?this.search=\"\":this.open=!1},onSearchBlur:function(){if(!this.mousedown||this.searching){var e=this.clearSearchOnSelect,t=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=\"\"),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit(\"search:focus\")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onSearchKeyDown:function(e){var t=this,n=function(e){return e.preventDefault(),!t.isComposing&&t.typeAheadSelect()},o={8:function(e){return t.maybeDeleteValue()},9:function(e){return t.onTab()},27:function(e){return t.onEscape()},38:function(e){if(e.preventDefault(),t.open)return t.typeAheadUp();t.open=!0},40:function(e){if(e.preventDefault(),t.open)return t.typeAheadDown();t.open=!0}};this.selectOnKeyCodes.forEach((function(e){return o[e]=n}));var i=this.mapKeydown(o,this);if(\"function\"==typeof i[e.keyCode])return i[e.keyCode](e)},onSearchKeyPress:function(e){this.open||32!==e.keyCode||(e.preventDefault(),this.open=!0)}}},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"v-select\",class:e.stateClasses,attrs:{dir:e.dir}},[e._t(\"header\",null,null,e.scope.header),e._v(\" \"),n(\"div\",{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",attrs:{id:\"vs\"+e.uid+\"__combobox\",role:\"combobox\",\"aria-expanded\":e.dropdownOpen.toString(),\"aria-owns\":\"vs\"+e.uid+\"__listbox\",\"aria-label\":\"Search for option\"},on:{mousedown:function(t){return e.toggleDropdown(t)}}},[n(\"div\",{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[e._l(e.selectedValue,(function(t){return e._t(\"selected-option-container\",[n(\"span\",{key:e.getOptionKey(t),staticClass:\"vs__selected\"},[e._t(\"selected-option\",[e._v(\"\\n \"+e._s(e.getOptionLabel(t))+\"\\n \")],null,e.normalizeOptionForSlot(t)),e._v(\" \"),e.multiple?n(\"button\",{ref:\"deselectButtons\",refInFor:!0,staticClass:\"vs__deselect\",attrs:{disabled:e.disabled,type:\"button\",title:\"Deselect \"+e.getOptionLabel(t),\"aria-label\":\"Deselect \"+e.getOptionLabel(t)},on:{click:function(n){return e.deselect(t)}}},[n(e.childComponents.Deselect,{tag:\"component\"})],1):e._e()],2)],{option:e.normalizeOptionForSlot(t),deselect:e.deselect,multiple:e.multiple,disabled:e.disabled})})),e._v(\" \"),e._t(\"search\",[n(\"input\",e._g(e._b({staticClass:\"vs__search\"},\"input\",e.scope.search.attributes,!1),e.scope.search.events))],null,e.scope.search)],2),e._v(\" \"),n(\"div\",{ref:\"actions\",staticClass:\"vs__actions\"},[n(\"button\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.showClearButton,expression:\"showClearButton\"}],ref:\"clearButton\",staticClass:\"vs__clear\",attrs:{disabled:e.disabled,type:\"button\",title:\"Clear Selected\",\"aria-label\":\"Clear Selected\"},on:{click:e.clearSelection}},[n(e.childComponents.Deselect,{tag:\"component\"})],1),e._v(\" \"),e._t(\"open-indicator\",[e.noDrop?e._e():n(e.childComponents.OpenIndicator,e._b({tag:\"component\"},\"component\",e.scope.openIndicator.attributes,!1))],null,e.scope.openIndicator),e._v(\" \"),e._t(\"spinner\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.mutableLoading,expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[e._v(\"Loading...\")])],null,e.scope.spinner)],2)]),e._v(\" \"),n(\"transition\",{attrs:{name:e.transition}},[e.dropdownOpen?n(\"ul\",{directives:[{name:\"append-to-body\",rawName:\"v-append-to-body\"}],key:\"vs\"+e.uid+\"__listbox\",ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{id:\"vs\"+e.uid+\"__listbox\",role:\"listbox\",tabindex:\"-1\"},on:{mousedown:function(t){return t.preventDefault(),e.onMousedown(t)},mouseup:e.onMouseUp}},[e._t(\"list-header\",null,null,e.scope.listHeader),e._v(\" \"),e._l(e.filteredOptions,(function(t,o){return n(\"li\",{key:e.getOptionKey(t),staticClass:\"vs__dropdown-option\",class:{\"vs__dropdown-option--deselect\":e.isOptionDeselectable(t)&&o===e.typeAheadPointer,\"vs__dropdown-option--selected\":e.isOptionSelected(t),\"vs__dropdown-option--highlight\":o===e.typeAheadPointer,\"vs__dropdown-option--disabled\":!e.selectable(t)},attrs:{id:\"vs\"+e.uid+\"__option-\"+o,role:\"option\",\"aria-selected\":o===e.typeAheadPointer||null},on:{mouseover:function(n){e.selectable(t)&&(e.typeAheadPointer=o)},click:function(n){n.preventDefault(),n.stopPropagation(),e.selectable(t)&&e.select(t)}}},[e._t(\"option\",[e._v(\"\\n \"+e._s(e.getOptionLabel(t))+\"\\n \")],null,e.normalizeOptionForSlot(t))],2)})),e._v(\" \"),0===e.filteredOptions.length?n(\"li\",{staticClass:\"vs__no-options\"},[e._t(\"no-options\",[e._v(\"\\n Sorry, no matching options.\\n \")],null,e.scope.noOptions)],2):e._e(),e._v(\" \"),e._t(\"list-footer\",null,null,e.scope.listFooter)],2):n(\"ul\",{staticStyle:{display:\"none\",visibility:\"hidden\"},attrs:{id:\"vs\"+e.uid+\"__listbox\",role:\"listbox\"}})]),e._v(\" \"),e._t(\"footer\",null,null,e.scope.footer)],2)}),[],!1,null,null,null).exports,_={ajax:u,pointer:c,pointerScroll:l},O=m})(),o})()}));\n//# sourceMappingURL=vue-select.js.map","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 138);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/clickoutside\");\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/locale\");\n\n/***/ }),\n\n/***/ 138:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _select = __webpack_require__(139);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_select2.default.install = function (Vue) {\n Vue.component(_select2.default.name, _select2.default);\n};\n\nexports.default = _select2.default;\n\n/***/ }),\n\n/***/ 139:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__ = __webpack_require__(145);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"throttle-debounce/debounce\");\n\n/***/ }),\n\n/***/ 140:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nvar _locale = __webpack_require__(5);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _selectDropdown = __webpack_require__(141);\n\nvar _selectDropdown2 = _interopRequireDefault(_selectDropdown);\n\nvar _option = __webpack_require__(35);\n\nvar _option2 = _interopRequireDefault(_option);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _scrollbar = __webpack_require__(17);\n\nvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\nvar _debounce = __webpack_require__(14);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _clickoutside = __webpack_require__(10);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _resizeEvent = __webpack_require__(18);\n\nvar _locale3 = __webpack_require__(12);\n\nvar _scrollIntoView = __webpack_require__(26);\n\nvar _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);\n\nvar _util = __webpack_require__(2);\n\nvar _navigationMixin = __webpack_require__(144);\n\nvar _navigationMixin2 = _interopRequireDefault(_navigationMixin);\n\nvar _shared = __webpack_require__(23);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n mixins: [_emitter2.default, _locale2.default, (0, _focus2.default)('reference'), _navigationMixin2.default],\n\n name: 'ElSelect',\n\n componentName: 'ElSelect',\n\n inject: {\n elForm: {\n default: ''\n },\n\n elFormItem: {\n default: ''\n }\n },\n\n provide: function provide() {\n return {\n 'select': this\n };\n },\n\n\n computed: {\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n readonly: function readonly() {\n return !this.filterable || this.multiple || !(0, _util.isIE)() && !(0, _util.isEdge)() && !this.visible;\n },\n showClose: function showClose() {\n var hasValue = this.multiple ? Array.isArray(this.value) && this.value.length > 0 : this.value !== undefined && this.value !== null && this.value !== '';\n var criteria = this.clearable && !this.selectDisabled && this.inputHovering && hasValue;\n return criteria;\n },\n iconClass: function iconClass() {\n return this.remote && this.filterable ? '' : this.visible ? 'arrow-up is-reverse' : 'arrow-up';\n },\n debounce: function debounce() {\n return this.remote ? 300 : 0;\n },\n emptyText: function emptyText() {\n if (this.loading) {\n return this.loadingText || this.t('el.select.loading');\n } else {\n if (this.remote && this.query === '' && this.options.length === 0) return false;\n if (this.filterable && this.query && this.options.length > 0 && this.filteredOptionsCount === 0) {\n return this.noMatchText || this.t('el.select.noMatch');\n }\n if (this.options.length === 0) {\n return this.noDataText || this.t('el.select.noData');\n }\n }\n return null;\n },\n showNewOption: function showNewOption() {\n var _this = this;\n\n var hasExistingOption = this.options.filter(function (option) {\n return !option.created;\n }).some(function (option) {\n return option.currentLabel === _this.query;\n });\n return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;\n },\n selectSize: function selectSize() {\n return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n },\n selectDisabled: function selectDisabled() {\n return this.disabled || (this.elForm || {}).disabled;\n },\n collapseTagSize: function collapseTagSize() {\n return ['small', 'mini'].indexOf(this.selectSize) > -1 ? 'mini' : 'small';\n }\n },\n\n components: {\n ElInput: _input2.default,\n ElSelectMenu: _selectDropdown2.default,\n ElOption: _option2.default,\n ElTag: _tag2.default,\n ElScrollbar: _scrollbar2.default\n },\n\n directives: { Clickoutside: _clickoutside2.default },\n\n props: {\n name: String,\n id: String,\n value: {\n required: true\n },\n autocomplete: {\n type: String,\n default: 'off'\n },\n /** @Deprecated in next major version */\n autoComplete: {\n type: String,\n validator: function validator(val) {\n \"production\" !== 'production' && console.warn('[Element Warn][Select]\\'auto-complete\\' property will be deprecated in next major version. please use \\'autocomplete\\' instead.');\n return true;\n }\n },\n automaticDropdown: Boolean,\n size: String,\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: String,\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0\n },\n placeholder: {\n type: String,\n default: function _default() {\n return (0, _locale3.t)('el.select.placeholder');\n }\n },\n defaultFirstOption: Boolean,\n reserveKeyword: Boolean,\n valueKey: {\n type: String,\n default: 'value'\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: true\n }\n },\n\n data: function data() {\n return {\n options: [],\n cachedOptions: [],\n createdLabel: null,\n createdSelected: false,\n selected: this.multiple ? [] : {},\n inputLength: 20,\n inputWidth: 0,\n initialInputHeight: 0,\n cachedPlaceHolder: '',\n optionsCount: 0,\n filteredOptionsCount: 0,\n visible: false,\n softFocus: false,\n selectedLabel: '',\n hoverIndex: -1,\n query: '',\n previousQuery: null,\n inputHovering: false,\n currentPlaceholder: '',\n menuVisibleOnFocus: false,\n isOnComposition: false,\n isSilentBlur: false\n };\n },\n\n\n watch: {\n selectDisabled: function selectDisabled() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.resetInputHeight();\n });\n },\n placeholder: function placeholder(val) {\n this.cachedPlaceHolder = this.currentPlaceholder = val;\n },\n value: function value(val, oldVal) {\n if (this.multiple) {\n this.resetInputHeight();\n if (val.length > 0 || this.$refs.input && this.query !== '') {\n this.currentPlaceholder = '';\n } else {\n this.currentPlaceholder = this.cachedPlaceHolder;\n }\n if (this.filterable && !this.reserveKeyword) {\n this.query = '';\n this.handleQueryChange(this.query);\n }\n }\n this.setSelected();\n if (this.filterable && !this.multiple) {\n this.inputLength = 20;\n }\n if (!(0, _util.valueEquals)(val, oldVal)) {\n this.dispatch('ElFormItem', 'el.form.change', val);\n }\n },\n visible: function visible(val) {\n var _this3 = this;\n\n if (!val) {\n this.broadcast('ElSelectDropdown', 'destroyPopper');\n if (this.$refs.input) {\n this.$refs.input.blur();\n }\n this.query = '';\n this.previousQuery = null;\n this.selectedLabel = '';\n this.inputLength = 20;\n this.menuVisibleOnFocus = false;\n this.resetHoverIndex();\n this.$nextTick(function () {\n if (_this3.$refs.input && _this3.$refs.input.value === '' && _this3.selected.length === 0) {\n _this3.currentPlaceholder = _this3.cachedPlaceHolder;\n }\n });\n if (!this.multiple) {\n if (this.selected) {\n if (this.filterable && this.allowCreate && this.createdSelected && this.createdLabel) {\n this.selectedLabel = this.createdLabel;\n } else {\n this.selectedLabel = this.selected.currentLabel;\n }\n if (this.filterable) this.query = this.selectedLabel;\n }\n }\n } else {\n this.broadcast('ElSelectDropdown', 'updatePopper');\n if (this.filterable) {\n this.query = this.remote ? '' : this.selectedLabel;\n this.handleQueryChange(this.query);\n if (this.multiple) {\n this.$refs.input.focus();\n } else {\n if (!this.remote) {\n this.broadcast('ElOption', 'queryChange', '');\n this.broadcast('ElOptionGroup', 'queryChange');\n }\n this.broadcast('ElInput', 'inputSelect');\n }\n }\n }\n this.$emit('visible-change', val);\n },\n options: function options() {\n var _this4 = this;\n\n if (this.$isServer) return;\n this.$nextTick(function () {\n _this4.broadcast('ElSelectDropdown', 'updatePopper');\n });\n if (this.multiple) {\n this.resetInputHeight();\n }\n var inputs = this.$el.querySelectorAll('input');\n if ([].indexOf.call(inputs, document.activeElement) === -1) {\n this.setSelected();\n }\n if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n this.checkDefaultFirstOption();\n }\n }\n },\n\n methods: {\n handleComposition: function handleComposition(event) {\n var text = event.target.value;\n if (event.type === 'compositionend') {\n this.isOnComposition = false;\n this.handleQueryChange(text);\n } else {\n var lastCharacter = text[text.length - 1] || '';\n this.isOnComposition = !(0, _shared.isKorean)(lastCharacter);\n }\n },\n handleQueryChange: function handleQueryChange(val) {\n var _this5 = this;\n\n if (this.previousQuery === val || this.isOnComposition) return;\n if (this.previousQuery === null && (typeof this.filterMethod === 'function' || typeof this.remoteMethod === 'function')) {\n this.previousQuery = val;\n return;\n }\n this.previousQuery = val;\n this.$nextTick(function () {\n if (_this5.visible) _this5.broadcast('ElSelectDropdown', 'updatePopper');\n });\n this.hoverIndex = -1;\n if (this.multiple && this.filterable) {\n var length = this.$refs.input.value.length * 15 + 20;\n this.inputLength = this.collapseTags ? Math.min(50, length) : length;\n this.managePlaceholder();\n this.resetInputHeight();\n }\n if (this.remote && typeof this.remoteMethod === 'function') {\n this.hoverIndex = -1;\n this.remoteMethod(val);\n } else if (typeof this.filterMethod === 'function') {\n this.filterMethod(val);\n this.broadcast('ElOptionGroup', 'queryChange');\n } else {\n this.filteredOptionsCount = this.optionsCount;\n this.broadcast('ElOption', 'queryChange', val);\n this.broadcast('ElOptionGroup', 'queryChange');\n }\n if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n this.checkDefaultFirstOption();\n }\n },\n scrollToOption: function scrollToOption(option) {\n var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;\n if (this.$refs.popper && target) {\n var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');\n (0, _scrollIntoView2.default)(menu, target);\n }\n this.$refs.scrollbar && this.$refs.scrollbar.handleScroll();\n },\n handleMenuEnter: function handleMenuEnter() {\n var _this6 = this;\n\n this.$nextTick(function () {\n return _this6.scrollToOption(_this6.selected);\n });\n },\n emitChange: function emitChange(val) {\n if (!(0, _util.valueEquals)(this.value, val)) {\n this.$emit('change', val);\n }\n },\n getOption: function getOption(value) {\n var option = void 0;\n var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n var isNull = Object.prototype.toString.call(value).toLowerCase() === '[object null]';\n\n for (var i = this.cachedOptions.length - 1; i >= 0; i--) {\n var cachedOption = this.cachedOptions[i];\n var isEqual = isObject ? (0, _util.getValueByPath)(cachedOption.value, this.valueKey) === (0, _util.getValueByPath)(value, this.valueKey) : cachedOption.value === value;\n if (isEqual) {\n option = cachedOption;\n break;\n }\n }\n if (option) return option;\n var label = !isObject && !isNull ? value : '';\n var newOption = {\n value: value,\n currentLabel: label\n };\n if (this.multiple) {\n newOption.hitState = false;\n }\n return newOption;\n },\n setSelected: function setSelected() {\n var _this7 = this;\n\n if (!this.multiple) {\n var option = this.getOption(this.value);\n if (option.created) {\n this.createdLabel = option.currentLabel;\n this.createdSelected = true;\n } else {\n this.createdSelected = false;\n }\n this.selectedLabel = option.currentLabel;\n this.selected = option;\n if (this.filterable) this.query = this.selectedLabel;\n return;\n }\n var result = [];\n if (Array.isArray(this.value)) {\n this.value.forEach(function (value) {\n result.push(_this7.getOption(value));\n });\n }\n this.selected = result;\n this.$nextTick(function () {\n _this7.resetInputHeight();\n });\n },\n handleFocus: function handleFocus(event) {\n if (!this.softFocus) {\n if (this.automaticDropdown || this.filterable) {\n this.visible = true;\n this.menuVisibleOnFocus = true;\n }\n this.$emit('focus', event);\n } else {\n this.softFocus = false;\n }\n },\n blur: function blur() {\n this.visible = false;\n this.$refs.reference.blur();\n },\n handleBlur: function handleBlur(event) {\n var _this8 = this;\n\n setTimeout(function () {\n if (_this8.isSilentBlur) {\n _this8.isSilentBlur = false;\n } else {\n _this8.$emit('blur', event);\n }\n }, 50);\n this.softFocus = false;\n },\n handleClearClick: function handleClearClick(event) {\n this.deleteSelected(event);\n },\n doDestroy: function doDestroy() {\n this.$refs.popper && this.$refs.popper.doDestroy();\n },\n handleClose: function handleClose() {\n this.visible = false;\n },\n toggleLastOptionHitState: function toggleLastOptionHitState(hit) {\n if (!Array.isArray(this.selected)) return;\n var option = this.selected[this.selected.length - 1];\n if (!option) return;\n\n if (hit === true || hit === false) {\n option.hitState = hit;\n return hit;\n }\n\n option.hitState = !option.hitState;\n return option.hitState;\n },\n deletePrevTag: function deletePrevTag(e) {\n if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {\n var value = this.value.slice();\n value.pop();\n this.$emit('input', value);\n this.emitChange(value);\n }\n },\n managePlaceholder: function managePlaceholder() {\n if (this.currentPlaceholder !== '') {\n this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;\n }\n },\n resetInputState: function resetInputState(e) {\n if (e.keyCode !== 8) this.toggleLastOptionHitState(false);\n this.inputLength = this.$refs.input.value.length * 15 + 20;\n this.resetInputHeight();\n },\n resetInputHeight: function resetInputHeight() {\n var _this9 = this;\n\n if (this.collapseTags && !this.filterable) return;\n this.$nextTick(function () {\n if (!_this9.$refs.reference) return;\n var inputChildNodes = _this9.$refs.reference.$el.childNodes;\n var input = [].filter.call(inputChildNodes, function (item) {\n return item.tagName === 'INPUT';\n })[0];\n var tags = _this9.$refs.tags;\n var sizeInMap = _this9.initialInputHeight || 40;\n input.style.height = _this9.selected.length === 0 ? sizeInMap + 'px' : Math.max(tags ? tags.clientHeight + (tags.clientHeight > sizeInMap ? 6 : 0) : 0, sizeInMap) + 'px';\n if (_this9.visible && _this9.emptyText !== false) {\n _this9.broadcast('ElSelectDropdown', 'updatePopper');\n }\n });\n },\n resetHoverIndex: function resetHoverIndex() {\n var _this10 = this;\n\n setTimeout(function () {\n if (!_this10.multiple) {\n _this10.hoverIndex = _this10.options.indexOf(_this10.selected);\n } else {\n if (_this10.selected.length > 0) {\n _this10.hoverIndex = Math.min.apply(null, _this10.selected.map(function (item) {\n return _this10.options.indexOf(item);\n }));\n } else {\n _this10.hoverIndex = -1;\n }\n }\n }, 300);\n },\n handleOptionSelect: function handleOptionSelect(option, byClick) {\n var _this11 = this;\n\n if (this.multiple) {\n var value = this.value.slice();\n var optionIndex = this.getValueIndex(value, option.value);\n if (optionIndex > -1) {\n value.splice(optionIndex, 1);\n } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {\n value.push(option.value);\n }\n this.$emit('input', value);\n this.emitChange(value);\n if (option.created) {\n this.query = '';\n this.handleQueryChange('');\n this.inputLength = 20;\n }\n if (this.filterable) this.$refs.input.focus();\n } else {\n this.$emit('input', option.value);\n this.emitChange(option.value);\n this.visible = false;\n }\n this.isSilentBlur = byClick;\n this.setSoftFocus();\n if (this.visible) return;\n this.$nextTick(function () {\n _this11.scrollToOption(option);\n });\n },\n setSoftFocus: function setSoftFocus() {\n this.softFocus = true;\n var input = this.$refs.input || this.$refs.reference;\n if (input) {\n input.focus();\n }\n },\n getValueIndex: function getValueIndex() {\n var _this12 = this;\n\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var value = arguments[1];\n\n var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n if (!isObject) {\n return arr.indexOf(value);\n } else {\n var _ret = function () {\n var valueKey = _this12.valueKey;\n var index = -1;\n arr.some(function (item, i) {\n if ((0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(value, valueKey)) {\n index = i;\n return true;\n }\n return false;\n });\n return {\n v: index\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n },\n toggleMenu: function toggleMenu() {\n if (!this.selectDisabled) {\n if (this.menuVisibleOnFocus) {\n this.menuVisibleOnFocus = false;\n } else {\n this.visible = !this.visible;\n }\n if (this.visible) {\n (this.$refs.input || this.$refs.reference).focus();\n }\n }\n },\n selectOption: function selectOption() {\n if (!this.visible) {\n this.toggleMenu();\n } else {\n if (this.options[this.hoverIndex]) {\n this.handleOptionSelect(this.options[this.hoverIndex]);\n }\n }\n },\n deleteSelected: function deleteSelected(event) {\n event.stopPropagation();\n var value = this.multiple ? [] : '';\n this.$emit('input', value);\n this.emitChange(value);\n this.visible = false;\n this.$emit('clear');\n },\n deleteTag: function deleteTag(event, tag) {\n var index = this.selected.indexOf(tag);\n if (index > -1 && !this.selectDisabled) {\n var value = this.value.slice();\n value.splice(index, 1);\n this.$emit('input', value);\n this.emitChange(value);\n this.$emit('remove-tag', tag.value);\n }\n event.stopPropagation();\n },\n onInputChange: function onInputChange() {\n if (this.filterable && this.query !== this.selectedLabel) {\n this.query = this.selectedLabel;\n this.handleQueryChange(this.query);\n }\n },\n onOptionDestroy: function onOptionDestroy(index) {\n if (index > -1) {\n this.optionsCount--;\n this.filteredOptionsCount--;\n this.options.splice(index, 1);\n }\n },\n resetInputWidth: function resetInputWidth() {\n this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;\n },\n handleResize: function handleResize() {\n this.resetInputWidth();\n if (this.multiple) this.resetInputHeight();\n },\n checkDefaultFirstOption: function checkDefaultFirstOption() {\n this.hoverIndex = -1;\n // highlight the created option\n var hasCreated = false;\n for (var i = this.options.length - 1; i >= 0; i--) {\n if (this.options[i].created) {\n hasCreated = true;\n this.hoverIndex = i;\n break;\n }\n }\n if (hasCreated) return;\n for (var _i = 0; _i !== this.options.length; ++_i) {\n var option = this.options[_i];\n if (this.query) {\n // highlight first options that passes the filter\n if (!option.disabled && !option.groupDisabled && option.visible) {\n this.hoverIndex = _i;\n break;\n }\n } else {\n // highlight currently selected option\n if (option.itemSelected) {\n this.hoverIndex = _i;\n break;\n }\n }\n }\n },\n getValueKey: function getValueKey(item) {\n if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {\n return item.value;\n } else {\n return (0, _util.getValueByPath)(item.value, this.valueKey);\n }\n }\n },\n\n created: function created() {\n var _this13 = this;\n\n this.cachedPlaceHolder = this.currentPlaceholder = this.placeholder;\n if (this.multiple && !Array.isArray(this.value)) {\n this.$emit('input', []);\n }\n if (!this.multiple && Array.isArray(this.value)) {\n this.$emit('input', '');\n }\n\n this.debouncedOnInputChange = (0, _debounce2.default)(this.debounce, function () {\n _this13.onInputChange();\n });\n\n this.debouncedQueryChange = (0, _debounce2.default)(this.debounce, function (e) {\n _this13.handleQueryChange(e.target.value);\n });\n\n this.$on('handleOptionClick', this.handleOptionSelect);\n this.$on('setSelected', this.setSelected);\n },\n mounted: function mounted() {\n var _this14 = this;\n\n if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {\n this.currentPlaceholder = '';\n }\n (0, _resizeEvent.addResizeListener)(this.$el, this.handleResize);\n\n var reference = this.$refs.reference;\n if (reference && reference.$el) {\n var sizeMap = {\n medium: 36,\n small: 32,\n mini: 28\n };\n this.initialInputHeight = reference.$el.getBoundingClientRect().height || sizeMap[this.selectSize];\n }\n if (this.remote && this.multiple) {\n this.resetInputHeight();\n }\n this.$nextTick(function () {\n if (reference && reference.$el) {\n _this14.inputWidth = reference.$el.getBoundingClientRect().width;\n }\n });\n this.setSelected();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$el && this.handleResize) (0, _resizeEvent.removeResizeListener)(this.$el, this.handleResize);\n }\n};\n\n/***/ }),\n\n/***/ 141:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__ = __webpack_require__(143);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 142:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(7);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElSelectDropdown',\n\n componentName: 'ElSelectDropdown',\n\n mixins: [_vuePopper2.default],\n\n props: {\n placement: {\n default: 'bottom-start'\n },\n\n boundariesPadding: {\n default: 0\n },\n\n popperOptions: {\n default: function _default() {\n return {\n gpuAcceleration: false\n };\n }\n },\n\n visibleArrow: {\n default: true\n },\n\n appendToBody: {\n type: Boolean,\n default: true\n }\n },\n\n data: function data() {\n return {\n minWidth: ''\n };\n },\n\n\n computed: {\n popperClass: function popperClass() {\n return this.$parent.popperClass;\n }\n },\n\n watch: {\n '$parent.inputWidth': function $parentInputWidth() {\n this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';\n }\n },\n\n mounted: function mounted() {\n var _this = this;\n\n this.referenceElm = this.$parent.$refs.reference.$el;\n this.$parent.popperElm = this.popperElm = this.$el;\n this.$on('updatePopper', function () {\n if (_this.$parent.visible) _this.updatePopper();\n });\n this.$on('destroyPopper', this.destroyPopper);\n }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 143:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-select-dropdown el-popper\",class:[{ 'is-multiple': _vm.$parent.multiple }, _vm.popperClass],style:({ minWidth: _vm.minWidth })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 144:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n data: function data() {\n return {\n hoverOption: -1\n };\n },\n\n\n computed: {\n optionsAllDisabled: function optionsAllDisabled() {\n return this.options.filter(function (option) {\n return option.visible;\n }).every(function (option) {\n return option.disabled;\n });\n }\n },\n\n watch: {\n hoverIndex: function hoverIndex(val) {\n var _this = this;\n\n if (typeof val === 'number' && val > -1) {\n this.hoverOption = this.options[val] || {};\n }\n this.options.forEach(function (option) {\n option.hover = _this.hoverOption === option;\n });\n }\n },\n\n methods: {\n navigateOptions: function navigateOptions(direction) {\n var _this2 = this;\n\n if (!this.visible) {\n this.visible = true;\n return;\n }\n if (this.options.length === 0 || this.filteredOptionsCount === 0) return;\n if (!this.optionsAllDisabled) {\n if (direction === 'next') {\n this.hoverIndex++;\n if (this.hoverIndex === this.options.length) {\n this.hoverIndex = 0;\n }\n } else if (direction === 'prev') {\n this.hoverIndex--;\n if (this.hoverIndex < 0) {\n this.hoverIndex = this.options.length - 1;\n }\n }\n var option = this.options[this.hoverIndex];\n if (option.disabled === true || option.groupDisabled === true || !option.visible) {\n this.navigateOptions(direction);\n }\n this.$nextTick(function () {\n return _this2.scrollToOption(_this2.hoverOption);\n });\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ 145:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleClose),expression:\"handleClose\"}],staticClass:\"el-select\",class:[_vm.selectSize ? 'el-select--' + _vm.selectSize : ''],on:{\"click\":function($event){$event.stopPropagation();_vm.toggleMenu($event)}}},[(_vm.multiple)?_c('div',{ref:\"tags\",staticClass:\"el-select__tags\",style:({ 'max-width': _vm.inputWidth - 32 + 'px', width: '100%' })},[(_vm.collapseTags && _vm.selected.length)?_c('span',[_c('el-tag',{attrs:{\"closable\":!_vm.selectDisabled,\"size\":_vm.collapseTagSize,\"hit\":_vm.selected[0].hitState,\"type\":\"info\",\"disable-transitions\":\"\"},on:{\"close\":function($event){_vm.deleteTag($event, _vm.selected[0])}}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(_vm._s(_vm.selected[0].currentLabel))])]),(_vm.selected.length > 1)?_c('el-tag',{attrs:{\"closable\":false,\"size\":_vm.collapseTagSize,\"type\":\"info\",\"disable-transitions\":\"\"}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(\"+ \"+_vm._s(_vm.selected.length - 1))])]):_vm._e()],1):_vm._e(),(!_vm.collapseTags)?_c('transition-group',{on:{\"after-leave\":_vm.resetInputHeight}},_vm._l((_vm.selected),function(item){return _c('el-tag',{key:_vm.getValueKey(item),attrs:{\"closable\":!_vm.selectDisabled,\"size\":_vm.collapseTagSize,\"hit\":item.hitState,\"type\":\"info\",\"disable-transitions\":\"\"},on:{\"close\":function($event){_vm.deleteTag($event, item)}}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(_vm._s(item.currentLabel))])])})):_vm._e(),(_vm.filterable)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],ref:\"input\",staticClass:\"el-select__input\",class:[_vm.selectSize ? (\"is-\" + _vm.selectSize) : ''],style:({ 'flex-grow': '1', width: _vm.inputLength / (_vm.inputWidth - 32) + '%', 'max-width': _vm.inputWidth - 42 + 'px' }),attrs:{\"type\":\"text\",\"disabled\":_vm.selectDisabled,\"autocomplete\":_vm.autoComplete || _vm.autocomplete},domProps:{\"value\":(_vm.query)},on:{\"focus\":_vm.handleFocus,\"blur\":function($event){_vm.softFocus = false},\"click\":function($event){$event.stopPropagation();},\"keyup\":_vm.managePlaceholder,\"keydown\":[_vm.resetInputState,function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"esc\",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key)){ return null; }_vm.deletePrevTag($event)}],\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":[function($event){if($event.target.composing){ return; }_vm.query=$event.target.value},_vm.debouncedQueryChange]}}):_vm._e()],1):_vm._e(),_c('el-input',{ref:\"reference\",class:{ 'is-focus': _vm.visible },attrs:{\"type\":\"text\",\"placeholder\":_vm.currentPlaceholder,\"name\":_vm.name,\"id\":_vm.id,\"autocomplete\":_vm.autoComplete || _vm.autocomplete,\"size\":_vm.selectSize,\"disabled\":_vm.selectDisabled,\"readonly\":_vm.readonly,\"validate-event\":false},on:{\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur},nativeOn:{\"keyup\":function($event){_vm.debouncedOnInputChange($event)},\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"esc\",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"tab\",9,$event.key)){ return null; }_vm.visible = false}],\"paste\":function($event){_vm.debouncedOnInputChange($event)},\"mouseenter\":function($event){_vm.inputHovering = true},\"mouseleave\":function($event){_vm.inputHovering = false}},model:{value:(_vm.selectedLabel),callback:function ($$v) {_vm.selectedLabel=$$v},expression:\"selectedLabel\"}},[(_vm.$slots.prefix)?_c('template',{attrs:{\"slot\":\"prefix\"},slot:\"prefix\"},[_vm._t(\"prefix\")],2):_vm._e(),_c('template',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showClose),expression:\"!showClose\"}],class:['el-select__caret', 'el-input__icon', 'el-icon-' + _vm.iconClass]}),(_vm.showClose)?_c('i',{staticClass:\"el-select__caret el-input__icon el-icon-circle-close\",on:{\"click\":_vm.handleClearClick}}):_vm._e()])],2),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"before-enter\":_vm.handleMenuEnter,\"after-leave\":_vm.doDestroy}},[_c('el-select-menu',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible && _vm.emptyText !== false),expression:\"visible && emptyText !== false\"}],ref:\"popper\",attrs:{\"append-to-body\":_vm.popperAppendToBody}},[_c('el-scrollbar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.options.length > 0 && !_vm.loading),expression:\"options.length > 0 && !loading\"}],ref:\"scrollbar\",class:{ 'is-empty': !_vm.allowCreate && _vm.query && _vm.filteredOptionsCount === 0 },attrs:{\"tag\":\"ul\",\"wrap-class\":\"el-select-dropdown__wrap\",\"view-class\":\"el-select-dropdown__list\"}},[(_vm.showNewOption)?_c('el-option',{attrs:{\"value\":_vm.query,\"created\":\"\"}}):_vm._e(),_vm._t(\"default\")],2),(_vm.emptyText &&\n (!_vm.allowCreate || _vm.loading || (_vm.allowCreate && _vm.options.length === 0 )))?_c('p',{staticClass:\"el-select-dropdown__empty\"},[_vm._v(\"\\n \"+_vm._s(_vm.emptyText)+\"\\n \")]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/scrollbar\");\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/focus\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/shared\");\n\n/***/ }),\n\n/***/ 25:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tag\");\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scroll-into-view\");\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__ = __webpack_require__(37);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n mixins: [_emitter2.default],\n\n name: 'ElOption',\n\n componentName: 'ElOption',\n\n inject: ['select'],\n\n props: {\n value: {\n required: true\n },\n label: [String, Number],\n created: Boolean,\n disabled: {\n type: Boolean,\n default: false\n }\n },\n\n data: function data() {\n return {\n index: -1,\n groupDisabled: false,\n visible: true,\n hitState: false,\n hover: false\n };\n },\n\n\n computed: {\n isObject: function isObject() {\n return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n },\n currentLabel: function currentLabel() {\n return this.label || (this.isObject ? '' : this.value);\n },\n currentValue: function currentValue() {\n return this.value || this.label || '';\n },\n itemSelected: function itemSelected() {\n if (!this.select.multiple) {\n return this.isEqual(this.value, this.select.value);\n } else {\n return this.contains(this.select.value, this.value);\n }\n },\n limitReached: function limitReached() {\n if (this.select.multiple) {\n return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;\n } else {\n return false;\n }\n }\n },\n\n watch: {\n currentLabel: function currentLabel() {\n if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');\n },\n value: function value(val, oldVal) {\n var _select = this.select,\n remote = _select.remote,\n valueKey = _select.valueKey;\n\n if (!this.created && !remote) {\n if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {\n return;\n }\n this.dispatch('ElSelect', 'setSelected');\n }\n }\n },\n\n methods: {\n isEqual: function isEqual(a, b) {\n if (!this.isObject) {\n return a === b;\n } else {\n var valueKey = this.select.valueKey;\n return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n }\n },\n contains: function contains() {\n var _this = this;\n\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var target = arguments[1];\n\n if (!this.isObject) {\n return arr.indexOf(target) > -1;\n } else {\n var _ret = function () {\n var valueKey = _this.select.valueKey;\n return {\n v: arr.some(function (item) {\n return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n })\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n },\n handleGroupDisabled: function handleGroupDisabled(val) {\n this.groupDisabled = val;\n },\n hoverItem: function hoverItem() {\n if (!this.disabled && !this.groupDisabled) {\n this.select.hoverIndex = this.select.options.indexOf(this);\n }\n },\n selectOptionClick: function selectOptionClick() {\n if (this.disabled !== true && this.groupDisabled !== true) {\n this.dispatch('ElSelect', 'handleOptionClick', [this, true]);\n }\n },\n queryChange: function queryChange(query) {\n this.visible = new RegExp((0, _util.escapeRegexpString)(query), 'i').test(this.currentLabel) || this.created;\n if (!this.visible) {\n this.select.filteredOptionsCount--;\n }\n }\n },\n\n created: function created() {\n this.select.options.push(this);\n this.select.cachedOptions.push(this);\n this.select.optionsCount++;\n this.select.filteredOptionsCount++;\n\n this.$on('queryChange', this.queryChange);\n this.$on('handleGroupDisabled', this.handleGroupDisabled);\n },\n beforeDestroy: function beforeDestroy() {\n this.select.onOptionDestroy(this.select.options.indexOf(this));\n }\n};\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-select-dropdown__item\",class:{\n 'selected': _vm.itemSelected,\n 'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n 'hover': _vm.hover\n },on:{\"mouseenter\":_vm.hoverItem,\"click\":function($event){$event.stopPropagation();_vm.selectOptionClick($event)}}},[_vm._t(\"default\",[_c('span',[_vm._v(_vm._s(_vm.currentLabel))])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/locale\");\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/input\");\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ })\n\n/******/ });","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content\"},[_c('base-header',{staticClass:\"pb-6 bg-gradient\",attrs:{\"type\":\"\"}},[_c('b-row',{staticClass:\"py-4\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"lg\":\"12\"}},[(_vm.offer.is_car)?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.toggleOfferType()}}},[_c('i',{staticClass:\"fa fa-car\"}),_vm._v(\"\\n PKW\\n \")]),_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.toggleOfferType()}}},[_c('i',{staticClass:\"fa fa-bus\"}),_vm._v(\"\\n Nutzfahrzeug\\n \")])]:_vm._e(),(!_vm.offer.is_car)?[_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.toggleOfferType()}}},[_c('i',{staticClass:\"fa fa-car\"}),_vm._v(\"\\n PKW\\n \")]),_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.toggleOfferType()}}},[_c('i',{staticClass:\"fa fa-bus\"}),_vm._v(\"\\n Nutzfahrzeug\\n \")])]:_vm._e(),(!_vm.offer.is_company)?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.toggleOfferCompany()}}},[_c('i',{staticClass:\"fa fa-user\"}),_vm._v(\"\\n Privatkunde\\n \")]),_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.toggleOfferCompany()}}},[_c('i',{staticClass:\"fa fa-university\"}),_vm._v(\"\\n Geschäftskunde\\n \")])]:_vm._e(),(_vm.offer.is_company)?[_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.toggleOfferCompany()}}},[_c('i',{staticClass:\"fa fa-user\"}),_vm._v(\"\\n Privatkunde\\n \")]),_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.toggleOfferCompany()}}},[_c('i',{staticClass:\"fa fa-university\"}),_vm._v(\"\\n Geschäftskunde\\n \")])]:_vm._e()],2)],1)],1),_c('b-container',{staticClass:\"mt--6\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"card-wrapper\"},[_c('b-col',{attrs:{\"lg\":\"6\",\"id\":\"main\"}},[_c('b-row',{staticClass:\"card-wrapper\"},[_c('b-col',{attrs:{\"lg\":\"12\"}},[_c('card',[_c('b-row',{attrs:{\"slot\":\"header\",\"align-v\":\"center\"},slot:\"header\"},[_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('h3',{staticClass:\"mb-0\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('i',{staticClass:\"fa fa-user\"}),_vm._v(\"\\n Kundenangebot rechnen\\n \")])]),_c('b-col',{staticClass:\"text-right\"},[_c('a',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"href\":\"#!\"},on:{\"click\":function($event){return _vm.setDefaults()}}},[_vm._v(\"Neues Angebot\")])])],1),(_vm.currentAccount.hasRole('admin'))?_c('div',{staticClass:\"Einstufung\"},[_vm._v(\" \\n Admin: Einstufung: \\n \"+_vm._s(_vm.offer.leveling_type)+\": \"+_vm._s(_vm.offer.enstg[_vm.offer.leveling_type])+\" \\n SF: \"+_vm._s(_vm.offer.customer_sf)+\"\\n SF2: \"+_vm._s(_vm.offer.customer_sf2)+\"\\n \")]):_vm._e(),_c('validation-observer',{ref:\"formValidator\",scopedSlots:_vm._u([{key:\"default\",fn:function({ handleSubmit }){return [_c('form',{staticClass:\"needs-validation\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.firstFormSubmit)}}},[_c('customer',{attrs:{\"title\":\"Kundendaten\",\"icon\":\"fas fa-users\"}}),(_vm.offer.is_car)?_c('car',{attrs:{\"title\":\"Fahrzeugdaten\",\"icon\":\"fas fa-car\"}}):_vm._e(),(_vm.offer.is_van)?_c('van',{attrs:{\"title\":\"Fahrzeugdaten\",\"icon\":\"fas fa-van\"}}):_vm._e(),_c('insurance',{attrs:{\"title\":\"Informationen zur Versicherung\",\"icon\":\"fas fa-info\"},on:{\"init\":_vm.initInsurance}})],1)]}}])})],1)],1)],1),_c('b-row',{staticClass:\"card-wrapper\"},[(false)?[_c('b-col',{attrs:{\"lg\":\"12\"}},[_c('options',{attrs:{\"title\":\"Informationen zur Versicherung\",\"icon\":\"fas fa-info\"}})],1)]:_vm._e()],2)],1),_c('b-col',{attrs:{\"lg\":\"6\"}},[(_vm.loading)?_c('div',{staticClass:\"loader\"}):_vm._e(),_c('pricing',{attrs:{\"title\":\"pricing\",\"icon\":\"fas fa-users\"},on:{\"calculate\":function($event){return _vm.mayWeCalc()}}}),_c('options',{attrs:{\"title\":\"Optionen\",\"icon\":\"fas fa-users\"}})],1),(false)?_c('b-col',{attrs:{\"lg\":\"12\"}},[(_vm.allDataValidated)?_c('base-button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submitToApi()}}},[_vm._v(\"Jetzt kalkulieren\")]):_vm._e()],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"customerData\"}},[_c('b-row',[(!_vm.offer.is_company)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Vorname\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"type\":\"text\",\"name\":\"Vorname\",\"placeholder\":\"Vorname\"},model:{value:(_vm.offer.firstname),callback:function ($$v) {_vm.$set(_vm.offer, \"firstname\", $$v)},expression:\"offer.firstname\"}})],1):_vm._e(),(!_vm.offer.is_company)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Nachname\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"type\":\"text\",\"name\":\"Nachname\",\"placeholder\":\"Nachname\"},model:{value:(_vm.offer.lastname),callback:function ($$v) {_vm.$set(_vm.offer, \"lastname\", $$v)},expression:\"offer.lastname\"}})],1):_vm._e(),(_vm.offer.is_company)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Firmenname\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"type\":\"text\",\"name\":\"Firmenname\",\"placeholder\":\"Firmenname\"},model:{value:(_vm.offer.company_name),callback:function ($$v) {_vm.$set(_vm.offer, \"company_name\", $$v)},expression:\"offer.company_name\"}})],1):_vm._e()],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"PLZ\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Ort\"}},[_c('el-select',{ref:\"selectRef\",attrs:{\"filterable\":\"\",\"remote\":\"\",\"placeholder\":\"PLZ eingeben\",\"remote-method\":_vm.search,\"loading\":_vm.loading},on:{\"input\":_vm.getZipFromSelection},model:{value:(_vm.offer.customer_zip),callback:function ($$v) {_vm.$set(_vm.offer, \"customer_zip\", $$v)},expression:\"offer.customer_zip\"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)],1),(!_vm.offer.is_company)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Geburtsdatum\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"type\":\"date\",\"name\":\"Geburtsdatum\",\"rules\":\"required\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.dob),callback:function ($$v) {_vm.$set(_vm.offer, \"dob\", $$v)},expression:\"offer.dob\"}})],1):_vm._e()],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Abweichender Halter:\")]),_c('b-form-radio-group',{on:{\"change\":_vm.changeHasHolder},model:{value:(_vm.offer.has_holder),callback:function ($$v) {_vm.$set(_vm.offer, \"has_holder\", $$v)},expression:\"offer.has_holder\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"1\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Ja\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"0\",\"name\":\"checked\"}},[_vm._v(\"\\n Nein\\n \")])],1)])],1)],1),_c('b-row',[(_vm.offer.is_car)?[(_vm.offer.has_holder == 1)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Bitte abweichenden Halter auswählen:\")]),_c('base-input',{attrs:{\"name\":\"Fahrzeughalter\",\"rules\":{\n required_if: { target: 'offer.has_holder', values: true },\n }}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Fahrzeughalter\"},model:{value:(_vm.offer.holder_id),callback:function ($$v) {_vm.$set(_vm.offer, \"holder_id\", $$v)},expression:\"offer.holder_id\"}},[(_vm.offer.is_company)?_vm._l((_vm.offer.KRAVAG_HOLDERS_CAR_COMPANY),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.value}})}):_vm._e(),(!_vm.offer.is_company)?_vm._l((_vm.offer.KRAVAG_HOLDERS_CAR_PRIVAT),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.value}})}):_vm._e()],2)],1)],1):_vm._e()]:_vm._e(),(_vm.offer.is_van && _vm.offer.is_company == 1)?[(_vm.offer.has_holder == 1)?_c('b-col',{staticClass:\"alerts-border\",attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Bitte abweichenden Halter auswählen:\")]),_c('base-input',{attrs:{\"name\":\"Fahrzeughalter\",\"rules\":{\n required_if: { target: 'offer.has_holder', values: true },\n }}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Fahrzeughalter\"},model:{value:(_vm.offer.holder_id),callback:function ($$v) {_vm.$set(_vm.offer, \"holder_id\", $$v)},expression:\"offer.holder_id\"}},[(_vm.offer.is_company)?_vm._l((_vm.offer.KRAVAG_HOLDERS_VAN_COMPANY),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.value}})}):_vm._e(),(!_vm.offer.is_company)?_vm._l((_vm.offer.KRAVAG_HOLDERS_VAN_PRIVAT),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.value}})}):_vm._e()],2)],1)],1):_vm._e()]:_vm._e(),(_vm.offer.is_van && _vm.offer.is_company == 0)?[(_vm.offer.has_holder == 1)?_c('b-col',{staticClass:\"alerts-border\",attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Bitte abweichenden Halter auswählen:\")]),_c('base-input',{attrs:{\"name\":\"Fahrzeughalter\",\"rules\":{\n required_if: { target: 'offer.has_holder', values: true },\n }}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Fahrzeughalter\"},model:{value:(_vm.offer.holder_id),callback:function ($$v) {_vm.$set(_vm.offer, \"holder_id\", $$v)},expression:\"offer.holder_id\"}},_vm._l((_vm.offer.KRAVAG_HOLDERS_VAN_PRIVATE),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.value}})}),1)],1)],1):_vm._e()]:_vm._e(),(_vm.offer.has_holder == 1)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Bitte PLZ des Fahrzeughalters angeben\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Ort\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"remote\":\"\",\"placeholder\":\"PLZ eingeben\",\"remote-method\":_vm.search,\"loading\":_vm.loading},on:{\"input\":_vm.getHolderZipFromSelection},model:{value:(_vm.offer.holder_zip),callback:function ($$v) {_vm.$set(_vm.offer, \"holder_zip\", $$v)},expression:\"offer.holder_zip\"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Customer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Customer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Customer.vue?vue&type=template&id=7d83bd6a&\"\nimport script from \"./Customer.vue?vue&type=script&lang=js&\"\nexport * from \"./Customer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"carData\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"HSN\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-car\",\"placeholder\":\"HSN\",\"name\":\"HSN\",\"rules\":{required: true, max:4, regex:/[a-zA-Z0-9]+/}},model:{value:(_vm.offer.hsn),callback:function ($$v) {_vm.$set(_vm.offer, \"hsn\", $$v)},expression:\"offer.hsn\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"TSN\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-car\",\"placeholder\":\"TSN\",\"name\":\"TSN\",\"rules\":{required: true, max:3, regex:/[a-zA-Z0-9]+/}},model:{value:(_vm.offer.tsn),callback:function ($$v) {_vm.$set(_vm.offer, \"tsn\", $$v)},expression:\"offer.tsn\"}})],1)],1),(_vm.carData.fetched)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('p',[_vm._v(\"\\n \"+_vm._s(this.offer.car_brand)+\" \"+_vm._s(this.offer.car_model)+\" - \\n \"+_vm._s(this.offer.car_kw)+\" kw / \"+_vm._s(this.offer.car_ps)+\" PS - \\n \"+_vm._s(this.offer.car_haftpflicht)+\"/\"+_vm._s(this.offer.car_teilkasko)+\"/\"+_vm._s(this.offer.car_vollkasko)+\"\\n \")])])],1):_vm._e(),_c('b-row',[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('h4',[_vm._v(\"Erstzulassung\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Erstzulassung\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"AA.MM.YYYY\"},model:{value:(_vm.offer.car_first_registration),callback:function ($$v) {_vm.$set(_vm.offer, \"car_first_registration\", $$v)},expression:\"offer.car_first_registration\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('h4',[_vm._v(\"Zulassung auf den Halter\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Zulassung auf den Halter\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.car_registration),callback:function ($$v) {_vm.$set(_vm.offer, \"car_registration\", $$v)},expression:\"offer.car_registration\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('h4',[_vm._v(\"Versicherungsbeginn\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Versicherungsbeginn\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.insurance_start),callback:function ($$v) {_vm.$set(_vm.offer, \"insurance_start\", $$v)},expression:\"offer.insurance_start\"}})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Laufleistung\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-car\",\"placeholder\":\"Laufleistung\",\"name\":\"Laufleistung\",\"rules\":\"required\"},model:{value:(_vm.offer.mileage),callback:function ($$v) {_vm.$set(_vm.offer, \"mileage\", $$v)},expression:\"offer.mileage\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Versicherungsumfang\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Versicherungsumfang\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Versicherungsumfang\"},model:{value:(_vm.offer.participation),callback:function ($$v) {_vm.$set(_vm.offer, \"participation\", $$v)},expression:\"offer.participation\"}},_vm._l((_vm.offer.participations),function(option){return _c('el-option',{key:option.value,attrs:{\"label\":option.label,\"value\":option.value}})}),1)],1)],1)],1),(false)?_c('b-row',[(this.offer.show_usage)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"\\n Fahrzeugnutzung\\n \")]),(_vm.offer.is_company)?_c('b-form-radio-group',{model:{value:(_vm.offer.car_usage),callback:function ($$v) {_vm.$set(_vm.offer, \"car_usage\", $$v)},expression:\"offer.car_usage\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Gewerblich\",\"name\":\"checked\"}},[_vm._v(\"\\n Gewerblich\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Privat und gewerblich\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Privat und gewerblich\\n \")])],1)]):_vm._e(),(!_vm.offer.is_company)?_c('b-form-radio-group',{model:{value:(_vm.offer.car_usage),callback:function ($$v) {_vm.$set(_vm.offer, \"car_usage\", $$v)},expression:\"offer.car_usage\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Privat\",\"name\":\"checked\"}},[_vm._v(\"\\n Privat\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Privat und gewerblich\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Privat und gewerblich\\n \")])],1)]):_vm._e()],1):_vm._e(),(false)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"\\n Fahrzeugneuwert unter 210.000 € ?\\n \")]),_c('b-form-radio-group',{model:{value:(_vm.offer.new_car_above_max),callback:function ($$v) {_vm.$set(_vm.offer, \"new_car_above_max\", $$v)},expression:\"offer.new_car_above_max\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"false\",\"name\":\"checked\"}},[_vm._v(\"\\n Ja\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"true\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Nein\\n \")])],1)])],1):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Car.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Car.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Car.vue?vue&type=template&id=15f0f83b&\"\nimport script from \"./Car.vue?vue&type=script&lang=js&\"\nexport * from \"./Car.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"vanData\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Leistung in KW\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-car\",\"placeholder\":\"Leistung in KW\",\"name\":\"KW\",\"rules\":\"required\"},model:{value:(_vm.offer.car_kw),callback:function ($$v) {_vm.$set(_vm.offer, \"car_kw\", $$v)},expression:\"offer.car_kw\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Aufbauart\")]),_c('base-input',{attrs:{\"name\":\"Aufbauart\",\"rules\":\"required\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Aufbauart\"},model:{value:(_vm.offer.body_id),callback:function ($$v) {_vm.$set(_vm.offer, \"body_id\", $$v)},expression:\"offer.body_id\"}},_vm._l((_vm.offer.KRAVAG_VAN_AUFBAUART),function(option){return _c('el-option',{key:option.value,attrs:{\"label\":option.label,\"value\":option.value}})}),1)],1)],1)],1),(false)?_c('b-row',[(this.offer.show_usage)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"\\n Fahrzeugnutzung\\n \")]),(_vm.offer.is_company)?_c('b-form-radio-group',{model:{value:(_vm.offer.car_usage),callback:function ($$v) {_vm.$set(_vm.offer, \"car_usage\", $$v)},expression:\"offer.car_usage\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Gewerblich\",\"name\":\"checked\"}},[_vm._v(\"\\n Gewerblich\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Privat und gewerblich\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Privat und gewerblich \\n \")])],1)]):_vm._e(),(!_vm.offer.is_company)?_c('b-form-radio-group',{model:{value:(_vm.offer.car_usage),callback:function ($$v) {_vm.$set(_vm.offer, \"car_usage\", $$v)},expression:\"offer.car_usage\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Privat\",\"name\":\"checked\"}},[_vm._v(\"\\n Privat\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"Privat und gewerblich\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Privat und gewerblich\\n \")])],1)]):_vm._e()],1):_vm._e(),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"\\n Fahrzeugneuwert unter 210.000 € ?\\n \")]),_c('b-form-radio-group',{model:{value:(_vm.offer.new_car_above_max),callback:function ($$v) {_vm.$set(_vm.offer, \"new_car_above_max\", $$v)},expression:\"offer.new_car_above_max\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"false\",\"name\":\"checked\"}},[_vm._v(\"\\n Ja\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"true\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Nein\\n \")])],1)])],1)],1):_vm._e(),_c('b-row',[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('h4',[_vm._v(\"Erstzulassung\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Erstzulassung\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"AA.MM.YYYY\"},model:{value:(_vm.offer.car_first_registration),callback:function ($$v) {_vm.$set(_vm.offer, \"car_first_registration\", $$v)},expression:\"offer.car_first_registration\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('h4',[_vm._v(\"Zulassung auf den Halter\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Zulassung auf den Halter\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.car_registration),callback:function ($$v) {_vm.$set(_vm.offer, \"car_registration\", $$v)},expression:\"offer.car_registration\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('h4',[_vm._v(\"Versicherungsbeginn\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Versicherungsbeginn\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.insurance_start),callback:function ($$v) {_vm.$set(_vm.offer, \"insurance_start\", $$v)},expression:\"offer.insurance_start\"}})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Versicherungsumfang\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Versicherungsumfang\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Versicherungsumfang\"},model:{value:(_vm.offer.participation),callback:function ($$v) {_vm.$set(_vm.offer, \"participation\", $$v)},expression:\"offer.participation\"}},_vm._l((_vm.offer.participations),function(option){return _c('el-option',{key:option.value,attrs:{\"label\":option.label,\"value\":option.value}})}),1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Van.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Van.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Van.vue?vue&type=template&id=6232b872&\"\nimport script from \"./Van.vue?vue&type=script&lang=js&\"\nexport * from \"./Van.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"carData\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Zahlungsperiode\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Zahlungsperiode\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"Zahlungsperiode\"},model:{value:(_vm.offer.paymentterm),callback:function ($$v) {_vm.$set(_vm.offer, \"paymentterm\", $$v)},expression:\"offer.paymentterm\"}},_vm._l((_vm.offer.paymentterms),function(option){return _c('el-option',{key:option.value,attrs:{\"label\":option.label,\"value\":option.value}})}),1)],1)],1),(false)?_c('b-col',{attrs:{\"md\":\"12\"}},[_c('h4',[_vm._v(\"\\n Zahlungsperiode\\n \")]),_c('b-form-radio-group',{model:{value:(_vm.offer.paymentterm),callback:function ($$v) {_vm.$set(_vm.offer, \"paymentterm\", $$v)},expression:\"offer.paymentterm\"}},_vm._l((_vm.offer.paymentterms),function(option){return _c('div',{key:option.value},[_c('b-form-radio',_vm._b({staticClass:\"mb-3\",attrs:{\"value\":option.value,\"name\":\"checked\",\"checked\":option.label == _vm.offer.paymentterm}},'b-form-radio',option.value,false),[_vm._v(\"\\n \"+_vm._s(option.label)+\"\\n \")])],1)}),0)],1):_vm._e()],1),(_vm.show_only_driver)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"\\n Kunde ist der einzige Fahrer ?\\n \")]),_c('b-form-radio-group',{model:{value:(_vm.offer.holder_only_driver),callback:function ($$v) {_vm.$set(_vm.offer, \"holder_only_driver\", $$v)},expression:\"offer.holder_only_driver\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"1\",\"name\":\"checked\"}},[_vm._v(\"\\n Ja\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"0\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Nein\\n \")])],1)])],1)],1):_vm._e(),(this.offer.selected_only_driver || _vm.offer.is_company)?[_c('b-row',[(_vm.display_joungest_driver)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Jüngster Fahrer\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Jüngster Fahrer\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.youngest_driver_dob),callback:function ($$v) {_vm.$set(_vm.offer, \"youngest_driver_dob\", $$v)},expression:\"offer.youngest_driver_dob\"}})],1):_vm._e(),(_vm.display_oldest_driver)?_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Ältester Fahrer\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Ältester Fahrer\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.oldest_driver_dob),callback:function ($$v) {_vm.$set(_vm.offer, \"oldest_driver_dob\", $$v)},expression:\"offer.oldest_driver_dob\"}})],1):_vm._e()],1)]:_vm._e(),[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"\\n Kunde hat einen freien SFR ?\\n \")]),_c('b-form-radio-group',{model:{value:(_vm.offer.customer_has_free_sfr),callback:function ($$v) {_vm.$set(_vm.offer, \"customer_has_free_sfr\", $$v)},expression:\"offer.customer_has_free_sfr\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"1\",\"name\":\"checked\"}},[_vm._v(\"\\n Ja\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"0\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Nein\\n \")])],1)])],1)],1),[(_vm.display_second_vehicle)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('h4',[_vm._v(\"\\n Ist auf den Kunden, den Ehe- oder Lebenspartner oder ein\\n Elternteil bereits ein PKW,ein (Leicht-)Kraftrad, ein Camping-Kfz\\n oder einen Lkw bis 3,5 t zulässige Gesamtmasse im\\n Privat-/Werkverkehr zugelassen?\\n \")]),(_vm.offer.is_company)?_c('b-form-radio-group',{model:{value:(_vm.offer.has_second_vehicle),callback:function ($$v) {_vm.$set(_vm.offer, \"has_second_vehicle\", $$v)},expression:\"offer.has_second_vehicle\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"1\",\"name\":\"checked\"}},[_vm._v(\"\\n Ja (Sondereinstufung)\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"0\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Nein\\n \")])],1)]):_vm._e(),(!_vm.offer.is_company)?_c('b-form-radio-group',{model:{value:(_vm.offer.has_second_vehicle),callback:function ($$v) {_vm.$set(_vm.offer, \"has_second_vehicle\", $$v)},expression:\"offer.has_second_vehicle\"}},[_c('div',[_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"1\",\"name\":\"checked\"}},[_vm._v(\"\\n Ja (Sondereinstufung)\\n \")]),_c('b-form-radio',{staticClass:\"mb-3\",attrs:{\"value\":\"0\",\"name\":\"unchecked\"}},[_vm._v(\"\\n Nein (Führerscheinregelung)\\n \")])],1)]):_vm._e()],1)],1):_vm._e(),(_vm.offer.customer_has_free_sfr == 1)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"SF Haftpflicht\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"SF Haftpflicht\"}},[_c('el-select',{attrs:{\"disabled\":_vm.sf_enabled,\"filterable\":\"\",\"placeholder\":\"SF Haftpflicht\"},model:{value:(_vm.offer.customer_sf),callback:function ($$v) {_vm.$set(_vm.offer, \"customer_sf\", $$v)},expression:\"offer.customer_sf\"}},_vm._l((_vm.offer.sf_classes),function(option){return _c('el-option',{key:option.value,attrs:{\"label\":option.value,\"value\":option.value}})}),1)],1)],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"SF Kasko\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"SF Kasko\"}},[_c('el-select',{attrs:{\"disabled\":_vm.sf_enabled,\"filterable\":\"\",\"placeholder\":\"SF Kasko\"},model:{value:(_vm.offer.customer_sf2),callback:function ($$v) {_vm.$set(_vm.offer, \"customer_sf2\", $$v)},expression:\"offer.customer_sf2\"}},_vm._l((_vm.offer.sf_classes),function(option){return _c('el-option',{key:option.value,attrs:{\"label\":option.value,\"value\":option.value}})}),1)],1)],1)],1):_vm._e(),(_vm.license_age)?void 0:_vm._e(),(_vm.display_license_date)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Ausstellungsdatum Führerschein\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-calendar\",\"name\":\"Ausstellungsdatum Führerschein\",\"rules\":\"required\",\"type\":\"date\",\"placeholder\":\"DD.MM.YYYY\"},model:{value:(_vm.offer.license_date),callback:function ($$v) {_vm.$set(_vm.offer, \"license_date\", $$v)},expression:\"offer.license_date\"}})],1)],1):_vm._e(),(_vm.display_holder_sf_selection)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Auf wen ist das Fahrzeug zugelassen?\")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Auf wen ist das Fahrzeug zugelassen?\"}},[_c('el-select',{attrs:{\"placeholder\":\"Auf wen ist das Fahrzeug zugelassen?\"},model:{value:(_vm.offer.second_vehicle_holder),callback:function ($$v) {_vm.$set(_vm.offer, \"second_vehicle_holder\", $$v)},expression:\"offer.second_vehicle_holder\"}},[(_vm.offer.is_company != 1)?_vm._l((_vm.offer.possible_sf_holders_privat),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.label}})}):_vm._e(),(_vm.offer.is_company == 1)?_vm._l((_vm.offer.possible_sf_holders_company),function(option){return _c('el-option',{key:option.label,attrs:{\"label\":option.label,\"value\":option.label}})}):_vm._e()],2)],1)],1)],1):_vm._e(),(_vm.display_holder_sf_selection)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"SF-Einstufung des Fahrzeuges (Haftpflichtversicherung)\")]),_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-car\",\"placeholder\":\"SF-Klasse\",\"name\":\"SF-Klasse\",\"rules\":\"required\"},model:{value:(_vm.offer.sf_holder_sf),callback:function ($$v) {_vm.$set(_vm.offer, \"sf_holder_sf\", $$v)},expression:\"offer.sf_holder_sf\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('h4',[_vm._v(\"Versicherung des Fahrzeuges (Referenz) \")]),_c('base-input',{attrs:{\"rules\":\"required\",\"name\":\"Versicherung des Fahrzeuges (Referenz)\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"remote\":\"\",\"reserve-keyword\":\"\",\"placeholder\":\"Versicherung des Fahrzeuges (Referenz)\",\"remote-method\":_vm.searchInsurances,\"loading\":_vm.loading},model:{value:(_vm.offer.insurance_id),callback:function ($$v) {_vm.$set(_vm.offer, \"insurance_id\", $$v)},expression:\"offer.insurance_id\"}},_vm._l((_vm.insurances),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1)],1)],1)],1):_vm._e()]]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Insurance.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Insurance.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Insurance.vue?vue&type=template&id=6dc99dda&\"\nimport script from \"./Insurance.vue?vue&type=script&lang=js&\"\nexport * from \"./Insurance.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('card',{attrs:{\"id\":\"options\"}},[_c('b-row',{attrs:{\"slot\":\"header\",\"align-v\":\"center\"},slot:\"header\"},[_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('h3',{staticClass:\"mb-0\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('i',{class:_vm.icon}),_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])])],1),_c('validation-observer',{ref:\"formValidator\"},[_c('form',{staticClass:\"needs-validation\"},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",model:{value:(_vm.offer.option_fahrerschutz),callback:function ($$v) {_vm.$set(_vm.offer, \"option_fahrerschutz\", $$v)},expression:\"offer.option_fahrerschutz\"}},[_vm._v(\"\\n Fahrer-Schutzversicherung\\n \")])],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",attrs:{\"disabled\":_vm.offer.option_schutzbrief_plus},model:{value:(_vm.offer.option_schutzbrief),callback:function ($$v) {_vm.$set(_vm.offer, \"option_schutzbrief\", $$v)},expression:\"offer.option_schutzbrief\"}},[_vm._v(\"\\n Schutzbrief\\n \")])],1)],1),(this.offer.is_car)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",attrs:{\"disabled\":_vm.offer.option_schutzbrief},model:{value:(_vm.offer.option_schutzbrief_plus),callback:function ($$v) {_vm.$set(_vm.offer, \"option_schutzbrief_plus\", $$v)},expression:\"offer.option_schutzbrief_plus\"}},[_vm._v(\"\\n Schutzbrief plus\\n \")])],1)],1):_vm._e(),(this.offer.is_car)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",attrs:{\"disabled\":this.offer.customer_sf < 10},model:{value:(_vm.offer.option_discount_protection_kh),callback:function ($$v) {_vm.$set(_vm.offer, \"option_discount_protection_kh\", $$v)},expression:\"offer.option_discount_protection_kh\"}},[_vm._v(\"\\n Rabattschutz Haftpflicht (möglich ab SF 10)\\n \")])],1)],1):_vm._e(),(this.offer.is_car)?_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",attrs:{\"disabled\":!_vm.mayHaveDicountProtektionKH()},model:{value:(_vm.offer.option_discount_protection_fv),callback:function ($$v) {_vm.$set(_vm.offer, \"option_discount_protection_fv\", $$v)},expression:\"offer.option_discount_protection_fv\"}},[_vm._v(\"\\n Rabattschutz Kasko (möglich ab SF 10)\\n \")])],1)],1):_vm._e(),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",model:{value:(_vm.offer.option_gap),callback:function ($$v) {_vm.$set(_vm.offer, \"option_gap\", $$v)},expression:\"offer.option_gap\"}},[_vm._v(\"\\n GAP - Versicherung\\n \")])],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-form-checkbox',{staticClass:\"mb-3\",model:{value:(_vm.offer.option_kex),callback:function ($$v) {_vm.$set(_vm.offer, \"option_kex\", $$v)},expression:\"offer.option_kex\"}},[_vm._v(\"\\n Kasko-Extra-Versicherung\\n \")])],1)],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Options.vue?vue&type=template&id=63bfd11b&\"\nimport script from \"./Options.vue?vue&type=script&lang=js&\"\nexport * from \"./Options.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"newpricing\",attrs:{\"id\":\"newpricing\"}},[_c('table',{staticClass:\"table-responsive table-flush table-striped\"},[_c('tbody',[_vm._l((_vm.offer.pricing.products),function(product){return _c('tr',{key:product.name},[_c('td',{attrs:{\"colspan\":\"2\"}},[_vm._v(_vm._s(product.name))]),_c('td'),_c('td',[_vm._v(_vm._s(_vm.financial(product.price_net))+\" €\")])])}),(_vm.offer.option_discount_protection_fv || _vm.offer.option_discount_protection_kh)?_c('tr',[_c('td',{attrs:{\"colspan\":\"4\"}},[_vm._v(\"Rabattschutz in Prämie enthalten\")])]):_vm._e(),(_vm.offer.pricing.products)?_c('tr',[_c('td',{attrs:{\"colspan\":\"4\"}},[_vm._v(\"SF Haftpflicht \"+_vm._s(_vm.offer.customer_sf))])]):_vm._e(),(_vm.offer.pricing.products)?_c('tr',[_c('td',{attrs:{\"colspan\":\"4\"}},[_vm._v(\"SF Kasko \"+_vm._s(_vm.offer.customer_sf2))])]):_vm._e(),_vm._m(0),_c('tr',[_c('td',[_vm._v(\"\\n Summe Netto \\n \")]),_c('td'),_c('td'),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.financial(_vm.offer.pricing.price_net_complete) || 0)+\" € \\n \")])]),_c('tr',[_vm._m(1),_c('td'),_c('td'),_c('td',[_c('strong',[_vm._v(_vm._s(_vm.financial(_vm.offer.pricing.price_brut_complete) || 0)+\" € \")])])]),_c('tr',[_c('td',{attrs:{\"colspan\":\"3\"}},[_vm._v(\"\\n davon gesetzliche Versicherungssteuer von zurzeit 19% Jährlich\\n \")]),_c('td',[_vm._v(_vm._s(_vm.financial(_vm.offer.pricing.price_tax_complete) || 0)+\" €\")])])],2)]),_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"info\"},on:{\"click\":function($event){return _vm.$emit('calculate', 'now')}}},[_c('i',{staticClass:\"fas fa-file-pdf\"}),_vm._v(\" Jetzt kalkulieren\")]),(_vm.offer.pricing.products)?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"warning\"},on:{\"click\":function($event){return _vm.downloadFile(_vm.offer.id, 'offer')}}},[_c('i',{staticClass:\"fas fa-file-pdf\"}),_vm._v(\" Angebot herunterladen\")]):_vm._e(),(_vm.offer.pricing.products)?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"success\"},on:{\"click\":function($event){return _vm.acceptOffer(_vm.offer.id)}}},[_c('i',{staticClass:\"fas fa-check\"}),_vm._v(\" Jetzt annehmen\")]):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('td',{attrs:{\"colspan\":\"5\"}},[_c('hr')])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('td',[_c('strong',[_vm._v(\" Bruttobeitrag \")])])\n}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Pricing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Pricing.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pricing.vue?vue&type=template&id=4df21eba&\"\nimport script from \"./Pricing.vue?vue&type=script&lang=js&\"\nexport * from \"./Pricing.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AVSOffer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AVSOffer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AVSOffer.vue?vue&type=template&id=283f817b&\"\nimport script from \"./AVSOffer.vue?vue&type=script&lang=js&\"\nexport * from \"./AVSOffer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AVSOffer.vue?vue&type=style&index=0&id=283f817b&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _locale = require('element-ui/lib/locale');\n\nexports.default = {\n methods: {\n t: function t() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _locale.t.apply(this, args);\n }\n }\n};","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewEvb.vue?vue&type=style&index=0&id=26efc18c&prod&lang=css&\"","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 130);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 130:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkboxGroup = __webpack_require__(131);\n\nvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkboxGroup2.default.install = function (Vue) {\n Vue.component(_checkboxGroup2.default.name, _checkboxGroup2.default);\n};\n\nexports.default = _checkboxGroup2.default;\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__ = __webpack_require__(133);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElCheckboxGroup',\n\n componentName: 'ElCheckboxGroup',\n\n mixins: [_emitter2.default],\n\n inject: {\n elFormItem: {\n default: ''\n }\n },\n\n props: {\n value: {},\n disabled: Boolean,\n min: Number,\n max: Number,\n size: String,\n fill: String,\n textColor: String\n },\n\n computed: {\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n checkboxGroupSize: function checkboxGroupSize() {\n return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n }\n },\n\n watch: {\n value: function value(_value) {\n this.dispatch('ElFormItem', 'el.form.change', [_value]);\n }\n }\n};\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-checkbox-group\",attrs:{\"role\":\"group\",\"aria-label\":\"checkbox-group\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","var getUint64 = require('../utils/numbers.js').getUint64;\n\nvar parseSidx = function(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength),\n result = {\n version: data[0],\n flags: new Uint8Array(data.subarray(1, 4)),\n references: [],\n referenceId: view.getUint32(4),\n timescale: view.getUint32(8)\n },\n i = 12;\n\n if (result.version === 0) {\n result.earliestPresentationTime = view.getUint32(i);\n result.firstOffset = view.getUint32(i + 4);\n i += 8;\n } else {\n // read 64 bits\n result.earliestPresentationTime = getUint64(data.subarray(i));\n result.firstOffset = getUint64(data.subarray(i + 8));\n i += 16;\n }\n\n i += 2; // reserved\n\n var referenceCount = view.getUint16(i);\n\n i += 2; // start of references\n\n for (; referenceCount > 0; i += 12, referenceCount--) {\n result.references.push({\n referenceType: (data[i] & 0x80) >>> 7,\n referencedSize: view.getUint32(i) & 0x7FFFFFFF,\n subsegmentDuration: view.getUint32(i + 4),\n startsWithSap: !!(data[i + 8] & 0x80),\n sapType: (data[i + 8] & 0x70) >>> 4,\n sapDeltaTime: view.getUint32(i + 8) & 0x0FFFFFFF\n });\n }\n\n return result;\n};\n\n\nmodule.exports = parseSidx;\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n if (!fn) {\n return false\n }\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 155);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 155:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _buttonGroup = __webpack_require__(156);\n\nvar _buttonGroup2 = _interopRequireDefault(_buttonGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_buttonGroup2.default.install = function (Vue) {\n Vue.component(_buttonGroup2.default.name, _buttonGroup2.default);\n};\n\nexports.default = _buttonGroup2.default;\n\n/***/ }),\n\n/***/ 156:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__ = __webpack_require__(157);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__ = __webpack_require__(158);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 157:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n\nexports.default = {\n name: 'ElButtonGroup'\n};\n\n/***/ }),\n\n/***/ 158:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-button-group\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","import URLToolkit from 'url-toolkit';\nimport window from 'global/window';\nvar DEFAULT_LOCATION = 'http://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n } // IE11 supports URL but not the URL constructor\n // feature detect the behavior we want\n\n\n var nativeURL = typeof window.URL === 'function';\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n if (nativeURL) {\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n } else if (!/\\/\\//i.test(baseUrl)) {\n baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);\n }\n\n if (nativeURL) {\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n }\n\n return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);\n};\n\nexport default resolveUrl;","/**\n * Loops through all supported media groups in master and calls the provided\n * callback for each group\n *\n * @param {Object} master\n * The parsed master manifest object\n * @param {string[]} groups\n * The media groups to call the callback for\n * @param {Function} callback\n * Callback to call for each media group\n */\nexport var forEachMediaGroup = function forEachMediaGroup(master, groups, callback) {\n groups.forEach(function (mediaType) {\n for (var groupKey in master.mediaGroups[mediaType]) {\n for (var labelKey in master.mediaGroups[mediaType][groupKey]) {\n var mediaProperties = master.mediaGroups[mediaType][groupKey][labelKey];\n callback(mediaProperties, mediaType, groupKey, labelKey);\n }\n }\n });\n};","/*! @name mpd-parser @version 1.0.1 @license Apache-2.0 */\nimport resolveUrl from '@videojs/vhs-utils/es/resolve-url';\nimport window from 'global/window';\nimport { forEachMediaGroup } from '@videojs/vhs-utils/es/media-groups';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array';\nimport { DOMParser } from '@xmldom/xmldom';\n\nvar version = \"1.0.1\";\n\nconst isObject = obj => {\n return !!obj && typeof obj === 'object';\n};\n\nconst merge = (...objects) => {\n return objects.reduce((result, source) => {\n if (typeof source !== 'object') {\n return result;\n }\n\n Object.keys(source).forEach(key => {\n if (Array.isArray(result[key]) && Array.isArray(source[key])) {\n result[key] = result[key].concat(source[key]);\n } else if (isObject(result[key]) && isObject(source[key])) {\n result[key] = merge(result[key], source[key]);\n } else {\n result[key] = source[key];\n }\n });\n return result;\n }, {});\n};\nconst values = o => Object.keys(o).map(k => o[k]);\n\nconst range = (start, end) => {\n const result = [];\n\n for (let i = start; i < end; i++) {\n result.push(i);\n }\n\n return result;\n};\nconst flatten = lists => lists.reduce((x, y) => x.concat(y), []);\nconst from = list => {\n if (!list.length) {\n return [];\n }\n\n const result = [];\n\n for (let i = 0; i < list.length; i++) {\n result.push(list[i]);\n }\n\n return result;\n};\nconst findIndexes = (l, key) => l.reduce((a, e, i) => {\n if (e[key]) {\n a.push(i);\n }\n\n return a;\n}, []);\n/**\n * Returns a union of the included lists provided each element can be identified by a key.\n *\n * @param {Array} list - list of lists to get the union of\n * @param {Function} keyFunction - the function to use as a key for each element\n *\n * @return {Array} the union of the arrays\n */\n\nconst union = (lists, keyFunction) => {\n return values(lists.reduce((acc, list) => {\n list.forEach(el => {\n acc[keyFunction(el)] = el;\n });\n return acc;\n }, {}));\n};\n\nvar errors = {\n INVALID_NUMBER_OF_PERIOD: 'INVALID_NUMBER_OF_PERIOD',\n DASH_EMPTY_MANIFEST: 'DASH_EMPTY_MANIFEST',\n DASH_INVALID_XML: 'DASH_INVALID_XML',\n NO_BASE_URL: 'NO_BASE_URL',\n MISSING_SEGMENT_INFORMATION: 'MISSING_SEGMENT_INFORMATION',\n SEGMENT_TIME_UNSPECIFIED: 'SEGMENT_TIME_UNSPECIFIED',\n UNSUPPORTED_UTC_TIMING_SCHEME: 'UNSUPPORTED_UTC_TIMING_SCHEME'\n};\n\n/**\n * @typedef {Object} SingleUri\n * @property {string} uri - relative location of segment\n * @property {string} resolvedUri - resolved location of segment\n * @property {Object} byterange - Object containing information on how to make byte range\n * requests following byte-range-spec per RFC2616.\n * @property {String} byterange.length - length of range request\n * @property {String} byterange.offset - byte offset of range request\n *\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1\n */\n\n/**\n * Converts a URLType node (5.3.9.2.3 Table 13) to a segment object\n * that conforms to how m3u8-parser is structured\n *\n * @see https://github.com/videojs/m3u8-parser\n *\n * @param {string} baseUrl - baseUrl provided by nodes\n * @param {string} source - source url for segment\n * @param {string} range - optional range used for range calls,\n * follows RFC 2616, Clause 14.35.1\n * @return {SingleUri} full segment information transformed into a format similar\n * to m3u8-parser\n */\n\nconst urlTypeToSegment = ({\n baseUrl = '',\n source = '',\n range = '',\n indexRange = ''\n}) => {\n const segment = {\n uri: source,\n resolvedUri: resolveUrl(baseUrl || '', source)\n };\n\n if (range || indexRange) {\n const rangeStr = range ? range : indexRange;\n const ranges = rangeStr.split('-'); // default to parsing this as a BigInt if possible\n\n let startRange = window.BigInt ? window.BigInt(ranges[0]) : parseInt(ranges[0], 10);\n let endRange = window.BigInt ? window.BigInt(ranges[1]) : parseInt(ranges[1], 10); // convert back to a number if less than MAX_SAFE_INTEGER\n\n if (startRange < Number.MAX_SAFE_INTEGER && typeof startRange === 'bigint') {\n startRange = Number(startRange);\n }\n\n if (endRange < Number.MAX_SAFE_INTEGER && typeof endRange === 'bigint') {\n endRange = Number(endRange);\n }\n\n let length;\n\n if (typeof endRange === 'bigint' || typeof startRange === 'bigint') {\n length = window.BigInt(endRange) - window.BigInt(startRange) + window.BigInt(1);\n } else {\n length = endRange - startRange + 1;\n }\n\n if (typeof length === 'bigint' && length < Number.MAX_SAFE_INTEGER) {\n length = Number(length);\n } // byterange should be inclusive according to\n // RFC 2616, Clause 14.35.1\n\n\n segment.byterange = {\n length,\n offset: startRange\n };\n }\n\n return segment;\n};\nconst byteRangeToString = byterange => {\n // `endRange` is one less than `offset + length` because the HTTP range\n // header uses inclusive ranges\n let endRange;\n\n if (typeof byterange.offset === 'bigint' || typeof byterange.length === 'bigint') {\n endRange = window.BigInt(byterange.offset) + window.BigInt(byterange.length) - window.BigInt(1);\n } else {\n endRange = byterange.offset + byterange.length - 1;\n }\n\n return `${byterange.offset}-${endRange}`;\n};\n\n/**\n * parse the end number attribue that can be a string\n * number, or undefined.\n *\n * @param {string|number|undefined} endNumber\n * The end number attribute.\n *\n * @return {number|null}\n * The result of parsing the end number.\n */\n\nconst parseEndNumber = endNumber => {\n if (endNumber && typeof endNumber !== 'number') {\n endNumber = parseInt(endNumber, 10);\n }\n\n if (isNaN(endNumber)) {\n return null;\n }\n\n return endNumber;\n};\n/**\n * Functions for calculating the range of available segments in static and dynamic\n * manifests.\n */\n\n\nconst segmentRange = {\n /**\n * Returns the entire range of available segments for a static MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n static(attributes) {\n const {\n duration,\n timescale = 1,\n sourceDuration,\n periodDuration\n } = attributes;\n const endNumber = parseEndNumber(attributes.endNumber);\n const segmentDuration = duration / timescale;\n\n if (typeof endNumber === 'number') {\n return {\n start: 0,\n end: endNumber\n };\n }\n\n if (typeof periodDuration === 'number') {\n return {\n start: 0,\n end: periodDuration / segmentDuration\n };\n }\n\n return {\n start: 0,\n end: sourceDuration / segmentDuration\n };\n },\n\n /**\n * Returns the current live window range of available segments for a dynamic MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n dynamic(attributes) {\n const {\n NOW,\n clientOffset,\n availabilityStartTime,\n timescale = 1,\n duration,\n periodStart = 0,\n minimumUpdatePeriod = 0,\n timeShiftBufferDepth = Infinity\n } = attributes;\n const endNumber = parseEndNumber(attributes.endNumber); // clientOffset is passed in at the top level of mpd-parser and is an offset calculated\n // after retrieving UTC server time.\n\n const now = (NOW + clientOffset) / 1000; // WC stands for Wall Clock.\n // Convert the period start time to EPOCH.\n\n const periodStartWC = availabilityStartTime + periodStart; // Period end in EPOCH is manifest's retrieval time + time until next update.\n\n const periodEndWC = now + minimumUpdatePeriod;\n const periodDuration = periodEndWC - periodStartWC;\n const segmentCount = Math.ceil(periodDuration * timescale / duration);\n const availableStart = Math.floor((now - periodStartWC - timeShiftBufferDepth) * timescale / duration);\n const availableEnd = Math.floor((now - periodStartWC) * timescale / duration);\n return {\n start: Math.max(0, availableStart),\n end: typeof endNumber === 'number' ? endNumber : Math.min(segmentCount, availableEnd)\n };\n }\n\n};\n/**\n * Maps a range of numbers to objects with information needed to build the corresponding\n * segment list\n *\n * @name toSegmentsCallback\n * @function\n * @param {number} number\n * Number of the segment\n * @param {number} index\n * Index of the number in the range list\n * @return {{ number: Number, duration: Number, timeline: Number, time: Number }}\n * Object with segment timing and duration info\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping a range of numbers to\n * information needed to build the segment list.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {toSegmentsCallback}\n * Callback map function\n */\n\nconst toSegments = attributes => number => {\n const {\n duration,\n timescale = 1,\n periodStart,\n startNumber = 1\n } = attributes;\n return {\n number: startNumber + number,\n duration: duration / timescale,\n timeline: periodStart,\n time: number * duration\n };\n};\n/**\n * Returns a list of objects containing segment timing and duration info used for\n * building the list of segments. This uses the @duration attribute specified\n * in the MPD manifest to derive the range of segments.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\nconst parseByDuration = attributes => {\n const {\n type,\n duration,\n timescale = 1,\n periodDuration,\n sourceDuration\n } = attributes;\n const {\n start,\n end\n } = segmentRange[type](attributes);\n const segments = range(start, end).map(toSegments(attributes));\n\n if (type === 'static') {\n const index = segments.length - 1; // section is either a period or the full source\n\n const sectionDuration = typeof periodDuration === 'number' ? periodDuration : sourceDuration; // final segment may be less than full segment duration\n\n segments[index].duration = sectionDuration - duration / timescale * index;\n }\n\n return segments;\n};\n\n/**\n * Translates SegmentBase into a set of segments.\n * (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @return {Object.} list of segments\n */\n\nconst segmentsFromBase = attributes => {\n const {\n baseUrl,\n initialization = {},\n sourceDuration,\n indexRange = '',\n periodStart,\n presentationTime,\n number = 0,\n duration\n } = attributes; // base url is required for SegmentBase to work, per spec (Section 5.3.9.2.1)\n\n if (!baseUrl) {\n throw new Error(errors.NO_BASE_URL);\n }\n\n const initSegment = urlTypeToSegment({\n baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n const segment = urlTypeToSegment({\n baseUrl,\n source: baseUrl,\n indexRange\n });\n segment.map = initSegment; // If there is a duration, use it, otherwise use the given duration of the source\n // (since SegmentBase is only for one total segment)\n\n if (duration) {\n const segmentTimeInfo = parseByDuration(attributes);\n\n if (segmentTimeInfo.length) {\n segment.duration = segmentTimeInfo[0].duration;\n segment.timeline = segmentTimeInfo[0].timeline;\n }\n } else if (sourceDuration) {\n segment.duration = sourceDuration;\n segment.timeline = periodStart;\n } // If presentation time is provided, these segments are being generated by SIDX\n // references, and should use the time provided. For the general case of SegmentBase,\n // there should only be one segment in the period, so its presentation time is the same\n // as its period start.\n\n\n segment.presentationTime = presentationTime || periodStart;\n segment.number = number;\n return [segment];\n};\n/**\n * Given a playlist, a sidx box, and a baseUrl, update the segment list of the playlist\n * according to the sidx information given.\n *\n * playlist.sidx has metadadata about the sidx where-as the sidx param\n * is the parsed sidx box itself.\n *\n * @param {Object} playlist the playlist to update the sidx information for\n * @param {Object} sidx the parsed sidx box\n * @return {Object} the playlist object with the updated sidx information\n */\n\nconst addSidxSegmentsToPlaylist$1 = (playlist, sidx, baseUrl) => {\n // Retain init segment information\n const initSegment = playlist.sidx.map ? playlist.sidx.map : null; // Retain source duration from initial main manifest parsing\n\n const sourceDuration = playlist.sidx.duration; // Retain source timeline\n\n const timeline = playlist.timeline || 0;\n const sidxByteRange = playlist.sidx.byterange;\n const sidxEnd = sidxByteRange.offset + sidxByteRange.length; // Retain timescale of the parsed sidx\n\n const timescale = sidx.timescale; // referenceType 1 refers to other sidx boxes\n\n const mediaReferences = sidx.references.filter(r => r.referenceType !== 1);\n const segments = [];\n const type = playlist.endList ? 'static' : 'dynamic';\n const periodStart = playlist.sidx.timeline;\n let presentationTime = periodStart;\n let number = playlist.mediaSequence || 0; // firstOffset is the offset from the end of the sidx box\n\n let startIndex; // eslint-disable-next-line\n\n if (typeof sidx.firstOffset === 'bigint') {\n startIndex = window.BigInt(sidxEnd) + sidx.firstOffset;\n } else {\n startIndex = sidxEnd + sidx.firstOffset;\n }\n\n for (let i = 0; i < mediaReferences.length; i++) {\n const reference = sidx.references[i]; // size of the referenced (sub)segment\n\n const size = reference.referencedSize; // duration of the referenced (sub)segment, in the timescale\n // this will be converted to seconds when generating segments\n\n const duration = reference.subsegmentDuration; // should be an inclusive range\n\n let endIndex; // eslint-disable-next-line\n\n if (typeof startIndex === 'bigint') {\n endIndex = startIndex + window.BigInt(size) - window.BigInt(1);\n } else {\n endIndex = startIndex + size - 1;\n }\n\n const indexRange = `${startIndex}-${endIndex}`;\n const attributes = {\n baseUrl,\n timescale,\n timeline,\n periodStart,\n presentationTime,\n number,\n duration,\n sourceDuration,\n indexRange,\n type\n };\n const segment = segmentsFromBase(attributes)[0];\n\n if (initSegment) {\n segment.map = initSegment;\n }\n\n segments.push(segment);\n\n if (typeof startIndex === 'bigint') {\n startIndex += window.BigInt(size);\n } else {\n startIndex += size;\n }\n\n presentationTime += duration / timescale;\n number++;\n }\n\n playlist.segments = segments;\n return playlist;\n};\n\nconst SUPPORTED_MEDIA_TYPES = ['AUDIO', 'SUBTITLES']; // allow one 60fps frame as leniency (arbitrarily chosen)\n\nconst TIME_FUDGE = 1 / 60;\n/**\n * Given a list of timelineStarts, combines, dedupes, and sorts them.\n *\n * @param {TimelineStart[]} timelineStarts - list of timeline starts\n *\n * @return {TimelineStart[]} the combined and deduped timeline starts\n */\n\nconst getUniqueTimelineStarts = timelineStarts => {\n return union(timelineStarts, ({\n timeline\n }) => timeline).sort((a, b) => a.timeline > b.timeline ? 1 : -1);\n};\n/**\n * Finds the playlist with the matching NAME attribute.\n *\n * @param {Array} playlists - playlists to search through\n * @param {string} name - the NAME attribute to search for\n *\n * @return {Object|null} the matching playlist object, or null\n */\n\nconst findPlaylistWithName = (playlists, name) => {\n for (let i = 0; i < playlists.length; i++) {\n if (playlists[i].attributes.NAME === name) {\n return playlists[i];\n }\n }\n\n return null;\n};\n/**\n * Gets a flattened array of media group playlists.\n *\n * @param {Object} manifest - the main manifest object\n *\n * @return {Array} the media group playlists\n */\n\nconst getMediaGroupPlaylists = manifest => {\n let mediaGroupPlaylists = [];\n forEachMediaGroup(manifest, SUPPORTED_MEDIA_TYPES, (properties, type, group, label) => {\n mediaGroupPlaylists = mediaGroupPlaylists.concat(properties.playlists || []);\n });\n return mediaGroupPlaylists;\n};\n/**\n * Updates the playlist's media sequence numbers.\n *\n * @param {Object} config - options object\n * @param {Object} config.playlist - the playlist to update\n * @param {number} config.mediaSequence - the mediaSequence number to start with\n */\n\nconst updateMediaSequenceForPlaylist = ({\n playlist,\n mediaSequence\n}) => {\n playlist.mediaSequence = mediaSequence;\n playlist.segments.forEach((segment, index) => {\n segment.number = playlist.mediaSequence + index;\n });\n};\n/**\n * Updates the media and discontinuity sequence numbers of newPlaylists given oldPlaylists\n * and a complete list of timeline starts.\n *\n * If no matching playlist is found, only the discontinuity sequence number of the playlist\n * will be updated.\n *\n * Since early available timelines are not supported, at least one segment must be present.\n *\n * @param {Object} config - options object\n * @param {Object[]} oldPlaylists - the old playlists to use as a reference\n * @param {Object[]} newPlaylists - the new playlists to update\n * @param {Object} timelineStarts - all timelineStarts seen in the stream to this point\n */\n\nconst updateSequenceNumbers = ({\n oldPlaylists,\n newPlaylists,\n timelineStarts\n}) => {\n newPlaylists.forEach(playlist => {\n playlist.discontinuitySequence = timelineStarts.findIndex(function ({\n timeline\n }) {\n return timeline === playlist.timeline;\n }); // Playlists NAMEs come from DASH Representation IDs, which are mandatory\n // (see ISO_23009-1-2012 5.3.5.2).\n //\n // If the same Representation existed in a prior Period, it will retain the same NAME.\n\n const oldPlaylist = findPlaylistWithName(oldPlaylists, playlist.attributes.NAME);\n\n if (!oldPlaylist) {\n // Since this is a new playlist, the media sequence values can start from 0 without\n // consequence.\n return;\n } // TODO better support for live SIDX\n //\n // As of this writing, mpd-parser does not support multiperiod SIDX (in live or VOD).\n // This is evident by a playlist only having a single SIDX reference. In a multiperiod\n // playlist there would need to be multiple SIDX references. In addition, live SIDX is\n // not supported when the SIDX properties change on refreshes.\n //\n // In the future, if support needs to be added, the merging logic here can be called\n // after SIDX references are resolved. For now, exit early to prevent exceptions being\n // thrown due to undefined references.\n\n\n if (playlist.sidx) {\n return;\n } // Since we don't yet support early available timelines, we don't need to support\n // playlists with no segments.\n\n\n const firstNewSegment = playlist.segments[0];\n const oldMatchingSegmentIndex = oldPlaylist.segments.findIndex(function (oldSegment) {\n return Math.abs(oldSegment.presentationTime - firstNewSegment.presentationTime) < TIME_FUDGE;\n }); // No matching segment from the old playlist means the entire playlist was refreshed.\n // In this case the media sequence should account for this update, and the new segments\n // should be marked as discontinuous from the prior content, since the last prior\n // timeline was removed.\n\n if (oldMatchingSegmentIndex === -1) {\n updateMediaSequenceForPlaylist({\n playlist,\n mediaSequence: oldPlaylist.mediaSequence + oldPlaylist.segments.length\n });\n playlist.segments[0].discontinuity = true;\n playlist.discontinuityStarts.unshift(0); // No matching segment does not necessarily mean there's missing content.\n //\n // If the new playlist's timeline is the same as the last seen segment's timeline,\n // then a discontinuity can be added to identify that there's potentially missing\n // content. If there's no missing content, the discontinuity should still be rather\n // harmless. It's possible that if segment durations are accurate enough, that the\n // existence of a gap can be determined using the presentation times and durations,\n // but if the segment timing info is off, it may introduce more problems than simply\n // adding the discontinuity.\n //\n // If the new playlist's timeline is different from the last seen segment's timeline,\n // then a discontinuity can be added to identify that this is the first seen segment\n // of a new timeline. However, the logic at the start of this function that\n // determined the disconinuity sequence by timeline index is now off by one (the\n // discontinuity of the newest timeline hasn't yet fallen off the manifest...since\n // we added it), so the disconinuity sequence must be decremented.\n //\n // A period may also have a duration of zero, so the case of no segments is handled\n // here even though we don't yet support early available periods.\n\n if (!oldPlaylist.segments.length && playlist.timeline > oldPlaylist.timeline || oldPlaylist.segments.length && playlist.timeline > oldPlaylist.segments[oldPlaylist.segments.length - 1].timeline) {\n playlist.discontinuitySequence--;\n }\n\n return;\n } // If the first segment matched with a prior segment on a discontinuity (it's matching\n // on the first segment of a period), then the discontinuitySequence shouldn't be the\n // timeline's matching one, but instead should be the one prior, and the first segment\n // of the new manifest should be marked with a discontinuity.\n //\n // The reason for this special case is that discontinuity sequence shows how many\n // discontinuities have fallen off of the playlist, and discontinuities are marked on\n // the first segment of a new \"timeline.\" Because of this, while DASH will retain that\n // Period while the \"timeline\" exists, HLS keeps track of it via the discontinuity\n // sequence, and that first segment is an indicator, but can be removed before that\n // timeline is gone.\n\n\n const oldMatchingSegment = oldPlaylist.segments[oldMatchingSegmentIndex];\n\n if (oldMatchingSegment.discontinuity && !firstNewSegment.discontinuity) {\n firstNewSegment.discontinuity = true;\n playlist.discontinuityStarts.unshift(0);\n playlist.discontinuitySequence--;\n }\n\n updateMediaSequenceForPlaylist({\n playlist,\n mediaSequence: oldPlaylist.segments[oldMatchingSegmentIndex].number\n });\n });\n};\n/**\n * Given an old parsed manifest object and a new parsed manifest object, updates the\n * sequence and timing values within the new manifest to ensure that it lines up with the\n * old.\n *\n * @param {Array} oldManifest - the old main manifest object\n * @param {Array} newManifest - the new main manifest object\n *\n * @return {Object} the updated new manifest object\n */\n\nconst positionManifestOnTimeline = ({\n oldManifest,\n newManifest\n}) => {\n // Starting from v4.1.2 of the IOP, section 4.4.3.3 states:\n //\n // \"MPD@availabilityStartTime and Period@start shall not be changed over MPD updates.\"\n //\n // This was added from https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/160\n //\n // Because of this change, and the difficulty of supporting periods with changing start\n // times, periods with changing start times are not supported. This makes the logic much\n // simpler, since periods with the same start time can be considerred the same period\n // across refreshes.\n //\n // To give an example as to the difficulty of handling periods where the start time may\n // change, if a single period manifest is refreshed with another manifest with a single\n // period, and both the start and end times are increased, then the only way to determine\n // if it's a new period or an old one that has changed is to look through the segments of\n // each playlist and determine the presentation time bounds to find a match. In addition,\n // if the period start changed to exceed the old period end, then there would be no\n // match, and it would not be possible to determine whether the refreshed period is a new\n // one or the old one.\n const oldPlaylists = oldManifest.playlists.concat(getMediaGroupPlaylists(oldManifest));\n const newPlaylists = newManifest.playlists.concat(getMediaGroupPlaylists(newManifest)); // Save all seen timelineStarts to the new manifest. Although this potentially means that\n // there's a \"memory leak\" in that it will never stop growing, in reality, only a couple\n // of properties are saved for each seen Period. Even long running live streams won't\n // generate too many Periods, unless the stream is watched for decades. In the future,\n // this can be optimized by mapping to discontinuity sequence numbers for each timeline,\n // but it may not become an issue, and the additional info can be useful for debugging.\n\n newManifest.timelineStarts = getUniqueTimelineStarts([oldManifest.timelineStarts, newManifest.timelineStarts]);\n updateSequenceNumbers({\n oldPlaylists,\n newPlaylists,\n timelineStarts: newManifest.timelineStarts\n });\n return newManifest;\n};\n\nconst generateSidxKey = sidx => sidx && sidx.uri + '-' + byteRangeToString(sidx.byterange);\n\nconst mergeDiscontiguousPlaylists = playlists => {\n const mergedPlaylists = values(playlists.reduce((acc, playlist) => {\n // assuming playlist IDs are the same across periods\n // TODO: handle multiperiod where representation sets are not the same\n // across periods\n const name = playlist.attributes.id + (playlist.attributes.lang || '');\n\n if (!acc[name]) {\n // First Period\n acc[name] = playlist;\n acc[name].attributes.timelineStarts = [];\n } else {\n // Subsequent Periods\n if (playlist.segments) {\n // first segment of subsequent periods signal a discontinuity\n if (playlist.segments[0]) {\n playlist.segments[0].discontinuity = true;\n }\n\n acc[name].segments.push(...playlist.segments);\n } // bubble up contentProtection, this assumes all DRM content\n // has the same contentProtection\n\n\n if (playlist.attributes.contentProtection) {\n acc[name].attributes.contentProtection = playlist.attributes.contentProtection;\n }\n }\n\n acc[name].attributes.timelineStarts.push({\n // Although they represent the same number, it's important to have both to make it\n // compatible with HLS potentially having a similar attribute.\n start: playlist.attributes.periodStart,\n timeline: playlist.attributes.periodStart\n });\n return acc;\n }, {}));\n return mergedPlaylists.map(playlist => {\n playlist.discontinuityStarts = findIndexes(playlist.segments || [], 'discontinuity');\n return playlist;\n });\n};\n\nconst addSidxSegmentsToPlaylist = (playlist, sidxMapping) => {\n const sidxKey = generateSidxKey(playlist.sidx);\n const sidxMatch = sidxKey && sidxMapping[sidxKey] && sidxMapping[sidxKey].sidx;\n\n if (sidxMatch) {\n addSidxSegmentsToPlaylist$1(playlist, sidxMatch, playlist.sidx.resolvedUri);\n }\n\n return playlist;\n};\nconst addSidxSegmentsToPlaylists = (playlists, sidxMapping = {}) => {\n if (!Object.keys(sidxMapping).length) {\n return playlists;\n }\n\n for (const i in playlists) {\n playlists[i] = addSidxSegmentsToPlaylist(playlists[i], sidxMapping);\n }\n\n return playlists;\n};\nconst formatAudioPlaylist = ({\n attributes,\n segments,\n sidx,\n mediaSequence,\n discontinuitySequence,\n discontinuityStarts\n}, isAudioOnly) => {\n const playlist = {\n attributes: {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n CODECS: attributes.codecs,\n ['PROGRAM-ID']: 1\n },\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: '',\n targetDuration: attributes.duration,\n discontinuitySequence,\n discontinuityStarts,\n timelineStarts: attributes.timelineStarts,\n mediaSequence,\n segments\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n if (isAudioOnly) {\n playlist.attributes.AUDIO = 'audio';\n playlist.attributes.SUBTITLES = 'subs';\n }\n\n return playlist;\n};\nconst formatVttPlaylist = ({\n attributes,\n segments,\n mediaSequence,\n discontinuityStarts,\n discontinuitySequence\n}) => {\n if (typeof segments === 'undefined') {\n // vtt tracks may use single file in BaseURL\n segments = [{\n uri: attributes.baseUrl,\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n duration: attributes.sourceDuration,\n number: 0\n }]; // targetDuration should be the same duration as the only segment\n\n attributes.duration = attributes.sourceDuration;\n }\n\n const m3u8Attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n ['PROGRAM-ID']: 1\n };\n\n if (attributes.codecs) {\n m3u8Attributes.CODECS = attributes.codecs;\n }\n\n return {\n attributes: m3u8Attributes,\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n timelineStarts: attributes.timelineStarts,\n discontinuityStarts,\n discontinuitySequence,\n mediaSequence,\n segments\n };\n};\nconst organizeAudioPlaylists = (playlists, sidxMapping = {}, isAudioOnly = false) => {\n let mainPlaylist;\n const formattedPlaylists = playlists.reduce((a, playlist) => {\n const role = playlist.attributes.role && playlist.attributes.role.value || '';\n const language = playlist.attributes.lang || '';\n let label = playlist.attributes.label || 'main';\n\n if (language && !playlist.attributes.label) {\n const roleLabel = role ? ` (${role})` : '';\n label = `${playlist.attributes.lang}${roleLabel}`;\n }\n\n if (!a[label]) {\n a[label] = {\n language,\n autoselect: true,\n default: role === 'main',\n playlists: [],\n uri: ''\n };\n }\n\n const formatted = addSidxSegmentsToPlaylist(formatAudioPlaylist(playlist, isAudioOnly), sidxMapping);\n a[label].playlists.push(formatted);\n\n if (typeof mainPlaylist === 'undefined' && role === 'main') {\n mainPlaylist = playlist;\n mainPlaylist.default = true;\n }\n\n return a;\n }, {}); // if no playlists have role \"main\", mark the first as main\n\n if (!mainPlaylist) {\n const firstLabel = Object.keys(formattedPlaylists)[0];\n formattedPlaylists[firstLabel].default = true;\n }\n\n return formattedPlaylists;\n};\nconst organizeVttPlaylists = (playlists, sidxMapping = {}) => {\n return playlists.reduce((a, playlist) => {\n const label = playlist.attributes.lang || 'text';\n\n if (!a[label]) {\n a[label] = {\n language: label,\n default: false,\n autoselect: false,\n playlists: [],\n uri: ''\n };\n }\n\n a[label].playlists.push(addSidxSegmentsToPlaylist(formatVttPlaylist(playlist), sidxMapping));\n return a;\n }, {});\n};\n\nconst organizeCaptionServices = captionServices => captionServices.reduce((svcObj, svc) => {\n if (!svc) {\n return svcObj;\n }\n\n svc.forEach(service => {\n const {\n channel,\n language\n } = service;\n svcObj[language] = {\n autoselect: false,\n default: false,\n instreamId: channel,\n language\n };\n\n if (service.hasOwnProperty('aspectRatio')) {\n svcObj[language].aspectRatio = service.aspectRatio;\n }\n\n if (service.hasOwnProperty('easyReader')) {\n svcObj[language].easyReader = service.easyReader;\n }\n\n if (service.hasOwnProperty('3D')) {\n svcObj[language]['3D'] = service['3D'];\n }\n });\n return svcObj;\n}, {});\n\nconst formatVideoPlaylist = ({\n attributes,\n segments,\n sidx,\n discontinuityStarts\n}) => {\n const playlist = {\n attributes: {\n NAME: attributes.id,\n AUDIO: 'audio',\n SUBTITLES: 'subs',\n RESOLUTION: {\n width: attributes.width,\n height: attributes.height\n },\n CODECS: attributes.codecs,\n BANDWIDTH: attributes.bandwidth,\n ['PROGRAM-ID']: 1\n },\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: '',\n targetDuration: attributes.duration,\n discontinuityStarts,\n timelineStarts: attributes.timelineStarts,\n segments\n };\n\n if (attributes.frameRate) {\n playlist.attributes['FRAME-RATE'] = attributes.frameRate;\n }\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n return playlist;\n};\n\nconst videoOnly = ({\n attributes\n}) => attributes.mimeType === 'video/mp4' || attributes.mimeType === 'video/webm' || attributes.contentType === 'video';\n\nconst audioOnly = ({\n attributes\n}) => attributes.mimeType === 'audio/mp4' || attributes.mimeType === 'audio/webm' || attributes.contentType === 'audio';\n\nconst vttOnly = ({\n attributes\n}) => attributes.mimeType === 'text/vtt' || attributes.contentType === 'text';\n/**\n * Contains start and timeline properties denoting a timeline start. For DASH, these will\n * be the same number.\n *\n * @typedef {Object} TimelineStart\n * @property {number} start - the start time of the timeline\n * @property {number} timeline - the timeline number\n */\n\n/**\n * Adds appropriate media and discontinuity sequence values to the segments and playlists.\n *\n * Throughout mpd-parser, the `number` attribute is used in relation to `startNumber`, a\n * DASH specific attribute used in constructing segment URI's from templates. However, from\n * an HLS perspective, the `number` attribute on a segment would be its `mediaSequence`\n * value, which should start at the original media sequence value (or 0) and increment by 1\n * for each segment thereafter. Since DASH's `startNumber` values are independent per\n * period, it doesn't make sense to use it for `number`. Instead, assume everything starts\n * from a 0 mediaSequence value and increment from there.\n *\n * Note that VHS currently doesn't use the `number` property, but it can be helpful for\n * debugging and making sense of the manifest.\n *\n * For live playlists, to account for values increasing in manifests when periods are\n * removed on refreshes, merging logic should be used to update the numbers to their\n * appropriate values (to ensure they're sequential and increasing).\n *\n * @param {Object[]} playlists - the playlists to update\n * @param {TimelineStart[]} timelineStarts - the timeline starts for the manifest\n */\n\n\nconst addMediaSequenceValues = (playlists, timelineStarts) => {\n // increment all segments sequentially\n playlists.forEach(playlist => {\n playlist.mediaSequence = 0;\n playlist.discontinuitySequence = timelineStarts.findIndex(function ({\n timeline\n }) {\n return timeline === playlist.timeline;\n });\n\n if (!playlist.segments) {\n return;\n }\n\n playlist.segments.forEach((segment, index) => {\n segment.number = index;\n });\n });\n};\n/**\n * Given a media group object, flattens all playlists within the media group into a single\n * array.\n *\n * @param {Object} mediaGroupObject - the media group object\n *\n * @return {Object[]}\n * The media group playlists\n */\n\nconst flattenMediaGroupPlaylists = mediaGroupObject => {\n if (!mediaGroupObject) {\n return [];\n }\n\n return Object.keys(mediaGroupObject).reduce((acc, label) => {\n const labelContents = mediaGroupObject[label];\n return acc.concat(labelContents.playlists);\n }, []);\n};\nconst toM3u8 = ({\n dashPlaylists,\n locations,\n sidxMapping = {},\n previousManifest\n}) => {\n if (!dashPlaylists.length) {\n return {};\n } // grab all main manifest attributes\n\n\n const {\n sourceDuration: duration,\n type,\n suggestedPresentationDelay,\n minimumUpdatePeriod\n } = dashPlaylists[0].attributes;\n const videoPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(videoOnly)).map(formatVideoPlaylist);\n const audioPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(audioOnly));\n const vttPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(vttOnly));\n const captions = dashPlaylists.map(playlist => playlist.attributes.captionServices).filter(Boolean);\n const manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: [],\n endList: true,\n mediaGroups: {\n AUDIO: {},\n VIDEO: {},\n ['CLOSED-CAPTIONS']: {},\n SUBTITLES: {}\n },\n uri: '',\n duration,\n playlists: addSidxSegmentsToPlaylists(videoPlaylists, sidxMapping)\n };\n\n if (minimumUpdatePeriod >= 0) {\n manifest.minimumUpdatePeriod = minimumUpdatePeriod * 1000;\n }\n\n if (locations) {\n manifest.locations = locations;\n }\n\n if (type === 'dynamic') {\n manifest.suggestedPresentationDelay = suggestedPresentationDelay;\n }\n\n const isAudioOnly = manifest.playlists.length === 0;\n const organizedAudioGroup = audioPlaylists.length ? organizeAudioPlaylists(audioPlaylists, sidxMapping, isAudioOnly) : null;\n const organizedVttGroup = vttPlaylists.length ? organizeVttPlaylists(vttPlaylists, sidxMapping) : null;\n const formattedPlaylists = videoPlaylists.concat(flattenMediaGroupPlaylists(organizedAudioGroup), flattenMediaGroupPlaylists(organizedVttGroup));\n const playlistTimelineStarts = formattedPlaylists.map(({\n timelineStarts\n }) => timelineStarts);\n manifest.timelineStarts = getUniqueTimelineStarts(playlistTimelineStarts);\n addMediaSequenceValues(formattedPlaylists, manifest.timelineStarts);\n\n if (organizedAudioGroup) {\n manifest.mediaGroups.AUDIO.audio = organizedAudioGroup;\n }\n\n if (organizedVttGroup) {\n manifest.mediaGroups.SUBTITLES.subs = organizedVttGroup;\n }\n\n if (captions.length) {\n manifest.mediaGroups['CLOSED-CAPTIONS'].cc = organizeCaptionServices(captions);\n }\n\n if (previousManifest) {\n return positionManifestOnTimeline({\n oldManifest: previousManifest,\n newManifest: manifest\n });\n }\n\n return manifest;\n};\n\n/**\n * Calculates the R (repetition) value for a live stream (for the final segment\n * in a manifest where the r value is negative 1)\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {number} time\n * current time (typically the total time up until the final segment)\n * @param {number} duration\n * duration property for the given \n *\n * @return {number}\n * R value to reach the end of the given period\n */\nconst getLiveRValue = (attributes, time, duration) => {\n const {\n NOW,\n clientOffset,\n availabilityStartTime,\n timescale = 1,\n periodStart = 0,\n minimumUpdatePeriod = 0\n } = attributes;\n const now = (NOW + clientOffset) / 1000;\n const periodStartWC = availabilityStartTime + periodStart;\n const periodEndWC = now + minimumUpdatePeriod;\n const periodDuration = periodEndWC - periodStartWC;\n return Math.ceil((periodDuration * timescale - time) / duration);\n};\n/**\n * Uses information provided by SegmentTemplate.SegmentTimeline to determine segment\n * timing and duration\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n *\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\n\nconst parseByTimeline = (attributes, segmentTimeline) => {\n const {\n type,\n minimumUpdatePeriod = 0,\n media = '',\n sourceDuration,\n timescale = 1,\n startNumber = 1,\n periodStart: timeline\n } = attributes;\n const segments = [];\n let time = -1;\n\n for (let sIndex = 0; sIndex < segmentTimeline.length; sIndex++) {\n const S = segmentTimeline[sIndex];\n const duration = S.d;\n const repeat = S.r || 0;\n const segmentTime = S.t || 0;\n\n if (time < 0) {\n // first segment\n time = segmentTime;\n }\n\n if (segmentTime && segmentTime > time) {\n // discontinuity\n // TODO: How to handle this type of discontinuity\n // timeline++ here would treat it like HLS discontuity and content would\n // get appended without gap\n // E.G.\n // \n // \n // \n // \n // would have $Time$ values of [0, 1, 2, 5]\n // should this be appened at time positions [0, 1, 2, 3],(#EXT-X-DISCONTINUITY)\n // or [0, 1, 2, gap, gap, 5]? (#EXT-X-GAP)\n // does the value of sourceDuration consider this when calculating arbitrary\n // negative @r repeat value?\n // E.G. Same elements as above with this added at the end\n // \n // with a sourceDuration of 10\n // Would the 2 gaps be included in the time duration calculations resulting in\n // 8 segments with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9] or 10 segments\n // with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9, 10, 11] ?\n time = segmentTime;\n }\n\n let count;\n\n if (repeat < 0) {\n const nextS = sIndex + 1;\n\n if (nextS === segmentTimeline.length) {\n // last segment\n if (type === 'dynamic' && minimumUpdatePeriod > 0 && media.indexOf('$Number$') > 0) {\n count = getLiveRValue(attributes, time, duration);\n } else {\n // TODO: This may be incorrect depending on conclusion of TODO above\n count = (sourceDuration * timescale - time) / duration;\n }\n } else {\n count = (segmentTimeline[nextS].t - time) / duration;\n }\n } else {\n count = repeat + 1;\n }\n\n const end = startNumber + segments.length + count;\n let number = startNumber + segments.length;\n\n while (number < end) {\n segments.push({\n number,\n duration: duration / timescale,\n time,\n timeline\n });\n time += duration;\n number++;\n }\n }\n\n return segments;\n};\n\nconst identifierPattern = /\\$([A-z]*)(?:(%0)([0-9]+)d)?\\$/g;\n/**\n * Replaces template identifiers with corresponding values. To be used as the callback\n * for String.prototype.replace\n *\n * @name replaceCallback\n * @function\n * @param {string} match\n * Entire match of identifier\n * @param {string} identifier\n * Name of matched identifier\n * @param {string} format\n * Format tag string. Its presence indicates that padding is expected\n * @param {string} width\n * Desired length of the replaced value. Values less than this width shall be left\n * zero padded\n * @return {string}\n * Replacement for the matched identifier\n */\n\n/**\n * Returns a function to be used as a callback for String.prototype.replace to replace\n * template identifiers\n *\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {replaceCallback}\n * Callback to be used with String.prototype.replace to replace identifiers\n */\n\nconst identifierReplacement = values => (match, identifier, format, width) => {\n if (match === '$$') {\n // escape sequence\n return '$';\n }\n\n if (typeof values[identifier] === 'undefined') {\n return match;\n }\n\n const value = '' + values[identifier];\n\n if (identifier === 'RepresentationID') {\n // Format tag shall not be present with RepresentationID\n return value;\n }\n\n if (!format) {\n width = 1;\n } else {\n width = parseInt(width, 10);\n }\n\n if (value.length >= width) {\n return value;\n }\n\n return `${new Array(width - value.length + 1).join('0')}${value}`;\n};\n/**\n * Constructs a segment url from a template string\n *\n * @param {string} url\n * Template string to construct url from\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {string}\n * Segment url with identifiers replaced\n */\n\nconst constructTemplateUrl = (url, values) => url.replace(identifierPattern, identifierReplacement(values));\n/**\n * Generates a list of objects containing timing and duration information about each\n * segment needed to generate segment uris and the complete segment object\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\nconst parseTemplateInfo = (attributes, segmentTimeline) => {\n if (!attributes.duration && !segmentTimeline) {\n // if neither @duration or SegmentTimeline are present, then there shall be exactly\n // one media segment\n return [{\n number: attributes.startNumber || 1,\n duration: attributes.sourceDuration,\n time: 0,\n timeline: attributes.periodStart\n }];\n }\n\n if (attributes.duration) {\n return parseByDuration(attributes);\n }\n\n return parseByTimeline(attributes, segmentTimeline);\n};\n/**\n * Generates a list of segments using information provided by the SegmentTemplate element\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object[]}\n * List of segment objects\n */\n\nconst segmentsFromTemplate = (attributes, segmentTimeline) => {\n const templateValues = {\n RepresentationID: attributes.id,\n Bandwidth: attributes.bandwidth || 0\n };\n const {\n initialization = {\n sourceURL: '',\n range: ''\n }\n } = attributes;\n const mapSegment = urlTypeToSegment({\n baseUrl: attributes.baseUrl,\n source: constructTemplateUrl(initialization.sourceURL, templateValues),\n range: initialization.range\n });\n const segments = parseTemplateInfo(attributes, segmentTimeline);\n return segments.map(segment => {\n templateValues.Number = segment.number;\n templateValues.Time = segment.time;\n const uri = constructTemplateUrl(attributes.media || '', templateValues); // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n const timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n const presentationTimeOffset = attributes.presentationTimeOffset || 0;\n const presentationTime = // Even if the @t attribute is not specified for the segment, segment.time is\n // calculated in mpd-parser prior to this, so it's assumed to be available.\n attributes.periodStart + (segment.time - presentationTimeOffset) / timescale;\n const map = {\n uri,\n timeline: segment.timeline,\n duration: segment.duration,\n resolvedUri: resolveUrl(attributes.baseUrl || '', uri),\n map: mapSegment,\n number: segment.number,\n presentationTime\n };\n return map;\n });\n};\n\n/**\n * Converts a (of type URLType from the DASH spec 5.3.9.2 Table 14)\n * to an object that matches the output of a segment in videojs/mpd-parser\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object} segmentUrl\n * node to translate into a segment object\n * @return {Object} translated segment object\n */\n\nconst SegmentURLToSegmentObject = (attributes, segmentUrl) => {\n const {\n baseUrl,\n initialization = {}\n } = attributes;\n const initSegment = urlTypeToSegment({\n baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n const segment = urlTypeToSegment({\n baseUrl,\n source: segmentUrl.media,\n range: segmentUrl.mediaRange\n });\n segment.map = initSegment;\n return segment;\n};\n/**\n * Generates a list of segments using information provided by the SegmentList element\n * SegmentList (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object.} list of segments\n */\n\n\nconst segmentsFromList = (attributes, segmentTimeline) => {\n const {\n duration,\n segmentUrls = [],\n periodStart\n } = attributes; // Per spec (5.3.9.2.1) no way to determine segment duration OR\n // if both SegmentTimeline and @duration are defined, it is outside of spec.\n\n if (!duration && !segmentTimeline || duration && segmentTimeline) {\n throw new Error(errors.SEGMENT_TIME_UNSPECIFIED);\n }\n\n const segmentUrlMap = segmentUrls.map(segmentUrlObject => SegmentURLToSegmentObject(attributes, segmentUrlObject));\n let segmentTimeInfo;\n\n if (duration) {\n segmentTimeInfo = parseByDuration(attributes);\n }\n\n if (segmentTimeline) {\n segmentTimeInfo = parseByTimeline(attributes, segmentTimeline);\n }\n\n const segments = segmentTimeInfo.map((segmentTime, index) => {\n if (segmentUrlMap[index]) {\n const segment = segmentUrlMap[index]; // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n const timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n const presentationTimeOffset = attributes.presentationTimeOffset || 0;\n segment.timeline = segmentTime.timeline;\n segment.duration = segmentTime.duration;\n segment.number = segmentTime.number;\n segment.presentationTime = periodStart + (segmentTime.time - presentationTimeOffset) / timescale;\n return segment;\n } // Since we're mapping we should get rid of any blank segments (in case\n // the given SegmentTimeline is handling for more elements than we have\n // SegmentURLs for).\n\n }).filter(segment => segment);\n return segments;\n};\n\nconst generateSegments = ({\n attributes,\n segmentInfo\n}) => {\n let segmentAttributes;\n let segmentsFn;\n\n if (segmentInfo.template) {\n segmentsFn = segmentsFromTemplate;\n segmentAttributes = merge(attributes, segmentInfo.template);\n } else if (segmentInfo.base) {\n segmentsFn = segmentsFromBase;\n segmentAttributes = merge(attributes, segmentInfo.base);\n } else if (segmentInfo.list) {\n segmentsFn = segmentsFromList;\n segmentAttributes = merge(attributes, segmentInfo.list);\n }\n\n const segmentsInfo = {\n attributes\n };\n\n if (!segmentsFn) {\n return segmentsInfo;\n }\n\n const segments = segmentsFn(segmentAttributes, segmentInfo.segmentTimeline); // The @duration attribute will be used to determin the playlist's targetDuration which\n // must be in seconds. Since we've generated the segment list, we no longer need\n // @duration to be in @timescale units, so we can convert it here.\n\n if (segmentAttributes.duration) {\n const {\n duration,\n timescale = 1\n } = segmentAttributes;\n segmentAttributes.duration = duration / timescale;\n } else if (segments.length) {\n // if there is no @duration attribute, use the largest segment duration as\n // as target duration\n segmentAttributes.duration = segments.reduce((max, segment) => {\n return Math.max(max, Math.ceil(segment.duration));\n }, 0);\n } else {\n segmentAttributes.duration = 0;\n }\n\n segmentsInfo.attributes = segmentAttributes;\n segmentsInfo.segments = segments; // This is a sidx box without actual segment information\n\n if (segmentInfo.base && segmentAttributes.indexRange) {\n segmentsInfo.sidx = segments[0];\n segmentsInfo.segments = [];\n }\n\n return segmentsInfo;\n};\nconst toPlaylists = representations => representations.map(generateSegments);\n\nconst findChildren = (element, name) => from(element.childNodes).filter(({\n tagName\n}) => tagName === name);\nconst getContent = element => element.textContent.trim();\n\n/**\n * Converts the provided string that may contain a division operation to a number.\n *\n * @param {string} value - the provided string value\n *\n * @return {number} the parsed string value\n */\nconst parseDivisionValue = value => {\n return parseFloat(value.split('/').reduce((prev, current) => prev / current));\n};\n\nconst parseDuration = str => {\n const SECONDS_IN_YEAR = 365 * 24 * 60 * 60;\n const SECONDS_IN_MONTH = 30 * 24 * 60 * 60;\n const SECONDS_IN_DAY = 24 * 60 * 60;\n const SECONDS_IN_HOUR = 60 * 60;\n const SECONDS_IN_MIN = 60; // P10Y10M10DT10H10M10.1S\n\n const durationRegex = /P(?:(\\d*)Y)?(?:(\\d*)M)?(?:(\\d*)D)?(?:T(?:(\\d*)H)?(?:(\\d*)M)?(?:([\\d.]*)S)?)?/;\n const match = durationRegex.exec(str);\n\n if (!match) {\n return 0;\n }\n\n const [year, month, day, hour, minute, second] = match.slice(1);\n return parseFloat(year || 0) * SECONDS_IN_YEAR + parseFloat(month || 0) * SECONDS_IN_MONTH + parseFloat(day || 0) * SECONDS_IN_DAY + parseFloat(hour || 0) * SECONDS_IN_HOUR + parseFloat(minute || 0) * SECONDS_IN_MIN + parseFloat(second || 0);\n};\nconst parseDate = str => {\n // Date format without timezone according to ISO 8601\n // YYY-MM-DDThh:mm:ss.ssssss\n const dateRegex = /^\\d+-\\d+-\\d+T\\d+:\\d+:\\d+(\\.\\d+)?$/; // If the date string does not specifiy a timezone, we must specifiy UTC. This is\n // expressed by ending with 'Z'\n\n if (dateRegex.test(str)) {\n str += 'Z';\n }\n\n return Date.parse(str);\n};\n\nconst parsers = {\n /**\n * Specifies the duration of the entire Media Presentation. Format is a duration string\n * as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n mediaPresentationDuration(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the Segment availability start time for all Segments referred to in this\n * MPD. For a dynamic manifest, it specifies the anchor for the earliest availability\n * time. Format is a date string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The date as seconds from unix epoch\n */\n availabilityStartTime(value) {\n return parseDate(value) / 1000;\n },\n\n /**\n * Specifies the smallest period between potential changes to the MPD. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n minimumUpdatePeriod(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the suggested presentation delay. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n suggestedPresentationDelay(value) {\n return parseDuration(value);\n },\n\n /**\n * specifices the type of mpd. Can be either \"static\" or \"dynamic\"\n *\n * @param {string} value\n * value of attribute as a string\n *\n * @return {string}\n * The type as a string\n */\n type(value) {\n return value;\n },\n\n /**\n * Specifies the duration of the smallest time shifting buffer for any Representation\n * in the MPD. Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n timeShiftBufferDepth(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the PeriodStart time of the Period relative to the availabilityStarttime.\n * Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n start(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the width of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed width\n */\n width(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the height of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed height\n */\n height(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the bitrate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed bandwidth\n */\n bandwidth(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the frame rate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed frame rate\n */\n frameRate(value) {\n return parseDivisionValue(value);\n },\n\n /**\n * Specifies the number of the first Media Segment in this Representation in the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n startNumber(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the timescale in units per seconds\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed timescale\n */\n timescale(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the presentationTimeOffset.\n *\n * @param {string} value\n * value of the attribute as a string\n *\n * @return {number}\n * The parsed presentationTimeOffset\n */\n presentationTimeOffset(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the constant approximate Segment duration\n * NOTE: The element also contains an @duration attribute. This duration\n * specifies the duration of the Period. This attribute is currently not\n * supported by the rest of the parser, however we still check for it to prevent\n * errors.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n duration(value) {\n const parsedValue = parseInt(value, 10);\n\n if (isNaN(parsedValue)) {\n return parseDuration(value);\n }\n\n return parsedValue;\n },\n\n /**\n * Specifies the Segment duration, in units of the value of the @timescale.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n d(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the MPD start time, in @timescale units, the first Segment in the series\n * starts relative to the beginning of the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed time\n */\n t(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the repeat count of the number of following contiguous Segments with the\n * same duration expressed by the value of @d\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n r(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Default parser for all other attributes. Acts as a no-op and just returns the value\n * as a string\n *\n * @param {string} value\n * value of attribute as a string\n * @return {string}\n * Unparsed value\n */\n DEFAULT(value) {\n return value;\n }\n\n};\n/**\n * Gets all the attributes and values of the provided node, parses attributes with known\n * types, and returns an object with attribute names mapped to values.\n *\n * @param {Node} el\n * The node to parse attributes from\n * @return {Object}\n * Object with all attributes of el parsed\n */\n\nconst parseAttributes = el => {\n if (!(el && el.attributes)) {\n return {};\n }\n\n return from(el.attributes).reduce((a, e) => {\n const parseFn = parsers[e.name] || parsers.DEFAULT;\n a[e.name] = parseFn(e.value);\n return a;\n }, {});\n};\n\nconst keySystemsMap = {\n 'urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b': 'org.w3.clearkey',\n 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed': 'com.widevine.alpha',\n 'urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95': 'com.microsoft.playready',\n 'urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb': 'com.adobe.primetime'\n};\n/**\n * Builds a list of urls that is the product of the reference urls and BaseURL values\n *\n * @param {string[]} referenceUrls\n * List of reference urls to resolve to\n * @param {Node[]} baseUrlElements\n * List of BaseURL nodes from the mpd\n * @return {string[]}\n * List of resolved urls\n */\n\nconst buildBaseUrls = (referenceUrls, baseUrlElements) => {\n if (!baseUrlElements.length) {\n return referenceUrls;\n }\n\n return flatten(referenceUrls.map(function (reference) {\n return baseUrlElements.map(function (baseUrlElement) {\n return resolveUrl(reference, getContent(baseUrlElement));\n });\n }));\n};\n/**\n * Contains all Segment information for its containing AdaptationSet\n *\n * @typedef {Object} SegmentInformation\n * @property {Object|undefined} template\n * Contains the attributes for the SegmentTemplate node\n * @property {Object[]|undefined} segmentTimeline\n * Contains a list of atrributes for each S node within the SegmentTimeline node\n * @property {Object|undefined} list\n * Contains the attributes for the SegmentList node\n * @property {Object|undefined} base\n * Contains the attributes for the SegmentBase node\n */\n\n/**\n * Returns all available Segment information contained within the AdaptationSet node\n *\n * @param {Node} adaptationSet\n * The AdaptationSet node to get Segment information from\n * @return {SegmentInformation}\n * The Segment information contained within the provided AdaptationSet\n */\n\nconst getSegmentInformation = adaptationSet => {\n const segmentTemplate = findChildren(adaptationSet, 'SegmentTemplate')[0];\n const segmentList = findChildren(adaptationSet, 'SegmentList')[0];\n const segmentUrls = segmentList && findChildren(segmentList, 'SegmentURL').map(s => merge({\n tag: 'SegmentURL'\n }, parseAttributes(s)));\n const segmentBase = findChildren(adaptationSet, 'SegmentBase')[0];\n const segmentTimelineParentNode = segmentList || segmentTemplate;\n const segmentTimeline = segmentTimelineParentNode && findChildren(segmentTimelineParentNode, 'SegmentTimeline')[0];\n const segmentInitializationParentNode = segmentList || segmentBase || segmentTemplate;\n const segmentInitialization = segmentInitializationParentNode && findChildren(segmentInitializationParentNode, 'Initialization')[0]; // SegmentTemplate is handled slightly differently, since it can have both\n // @initialization and an node. @initialization can be templated,\n // while the node can have a url and range specified. If the has\n // both @initialization and an subelement we opt to override with\n // the node, as this interaction is not defined in the spec.\n\n const template = segmentTemplate && parseAttributes(segmentTemplate);\n\n if (template && segmentInitialization) {\n template.initialization = segmentInitialization && parseAttributes(segmentInitialization);\n } else if (template && template.initialization) {\n // If it is @initialization we convert it to an object since this is the format that\n // later functions will rely on for the initialization segment. This is only valid\n // for \n template.initialization = {\n sourceURL: template.initialization\n };\n }\n\n const segmentInfo = {\n template,\n segmentTimeline: segmentTimeline && findChildren(segmentTimeline, 'S').map(s => parseAttributes(s)),\n list: segmentList && merge(parseAttributes(segmentList), {\n segmentUrls,\n initialization: parseAttributes(segmentInitialization)\n }),\n base: segmentBase && merge(parseAttributes(segmentBase), {\n initialization: parseAttributes(segmentInitialization)\n })\n };\n Object.keys(segmentInfo).forEach(key => {\n if (!segmentInfo[key]) {\n delete segmentInfo[key];\n }\n });\n return segmentInfo;\n};\n/**\n * Contains Segment information and attributes needed to construct a Playlist object\n * from a Representation\n *\n * @typedef {Object} RepresentationInformation\n * @property {SegmentInformation} segmentInfo\n * Segment information for this Representation\n * @property {Object} attributes\n * Inherited attributes for this Representation\n */\n\n/**\n * Maps a Representation node to an object containing Segment information and attributes\n *\n * @name inheritBaseUrlsCallback\n * @function\n * @param {Node} representation\n * Representation node from the mpd\n * @return {RepresentationInformation}\n * Representation information needed to construct a Playlist object\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Representation nodes to\n * Segment information and attributes using inherited BaseURL nodes.\n *\n * @param {Object} adaptationSetAttributes\n * Contains attributes inherited by the AdaptationSet\n * @param {string[]} adaptationSetBaseUrls\n * Contains list of resolved base urls inherited by the AdaptationSet\n * @param {SegmentInformation} adaptationSetSegmentInfo\n * Contains Segment information for the AdaptationSet\n * @return {inheritBaseUrlsCallback}\n * Callback map function\n */\n\nconst inheritBaseUrls = (adaptationSetAttributes, adaptationSetBaseUrls, adaptationSetSegmentInfo) => representation => {\n const repBaseUrlElements = findChildren(representation, 'BaseURL');\n const repBaseUrls = buildBaseUrls(adaptationSetBaseUrls, repBaseUrlElements);\n const attributes = merge(adaptationSetAttributes, parseAttributes(representation));\n const representationSegmentInfo = getSegmentInformation(representation);\n return repBaseUrls.map(baseUrl => {\n return {\n segmentInfo: merge(adaptationSetSegmentInfo, representationSegmentInfo),\n attributes: merge(attributes, {\n baseUrl\n })\n };\n });\n};\n/**\n * Tranforms a series of content protection nodes to\n * an object containing pssh data by key system\n *\n * @param {Node[]} contentProtectionNodes\n * Content protection nodes\n * @return {Object}\n * Object containing pssh data by key system\n */\n\nconst generateKeySystemInformation = contentProtectionNodes => {\n return contentProtectionNodes.reduce((acc, node) => {\n const attributes = parseAttributes(node); // Although it could be argued that according to the UUID RFC spec the UUID string (a-f chars) should be generated\n // as a lowercase string it also mentions it should be treated as case-insensitive on input. Since the key system\n // UUIDs in the keySystemsMap are hardcoded as lowercase in the codebase there isn't any reason not to do\n // .toLowerCase() on the input UUID string from the manifest (at least I could not think of one).\n\n if (attributes.schemeIdUri) {\n attributes.schemeIdUri = attributes.schemeIdUri.toLowerCase();\n }\n\n const keySystem = keySystemsMap[attributes.schemeIdUri];\n\n if (keySystem) {\n acc[keySystem] = {\n attributes\n };\n const psshNode = findChildren(node, 'cenc:pssh')[0];\n\n if (psshNode) {\n const pssh = getContent(psshNode);\n acc[keySystem].pssh = pssh && decodeB64ToUint8Array(pssh);\n }\n }\n\n return acc;\n }, {});\n}; // defined in ANSI_SCTE 214-1 2016\n\n\nconst parseCaptionServiceMetadata = service => {\n // 608 captions\n if (service.schemeIdUri === 'urn:scte:dash:cc:cea-608:2015') {\n const values = typeof service.value !== 'string' ? [] : service.value.split(';');\n return values.map(value => {\n let channel;\n let language; // default language to value\n\n language = value;\n\n if (/^CC\\d=/.test(value)) {\n [channel, language] = value.split('=');\n } else if (/^CC\\d$/.test(value)) {\n channel = value;\n }\n\n return {\n channel,\n language\n };\n });\n } else if (service.schemeIdUri === 'urn:scte:dash:cc:cea-708:2015') {\n const values = typeof service.value !== 'string' ? [] : service.value.split(';');\n return values.map(value => {\n const flags = {\n // service or channel number 1-63\n 'channel': undefined,\n // language is a 3ALPHA per ISO 639.2/B\n // field is required\n 'language': undefined,\n // BIT 1/0 or ?\n // default value is 1, meaning 16:9 aspect ratio, 0 is 4:3, ? is unknown\n 'aspectRatio': 1,\n // BIT 1/0\n // easy reader flag indicated the text is tailed to the needs of beginning readers\n // default 0, or off\n 'easyReader': 0,\n // BIT 1/0\n // If 3d metadata is present (CEA-708.1) then 1\n // default 0\n '3D': 0\n };\n\n if (/=/.test(value)) {\n const [channel, opts = ''] = value.split('=');\n flags.channel = channel;\n flags.language = value;\n opts.split(',').forEach(opt => {\n const [name, val] = opt.split(':');\n\n if (name === 'lang') {\n flags.language = val; // er for easyReadery\n } else if (name === 'er') {\n flags.easyReader = Number(val); // war for wide aspect ratio\n } else if (name === 'war') {\n flags.aspectRatio = Number(val);\n } else if (name === '3D') {\n flags['3D'] = Number(val);\n }\n });\n } else {\n flags.language = value;\n }\n\n if (flags.channel) {\n flags.channel = 'SERVICE' + flags.channel;\n }\n\n return flags;\n });\n }\n};\n/**\n * Maps an AdaptationSet node to a list of Representation information objects\n *\n * @name toRepresentationsCallback\n * @function\n * @param {Node} adaptationSet\n * AdaptationSet node from the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping AdaptationSet nodes to a list of\n * Representation information objects\n *\n * @param {Object} periodAttributes\n * Contains attributes inherited by the Period\n * @param {string[]} periodBaseUrls\n * Contains list of resolved base urls inherited by the Period\n * @param {string[]} periodSegmentInfo\n * Contains Segment Information at the period level\n * @return {toRepresentationsCallback}\n * Callback map function\n */\n\nconst toRepresentations = (periodAttributes, periodBaseUrls, periodSegmentInfo) => adaptationSet => {\n const adaptationSetAttributes = parseAttributes(adaptationSet);\n const adaptationSetBaseUrls = buildBaseUrls(periodBaseUrls, findChildren(adaptationSet, 'BaseURL'));\n const role = findChildren(adaptationSet, 'Role')[0];\n const roleAttributes = {\n role: parseAttributes(role)\n };\n let attrs = merge(periodAttributes, adaptationSetAttributes, roleAttributes);\n const accessibility = findChildren(adaptationSet, 'Accessibility')[0];\n const captionServices = parseCaptionServiceMetadata(parseAttributes(accessibility));\n\n if (captionServices) {\n attrs = merge(attrs, {\n captionServices\n });\n }\n\n const label = findChildren(adaptationSet, 'Label')[0];\n\n if (label && label.childNodes.length) {\n const labelVal = label.childNodes[0].nodeValue.trim();\n attrs = merge(attrs, {\n label: labelVal\n });\n }\n\n const contentProtection = generateKeySystemInformation(findChildren(adaptationSet, 'ContentProtection'));\n\n if (Object.keys(contentProtection).length) {\n attrs = merge(attrs, {\n contentProtection\n });\n }\n\n const segmentInfo = getSegmentInformation(adaptationSet);\n const representations = findChildren(adaptationSet, 'Representation');\n const adaptationSetSegmentInfo = merge(periodSegmentInfo, segmentInfo);\n return flatten(representations.map(inheritBaseUrls(attrs, adaptationSetBaseUrls, adaptationSetSegmentInfo)));\n};\n/**\n * Contains all period information for mapping nodes onto adaptation sets.\n *\n * @typedef {Object} PeriodInformation\n * @property {Node} period.node\n * Period node from the mpd\n * @property {Object} period.attributes\n * Parsed period attributes from node plus any added\n */\n\n/**\n * Maps a PeriodInformation object to a list of Representation information objects for all\n * AdaptationSet nodes contained within the Period.\n *\n * @name toAdaptationSetsCallback\n * @function\n * @param {PeriodInformation} period\n * Period object containing necessary period information\n * @param {number} periodStart\n * Start time of the Period within the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Period nodes to a list of\n * Representation information objects\n *\n * @param {Object} mpdAttributes\n * Contains attributes inherited by the mpd\n * @param {string[]} mpdBaseUrls\n * Contains list of resolved base urls inherited by the mpd\n * @return {toAdaptationSetsCallback}\n * Callback map function\n */\n\nconst toAdaptationSets = (mpdAttributes, mpdBaseUrls) => (period, index) => {\n const periodBaseUrls = buildBaseUrls(mpdBaseUrls, findChildren(period.node, 'BaseURL'));\n const periodAttributes = merge(mpdAttributes, {\n periodStart: period.attributes.start\n });\n\n if (typeof period.attributes.duration === 'number') {\n periodAttributes.periodDuration = period.attributes.duration;\n }\n\n const adaptationSets = findChildren(period.node, 'AdaptationSet');\n const periodSegmentInfo = getSegmentInformation(period.node);\n return flatten(adaptationSets.map(toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo)));\n};\n/**\n * Gets Period@start property for a given period.\n *\n * @param {Object} options\n * Options object\n * @param {Object} options.attributes\n * Period attributes\n * @param {Object} [options.priorPeriodAttributes]\n * Prior period attributes (if prior period is available)\n * @param {string} options.mpdType\n * The MPD@type these periods came from\n * @return {number|null}\n * The period start, or null if it's an early available period or error\n */\n\nconst getPeriodStart = ({\n attributes,\n priorPeriodAttributes,\n mpdType\n}) => {\n // Summary of period start time calculation from DASH spec section 5.3.2.1\n //\n // A period's start is the first period's start + time elapsed after playing all\n // prior periods to this one. Periods continue one after the other in time (without\n // gaps) until the end of the presentation.\n //\n // The value of Period@start should be:\n // 1. if Period@start is present: value of Period@start\n // 2. if previous period exists and it has @duration: previous Period@start +\n // previous Period@duration\n // 3. if this is first period and MPD@type is 'static': 0\n // 4. in all other cases, consider the period an \"early available period\" (note: not\n // currently supported)\n // (1)\n if (typeof attributes.start === 'number') {\n return attributes.start;\n } // (2)\n\n\n if (priorPeriodAttributes && typeof priorPeriodAttributes.start === 'number' && typeof priorPeriodAttributes.duration === 'number') {\n return priorPeriodAttributes.start + priorPeriodAttributes.duration;\n } // (3)\n\n\n if (!priorPeriodAttributes && mpdType === 'static') {\n return 0;\n } // (4)\n // There is currently no logic for calculating the Period@start value if there is\n // no Period@start or prior Period@start and Period@duration available. This is not made\n // explicit by the DASH interop guidelines or the DASH spec, however, since there's\n // nothing about any other resolution strategies, it's implied. Thus, this case should\n // be considered an early available period, or error, and null should suffice for both\n // of those cases.\n\n\n return null;\n};\n/**\n * Traverses the mpd xml tree to generate a list of Representation information objects\n * that have inherited attributes from parent nodes\n *\n * @param {Node} mpd\n * The root node of the mpd\n * @param {Object} options\n * Available options for inheritAttributes\n * @param {string} options.manifestUri\n * The uri source of the mpd\n * @param {number} options.NOW\n * Current time per DASH IOP. Default is current time in ms since epoch\n * @param {number} options.clientOffset\n * Client time difference from NOW (in milliseconds)\n * @return {RepresentationInformation[]}\n * List of objects containing Representation information\n */\n\nconst inheritAttributes = (mpd, options = {}) => {\n const {\n manifestUri = '',\n NOW = Date.now(),\n clientOffset = 0\n } = options;\n const periodNodes = findChildren(mpd, 'Period');\n\n if (!periodNodes.length) {\n throw new Error(errors.INVALID_NUMBER_OF_PERIOD);\n }\n\n const locations = findChildren(mpd, 'Location');\n const mpdAttributes = parseAttributes(mpd);\n const mpdBaseUrls = buildBaseUrls([manifestUri], findChildren(mpd, 'BaseURL')); // See DASH spec section 5.3.1.2, Semantics of MPD element. Default type to 'static'.\n\n mpdAttributes.type = mpdAttributes.type || 'static';\n mpdAttributes.sourceDuration = mpdAttributes.mediaPresentationDuration || 0;\n mpdAttributes.NOW = NOW;\n mpdAttributes.clientOffset = clientOffset;\n\n if (locations.length) {\n mpdAttributes.locations = locations.map(getContent);\n }\n\n const periods = []; // Since toAdaptationSets acts on individual periods right now, the simplest approach to\n // adding properties that require looking at prior periods is to parse attributes and add\n // missing ones before toAdaptationSets is called. If more such properties are added, it\n // may be better to refactor toAdaptationSets.\n\n periodNodes.forEach((node, index) => {\n const attributes = parseAttributes(node); // Use the last modified prior period, as it may contain added information necessary\n // for this period.\n\n const priorPeriod = periods[index - 1];\n attributes.start = getPeriodStart({\n attributes,\n priorPeriodAttributes: priorPeriod ? priorPeriod.attributes : null,\n mpdType: mpdAttributes.type\n });\n periods.push({\n node,\n attributes\n });\n });\n return {\n locations: mpdAttributes.locations,\n representationInfo: flatten(periods.map(toAdaptationSets(mpdAttributes, mpdBaseUrls)))\n };\n};\n\nconst stringToMpdXml = manifestString => {\n if (manifestString === '') {\n throw new Error(errors.DASH_EMPTY_MANIFEST);\n }\n\n const parser = new DOMParser();\n let xml;\n let mpd;\n\n try {\n xml = parser.parseFromString(manifestString, 'application/xml');\n mpd = xml && xml.documentElement.tagName === 'MPD' ? xml.documentElement : null;\n } catch (e) {// ie 11 throwsw on invalid xml\n }\n\n if (!mpd || mpd && mpd.getElementsByTagName('parsererror').length > 0) {\n throw new Error(errors.DASH_INVALID_XML);\n }\n\n return mpd;\n};\n\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} mpd\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\nconst parseUTCTimingScheme = mpd => {\n const UTCTimingNode = findChildren(mpd, 'UTCTiming')[0];\n\n if (!UTCTimingNode) {\n return null;\n }\n\n const attributes = parseAttributes(UTCTimingNode);\n\n switch (attributes.schemeIdUri) {\n case 'urn:mpeg:dash:utc:http-head:2014':\n case 'urn:mpeg:dash:utc:http-head:2012':\n attributes.method = 'HEAD';\n break;\n\n case 'urn:mpeg:dash:utc:http-xsdate:2014':\n case 'urn:mpeg:dash:utc:http-iso:2014':\n case 'urn:mpeg:dash:utc:http-xsdate:2012':\n case 'urn:mpeg:dash:utc:http-iso:2012':\n attributes.method = 'GET';\n break;\n\n case 'urn:mpeg:dash:utc:direct:2014':\n case 'urn:mpeg:dash:utc:direct:2012':\n attributes.method = 'DIRECT';\n attributes.value = Date.parse(attributes.value);\n break;\n\n case 'urn:mpeg:dash:utc:http-ntp:2014':\n case 'urn:mpeg:dash:utc:ntp:2014':\n case 'urn:mpeg:dash:utc:sntp:2014':\n default:\n throw new Error(errors.UNSUPPORTED_UTC_TIMING_SCHEME);\n }\n\n return attributes;\n};\n\nconst VERSION = version;\n/*\n * Given a DASH manifest string and options, parses the DASH manifest into an object in the\n * form outputed by m3u8-parser and accepted by videojs/http-streaming.\n *\n * For live DASH manifests, if `previousManifest` is provided in options, then the newly\n * parsed DASH manifest will have its media sequence and discontinuity sequence values\n * updated to reflect its position relative to the prior manifest.\n *\n * @param {string} manifestString - the DASH manifest as a string\n * @param {options} [options] - any options\n *\n * @return {Object} the manifest object\n */\n\nconst parse = (manifestString, options = {}) => {\n const parsedManifestInfo = inheritAttributes(stringToMpdXml(manifestString), options);\n const playlists = toPlaylists(parsedManifestInfo.representationInfo);\n return toM3u8({\n dashPlaylists: playlists,\n locations: parsedManifestInfo.locations,\n sidxMapping: options.sidxMapping,\n previousManifest: options.previousManifest\n });\n};\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} manifestString\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\n\nconst parseUTCTiming = manifestString => parseUTCTimingScheme(stringToMpdXml(manifestString));\n\nexport { VERSION, addSidxSegmentsToPlaylist$1 as addSidxSegmentsToPlaylist, generateSidxKey, inheritAttributes, parse, parseUTCTiming, stringToMpdXml, toM3u8, toPlaylists };\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","'use strict'\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 | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} 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 = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\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","\"use strict\";\n\nvar window = require('global/window');\n\nvar httpResponseHandler = function httpResponseHandler(callback, decodeResponseBody) {\n if (decodeResponseBody === void 0) {\n decodeResponseBody = false;\n }\n\n return function (err, response, responseBody) {\n // if the XHR failed, return that error\n if (err) {\n callback(err);\n return;\n } // if the HTTP status code is 4xx or 5xx, the request also failed\n\n\n if (response.statusCode >= 400 && response.statusCode <= 599) {\n var cause = responseBody;\n\n if (decodeResponseBody) {\n if (window.TextDecoder) {\n var charset = getCharset(response.headers && response.headers['content-type']);\n\n try {\n cause = new TextDecoder(charset).decode(responseBody);\n } catch (e) {}\n } else {\n cause = String.fromCharCode.apply(null, new Uint8Array(responseBody));\n }\n }\n\n callback({\n cause: cause\n });\n return;\n } // otherwise, request succeeded\n\n\n callback(null, responseBody);\n };\n};\n\nfunction getCharset(contentTypeHeader) {\n if (contentTypeHeader === void 0) {\n contentTypeHeader = '';\n }\n\n return contentTypeHeader.toLowerCase().split(';').reduce(function (charset, contentType) {\n var _contentType$split = contentType.split('='),\n type = _contentType$split[0],\n value = _contentType$split[1];\n\n if (type.trim() === 'charset') {\n return value.trim();\n }\n\n return charset;\n }, 'utf-8');\n}\n\nmodule.exports = httpResponseHandler;","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","import { toUint8, bytesMatch } from './byte-helpers.js';\nvar ID3 = toUint8([0x49, 0x44, 0x33]);\nexport var getId3Size = function getId3Size(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n var flags = bytes[offset + 5];\n var returnSize = bytes[offset + 6] << 21 | bytes[offset + 7] << 14 | bytes[offset + 8] << 7 | bytes[offset + 9];\n var footerPresent = (flags & 16) >> 4;\n\n if (footerPresent) {\n return returnSize + 20;\n }\n\n return returnSize + 10;\n};\nexport var getId3Offset = function getId3Offset(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n\n if (bytes.length - offset < 10 || !bytesMatch(bytes, ID3, {\n offset: offset\n })) {\n return offset;\n }\n\n offset += getId3Size(bytes, offset); // recursive check for id3 tags as some files\n // have multiple ID3 tag sections even though\n // they should not.\n\n return getId3Offset(bytes, offset);\n};","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"border-0\"},[_c('h3',{staticClass:\"mb-0\"},[_vm._v(\"Light table\")])]),_c('el-table',{staticClass:\"table-responsive table-flush\",attrs:{\"header-row-class-name\":\"thead-light\",\"data\":_vm.projects}},[_c('el-table-column',{attrs:{\"label\":\"Project\",\"min-width\":\"310px\",\"prop\":\"name\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({row}){return [_c('b-media',{staticClass:\"align-items-center\",attrs:{\"no-body\":\"\"}},[_c('a',{staticClass:\"avatar rounded-circle mr-3\",attrs:{\"href\":\"#\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":row.img}})]),_c('b-media-body',[_c('span',{staticClass:\"font-weight-600 name mb-0 text-sm\"},[_vm._v(_vm._s(row.title))])])],1)]}}])}),_c('el-table-column',{attrs:{\"label\":\"Budget\",\"prop\":\"budget\",\"min-width\":\"140px\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Status\",\"min-width\":\"170px\",\"prop\":\"status\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({row}){return [_c('badge',{staticClass:\"badge-dot mr-4\",attrs:{\"type\":\"\"}},[_c('i',{class:`bg-${row.statusType}`}),_c('span',{staticClass:\"status\"},[_vm._v(_vm._s(row.status))])])]}}])}),_c('el-table-column',{attrs:{\"label\":\"Users\",\"min-width\":\"190px\"}},[_c('div',{staticClass:\"avatar-group\"},[_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Ryan Tompson\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-1.jpg\"}})]),_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Romina Hadid\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-2.jpg\"}})]),_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Alexander Smith\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-3.jpg\"}})]),_c('a',{staticClass:\"avatar avatar-sm rounded-circle\",attrs:{\"href\":\"#\",\"data-toggle\":\"tooltip\",\"data-original-title\":\"Jessica Doe\"}},[_c('img',{attrs:{\"alt\":\"Image placeholder\",\"src\":\"img/theme/team-4.jpg\"}})])])]),_c('el-table-column',{attrs:{\"label\":\"Completion\",\"prop\":\"completion\",\"min-width\":\"240px\",\"sortable\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({row}){return [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"completion mr-2\"},[_vm._v(_vm._s(row.completion)+\"%\")]),_c('div',[_c('base-progress',{attrs:{\"type\":row.statusType,\"value\":row.completion}})],1)])]}}])}),_c('el-table-column',{attrs:{\"min-width\":\"180px\"},scopedSlots:_vm._u([{key:\"default\",fn:function({row}){return [_c('el-dropdown',{staticClass:\"dropdown\",attrs:{\"trigger\":\"click\"}},[_c('span',{staticClass:\"btn btn-sm btn-icon-only text-light\"},[_c('i',{staticClass:\"fas fa-ellipsis-v mt-2\"})]),_c('el-dropdown-menu',{staticClass:\"dropdown-menu dropdown-menu-arrow show\",attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('b-dropdown-item',[_vm._v(\"Action\")]),_c('b-dropdown-item',[_vm._v(\"Another action\")]),_c('b-dropdown-item',[_vm._v(\"Something else here\")])],1)],1)]}}])})],1),_c('b-card-footer',{staticClass:\"py-4 d-flex justify-content-end\"},[_c('base-pagination',{attrs:{\"per-page\":10,\"total\":50},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nexport default [\n {\n img: 'img/theme/bootstrap.jpg',\n title: 'Argon Design System',\n budget: '$2500 USD',\n status: 'pending',\n statusType: 'warning',\n completion: 60\n },\n {\n img: 'img/theme/angular.jpg',\n title: 'Angular Now UI Kit PRO',\n budget: '$1800 USD',\n status: 'completed',\n statusType: 'success',\n completion: 100\n },\n {\n img: 'img/theme/sketch.jpg',\n title: 'Black Dashboard',\n budget: '$3150 USD',\n status: 'delayed',\n statusType: 'danger',\n completion: 72\n },\n {\n img: 'img/theme/react.jpg',\n title: 'React Material Dashboard',\n budget: '$4400 USD',\n status: 'on schedule',\n statusType: 'info',\n completion: 90\n },\n {\n img: 'img/theme/vue.jpg',\n title: 'Vue Paper UI Kit PRO',\n budget: '$2200 USD',\n status: 'completed',\n statusType: 'success',\n completion: 100\n },\n {\n img: 'img/theme/bootstrap.jpg',\n title: 'Argon Design System',\n budget: '$2500 USD',\n status: 'pending',\n statusType: 'warning',\n completion: 60\n },\n {\n img: 'img/theme/angular.jpg',\n title: 'Angular Now UI Kit PRO',\n budget: '$1800 USD',\n status: 'completed',\n statusType: 'success',\n completion: 100\n },\n {\n img: 'img/theme/sketch.jpg',\n title: 'Black Dashboard',\n budget: '$3150 USD',\n status: 'delayed',\n statusType: 'danger',\n completion: 72\n },\n {\n img: 'img/theme/vue.jpg',\n title: 'Vue Paper UI Kit PRO',\n budget: '$2200 USD',\n status: 'completed',\n statusType: 'success',\n completion: 100\n }\n]\n","\n\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LightTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./LightTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LightTable.vue?vue&type=template&id=f434181a&\"\nimport script from \"./LightTable.vue?vue&type=script&lang=js&\"\nexport * from \"./LightTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var MAX_UINT32 = Math.pow(2, 32);\n\nvar getUint64 = function(uint8) {\n var dv = new DataView(uint8.buffer, uint8.byteOffset, uint8.byteLength);\n var value;\n\n if (dv.getBigUint64) {\n value = dv.getBigUint64(0);\n\n if (value < Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n\n return value;\n }\n\n return (dv.getUint32(0) * MAX_UINT32) + dv.getUint32(4);\n};\n\nmodule.exports = {\n getUint64: getUint64,\n MAX_UINT32: MAX_UINT32\n};\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"flatpickr\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"VueFlatpickr\", [\"flatpickr\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueFlatpickr\"] = factory(require(\"flatpickr\"));\n\telse\n\t\troot[\"VueFlatpickr\"] = factory(root[\"flatpickr\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__311__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 311:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__311__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ src)\n});\n\n// UNUSED EXPORTS: Component, Plugin\n\n// EXTERNAL MODULE: external \"flatpickr\"\nvar external_flatpickr_ = __webpack_require__(311);\nvar external_flatpickr_default = /*#__PURE__*/__webpack_require__.n(external_flatpickr_);\n;// CONCATENATED MODULE: ./src/events.js\n// Events to emit, copied from flatpickr source\nvar includedEvents = ['onChange', 'onClose', 'onDestroy', 'onMonthChange', 'onOpen', 'onYearChange'];\n\n// Let's not emit these events by default\nvar excludedEvents = ['onValueUpdate', 'onDayCreate', 'onParseConfig', 'onReady', 'onPreCalendarPosition', 'onKeyDown'];\n\n;// CONCATENATED MODULE: ./src/util.js\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar camelToKebab = function camelToKebab(string) {\n return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n};\nvar arrayify = function arrayify(obj) {\n return obj instanceof Array ? obj : [obj];\n};\nvar nullify = function nullify(value) {\n return value && value.length ? value : null;\n};\nvar cloneObject = function cloneObject(obj) {\n return _extends({}, obj);\n};\n\n;// CONCATENATED MODULE: ./src/component.js\n\n\n\n// You have to import css yourself\n\n// Keep a copy of all events for later use\nvar allEvents = includedEvents.concat(excludedEvents);\n\n// Passing these properties in `set()` method will cause flatpickr to trigger some callbacks\nvar configCallbacks = ['locale', 'showMonths'];\n/* harmony default export */ const component = ({\n name: 'flat-pickr',\n render: function render(el) {\n return el('input', {\n attrs: {\n type: 'text',\n 'data-input': true\n },\n props: {\n disabled: this.disabled\n },\n on: {\n input: this.onInput\n }\n });\n },\n props: {\n value: {\n \"default\": null,\n required: true,\n validator: function validator(value) {\n return value === null || value instanceof Date || typeof value === \"string\" || value instanceof String || value instanceof Array || typeof value === \"number\";\n }\n },\n // https://flatpickr.js.org/options/\n config: {\n type: Object,\n \"default\": function _default() {\n return {\n wrap: false,\n defaultDate: null\n };\n }\n },\n events: {\n type: Array,\n \"default\": function _default() {\n return includedEvents;\n }\n },\n disabled: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n /**\n * The flatpickr instance\n */\n fp: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n // Return early if flatpickr is already loaded\n /* istanbul ignore if */\n if (this.fp) return;\n\n // Don't mutate original object on parent component\n var safeConfig = cloneObject(this.config);\n this.events.forEach(function (hook) {\n // Respect global callbacks registered via setDefault() method\n var globalCallbacks = (external_flatpickr_default()).defaultConfig[hook] || [];\n\n // Inject our own method along with user callback\n var localCallback = function localCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this.$emit.apply(_this, [camelToKebab(hook)].concat(args));\n };\n\n // Overwrite with merged array\n safeConfig[hook] = arrayify(safeConfig[hook] || []).concat(globalCallbacks, localCallback);\n });\n\n // Set initial date without emitting any event\n safeConfig.defaultDate = this.value || safeConfig.defaultDate;\n\n // Init flatpickr\n this.fp = new (external_flatpickr_default())(this.getElem(), safeConfig);\n\n // Attach blur event\n this.fpInput().addEventListener('blur', this.onBlur);\n this.$on('on-close', this.onClose);\n\n // Immediate watch will fail before fp is set,\n // so need to start watching after mount\n this.$watch('disabled', this.watchDisabled, {\n immediate: true\n });\n },\n methods: {\n /**\n * Get the HTML node where flatpickr to be attached\n * Bind on parent element if wrap is true\n */\n getElem: function getElem() {\n return this.config.wrap ? this.$el.parentNode : this.$el;\n },\n /**\n * Watch for value changed by date-picker itself and notify parent component\n *\n * @param event\n */\n onInput: function onInput(event) {\n var _this2 = this;\n var input = event.target;\n // Let's wait for DOM to be updated\n this.$nextTick(function () {\n _this2.$emit('input', nullify(input.value));\n });\n },\n /**\n * @return HTMLElement\n */\n fpInput: function fpInput() {\n return this.fp.altInput || this.fp.input;\n },\n /**\n * Blur event is required by many validation libraries\n *\n * @param event\n */\n onBlur: function onBlur(event) {\n this.$emit('blur', nullify(event.target.value));\n },\n /**\n * Flatpickr does not emit input event in some cases\n */\n onClose: function onClose(selectedDates, dateStr) {\n this.$emit('input', nullify(dateStr));\n },\n /**\n * Watch for the disabled property and sets the value to the real input.\n *\n * @param newState\n */\n watchDisabled: function watchDisabled(newState) {\n if (newState) {\n this.fpInput().setAttribute('disabled', newState);\n } else {\n this.fpInput().removeAttribute('disabled');\n }\n }\n },\n watch: {\n /**\n * Watch for any config changes and redraw date-picker\n *\n * @param newConfig Object\n */\n config: {\n deep: true,\n handler: function handler(newConfig) {\n var _this3 = this;\n var safeConfig = cloneObject(newConfig);\n // Workaround: Don't pass hooks to configs again otherwise\n // previously registered hooks will stop working\n // Notice: we are looping through all events\n // This also means that new callbacks can not passed once component has been initialized\n allEvents.forEach(function (hook) {\n delete safeConfig[hook];\n });\n this.fp.set(safeConfig);\n\n // Workaround: Allow to change locale dynamically\n configCallbacks.forEach(function (name) {\n if (typeof safeConfig[name] !== 'undefined') {\n _this3.fp.set(name, safeConfig[name]);\n }\n });\n }\n },\n /**\n * Watch for changes from parent component and update DOM\n *\n * @param newValue\n */\n value: function value(newValue) {\n // Prevent updates if v-model value is same as input's current value\n if (newValue === nullify(this.$el.value)) return;\n // Make sure we have a flatpickr instance\n this.fp &&\n // Notify flatpickr instance that there is a change in value\n this.fp.setDate(newValue, true);\n }\n },\n /**\n * Free up memory\n */\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore else */\n if (this.fp) {\n this.fpInput().removeEventListener('blur', this.onBlur);\n this.fp.destroy();\n this.fp = null;\n }\n }\n});\n;// CONCATENATED MODULE: ./src/index.js\n\nvar Plugin = function Plugin(Vue, params) {\n var name = 'flat-pickr';\n /* istanbul ignore else */\n if (typeof params === 'string') name = params;\n Vue.component(name, component);\n};\ncomponent.install = Plugin;\n/* harmony default export */ const src = (component);\n\n})();\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 159);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/clickoutside\");\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/popup\");\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"throttle-debounce/debounce\");\n\n/***/ }),\n\n/***/ 159:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _table = __webpack_require__(160);\n\nvar _table2 = _interopRequireDefault(_table);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_table2.default.install = function (Vue) {\n Vue.component(_table2.default.name, _table2.default);\n};\n\nexports.default = _table2.default;\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/checkbox\");\n\n/***/ }),\n\n/***/ 160:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue__ = __webpack_require__(161);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f98fcd1_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_table_vue__ = __webpack_require__(173);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f98fcd1_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_table_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 161:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(16);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _debounce = __webpack_require__(14);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _resizeEvent = __webpack_require__(18);\n\nvar _mousewheel = __webpack_require__(162);\n\nvar _mousewheel2 = _interopRequireDefault(_mousewheel);\n\nvar _locale = __webpack_require__(5);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _migrating = __webpack_require__(8);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _tableStore = __webpack_require__(164);\n\nvar _tableStore2 = _interopRequireDefault(_tableStore);\n\nvar _tableLayout = __webpack_require__(165);\n\nvar _tableLayout2 = _interopRequireDefault(_tableLayout);\n\nvar _tableBody = __webpack_require__(166);\n\nvar _tableBody2 = _interopRequireDefault(_tableBody);\n\nvar _tableHeader = __webpack_require__(167);\n\nvar _tableHeader2 = _interopRequireDefault(_tableHeader);\n\nvar _tableFooter = __webpack_require__(172);\n\nvar _tableFooter2 = _interopRequireDefault(_tableFooter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar tableIdSeed = 1; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n name: 'ElTable',\n\n mixins: [_locale2.default, _migrating2.default],\n\n directives: {\n Mousewheel: _mousewheel2.default\n },\n\n props: {\n data: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n\n size: String,\n\n width: [String, Number],\n\n height: [String, Number],\n\n maxHeight: [String, Number],\n\n fit: {\n type: Boolean,\n default: true\n },\n\n stripe: Boolean,\n\n border: Boolean,\n\n rowKey: [String, Function],\n\n context: {},\n\n showHeader: {\n type: Boolean,\n default: true\n },\n\n showSummary: Boolean,\n\n sumText: String,\n\n summaryMethod: Function,\n\n rowClassName: [String, Function],\n\n rowStyle: [Object, Function],\n\n cellClassName: [String, Function],\n\n cellStyle: [Object, Function],\n\n headerRowClassName: [String, Function],\n\n headerRowStyle: [Object, Function],\n\n headerCellClassName: [String, Function],\n\n headerCellStyle: [Object, Function],\n\n highlightCurrentRow: Boolean,\n\n currentRowKey: [String, Number],\n\n emptyText: String,\n\n expandRowKeys: Array,\n\n defaultExpandAll: Boolean,\n\n defaultSort: Object,\n\n tooltipEffect: String,\n\n spanMethod: Function,\n\n selectOnIndeterminate: {\n type: Boolean,\n default: true\n }\n },\n\n components: {\n TableHeader: _tableHeader2.default,\n TableFooter: _tableFooter2.default,\n TableBody: _tableBody2.default,\n ElCheckbox: _checkbox2.default\n },\n\n methods: {\n getMigratingConfig: function getMigratingConfig() {\n return {\n events: {\n expand: 'expand is renamed to expand-change'\n }\n };\n },\n setCurrentRow: function setCurrentRow(row) {\n this.store.commit('setCurrentRow', row);\n },\n toggleRowSelection: function toggleRowSelection(row, selected) {\n this.store.toggleRowSelection(row, selected);\n this.store.updateAllSelected();\n },\n toggleRowExpansion: function toggleRowExpansion(row, expanded) {\n this.store.toggleRowExpansion(row, expanded);\n },\n clearSelection: function clearSelection() {\n this.store.clearSelection();\n },\n clearFilter: function clearFilter(columnKeys) {\n this.store.clearFilter(columnKeys);\n },\n clearSort: function clearSort() {\n this.store.clearSort();\n },\n handleMouseLeave: function handleMouseLeave() {\n this.store.commit('setHoverRow', null);\n if (this.hoverState) this.hoverState = null;\n },\n updateScrollY: function updateScrollY() {\n this.layout.updateScrollY();\n this.layout.updateColumnsWidth();\n },\n handleFixedMousewheel: function handleFixedMousewheel(event, data) {\n var bodyWrapper = this.bodyWrapper;\n if (Math.abs(data.spinY) > 0) {\n var currentScrollTop = bodyWrapper.scrollTop;\n if (data.pixelY < 0 && currentScrollTop !== 0) {\n event.preventDefault();\n }\n if (data.pixelY > 0 && bodyWrapper.scrollHeight - bodyWrapper.clientHeight > currentScrollTop) {\n event.preventDefault();\n }\n bodyWrapper.scrollTop += Math.ceil(data.pixelY / 5);\n } else {\n bodyWrapper.scrollLeft += Math.ceil(data.pixelX / 5);\n }\n },\n handleHeaderFooterMousewheel: function handleHeaderFooterMousewheel(event, data) {\n var pixelX = data.pixelX,\n pixelY = data.pixelY;\n\n if (Math.abs(pixelX) >= Math.abs(pixelY)) {\n event.preventDefault();\n this.bodyWrapper.scrollLeft += data.pixelX / 5;\n }\n },\n bindEvents: function bindEvents() {\n var _$refs = this.$refs,\n headerWrapper = _$refs.headerWrapper,\n footerWrapper = _$refs.footerWrapper;\n\n var refs = this.$refs;\n var self = this;\n\n this.bodyWrapper.addEventListener('scroll', function () {\n if (headerWrapper) headerWrapper.scrollLeft = this.scrollLeft;\n if (footerWrapper) footerWrapper.scrollLeft = this.scrollLeft;\n if (refs.fixedBodyWrapper) refs.fixedBodyWrapper.scrollTop = this.scrollTop;\n if (refs.rightFixedBodyWrapper) refs.rightFixedBodyWrapper.scrollTop = this.scrollTop;\n var maxScrollLeftPosition = this.scrollWidth - this.offsetWidth - 1;\n var scrollLeft = this.scrollLeft;\n if (scrollLeft >= maxScrollLeftPosition) {\n self.scrollPosition = 'right';\n } else if (scrollLeft === 0) {\n self.scrollPosition = 'left';\n } else {\n self.scrollPosition = 'middle';\n }\n });\n\n if (this.fit) {\n (0, _resizeEvent.addResizeListener)(this.$el, this.resizeListener);\n }\n },\n resizeListener: function resizeListener() {\n if (!this.$ready) return;\n var shouldUpdateLayout = false;\n var el = this.$el;\n var _resizeState = this.resizeState,\n oldWidth = _resizeState.width,\n oldHeight = _resizeState.height;\n\n\n var width = el.offsetWidth;\n if (oldWidth !== width) {\n shouldUpdateLayout = true;\n }\n\n var height = el.offsetHeight;\n if ((this.height || this.shouldUpdateHeight) && oldHeight !== height) {\n shouldUpdateLayout = true;\n }\n\n if (shouldUpdateLayout) {\n this.resizeState.width = width;\n this.resizeState.height = height;\n this.doLayout();\n }\n },\n doLayout: function doLayout() {\n this.layout.updateColumnsWidth();\n if (this.shouldUpdateHeight) {\n this.layout.updateElsHeight();\n }\n },\n sort: function sort(prop, order) {\n this.store.commit('sort', { prop: prop, order: order });\n },\n toggleAllSelection: function toggleAllSelection() {\n this.store.commit('toggleAllSelection');\n }\n },\n\n created: function created() {\n var _this = this;\n\n this.tableId = 'el-table_' + tableIdSeed++;\n this.debouncedUpdateLayout = (0, _debounce2.default)(50, function () {\n return _this.doLayout();\n });\n },\n\n\n computed: {\n tableSize: function tableSize() {\n return this.size || (this.$ELEMENT || {}).size;\n },\n bodyWrapper: function bodyWrapper() {\n return this.$refs.bodyWrapper;\n },\n shouldUpdateHeight: function shouldUpdateHeight() {\n return this.height || this.maxHeight || this.fixedColumns.length > 0 || this.rightFixedColumns.length > 0;\n },\n selection: function selection() {\n return this.store.states.selection;\n },\n columns: function columns() {\n return this.store.states.columns;\n },\n tableData: function tableData() {\n return this.store.states.data;\n },\n fixedColumns: function fixedColumns() {\n return this.store.states.fixedColumns;\n },\n rightFixedColumns: function rightFixedColumns() {\n return this.store.states.rightFixedColumns;\n },\n bodyWidth: function bodyWidth() {\n var _layout = this.layout,\n bodyWidth = _layout.bodyWidth,\n scrollY = _layout.scrollY,\n gutterWidth = _layout.gutterWidth;\n\n return bodyWidth ? bodyWidth - (scrollY ? gutterWidth : 0) + 'px' : '';\n },\n bodyHeight: function bodyHeight() {\n if (this.height) {\n return {\n height: this.layout.bodyHeight ? this.layout.bodyHeight + 'px' : ''\n };\n } else if (this.maxHeight) {\n return {\n 'max-height': (this.showHeader ? this.maxHeight - this.layout.headerHeight - this.layout.footerHeight : this.maxHeight - this.layout.footerHeight) + 'px'\n };\n }\n return {};\n },\n fixedBodyHeight: function fixedBodyHeight() {\n if (this.height) {\n return {\n height: this.layout.fixedBodyHeight ? this.layout.fixedBodyHeight + 'px' : ''\n };\n } else if (this.maxHeight) {\n var maxHeight = this.layout.scrollX ? this.maxHeight - this.layout.gutterWidth : this.maxHeight;\n\n if (this.showHeader) {\n maxHeight -= this.layout.headerHeight;\n }\n\n maxHeight -= this.layout.footerHeight;\n\n return {\n 'max-height': maxHeight + 'px'\n };\n }\n\n return {};\n },\n fixedHeight: function fixedHeight() {\n if (this.maxHeight) {\n if (this.showSummary) {\n return {\n bottom: 0\n };\n }\n return {\n bottom: this.layout.scrollX && this.data.length ? this.layout.gutterWidth + 'px' : ''\n };\n } else {\n if (this.showSummary) {\n return {\n height: this.layout.tableHeight ? this.layout.tableHeight + 'px' : ''\n };\n }\n return {\n height: this.layout.viewportHeight ? this.layout.viewportHeight + 'px' : ''\n };\n }\n }\n },\n\n watch: {\n height: {\n immediate: true,\n handler: function handler(value) {\n this.layout.setHeight(value);\n }\n },\n\n maxHeight: {\n immediate: true,\n handler: function handler(value) {\n this.layout.setMaxHeight(value);\n }\n },\n\n currentRowKey: function currentRowKey(newVal) {\n this.store.setCurrentRowKey(newVal);\n },\n\n\n data: {\n immediate: true,\n handler: function handler(value) {\n var _this2 = this;\n\n this.store.commit('setData', value);\n if (this.$ready) {\n this.$nextTick(function () {\n _this2.doLayout();\n });\n }\n }\n },\n\n expandRowKeys: {\n immediate: true,\n handler: function handler(newVal) {\n if (newVal) {\n this.store.setExpandRowKeys(newVal);\n }\n }\n }\n },\n\n destroyed: function destroyed() {\n if (this.resizeListener) (0, _resizeEvent.removeResizeListener)(this.$el, this.resizeListener);\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.bindEvents();\n this.store.updateColumns();\n this.doLayout();\n\n this.resizeState = {\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n };\n\n // init filters\n this.store.states.columns.forEach(function (column) {\n if (column.filteredValue && column.filteredValue.length) {\n _this3.store.commit('filterChange', {\n column: column,\n values: column.filteredValue,\n silent: true\n });\n }\n });\n\n this.$ready = true;\n },\n data: function data() {\n var store = new _tableStore2.default(this, {\n rowKey: this.rowKey,\n defaultExpandAll: this.defaultExpandAll,\n selectOnIndeterminate: this.selectOnIndeterminate\n });\n var layout = new _tableLayout2.default({\n store: store,\n table: this,\n fit: this.fit,\n showHeader: this.showHeader\n });\n return {\n layout: layout,\n store: store,\n isHidden: false,\n renderExpanded: null,\n resizeProxyVisible: false,\n resizeState: {\n width: null,\n height: null\n },\n // 是否拥有多级表头\n isGroup: false,\n scrollPosition: 'left'\n };\n }\n};\n\n/***/ }),\n\n/***/ 162:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _normalizeWheel = __webpack_require__(163);\n\nvar _normalizeWheel2 = _interopRequireDefault(_normalizeWheel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\nvar mousewheel = function mousewheel(element, callback) {\n if (element && element.addEventListener) {\n element.addEventListener(isFirefox ? 'DOMMouseScroll' : 'mousewheel', function (event) {\n var normalized = (0, _normalizeWheel2.default)(event);\n callback && callback.apply(this, [event, normalized]);\n });\n }\n};\n\nexports.default = {\n bind: function bind(el, binding) {\n mousewheel(el, binding.value);\n }\n};\n\n/***/ }),\n\n/***/ 163:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"normalize-wheel\");\n\n/***/ }),\n\n/***/ 164:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(4);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _debounce = __webpack_require__(14);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _merge = __webpack_require__(9);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _dom = __webpack_require__(3);\n\nvar _util = __webpack_require__(48);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar sortData = function sortData(data, states) {\n var sortingColumn = states.sortingColumn;\n if (!sortingColumn || typeof sortingColumn.sortable === 'string') {\n return data;\n }\n return (0, _util.orderBy)(data, states.sortProp, states.sortOrder, sortingColumn.sortMethod, sortingColumn.sortBy);\n};\n\nvar getKeysMap = function getKeysMap(array, rowKey) {\n var arrayMap = {};\n (array || []).forEach(function (row, index) {\n arrayMap[(0, _util.getRowIdentity)(row, rowKey)] = { row: row, index: index };\n });\n return arrayMap;\n};\n\nvar toggleRowSelection = function toggleRowSelection(states, row, selected) {\n var changed = false;\n var selection = states.selection;\n var index = selection.indexOf(row);\n if (typeof selected === 'undefined') {\n if (index === -1) {\n selection.push(row);\n changed = true;\n } else {\n selection.splice(index, 1);\n changed = true;\n }\n } else {\n if (selected && index === -1) {\n selection.push(row);\n changed = true;\n } else if (!selected && index > -1) {\n selection.splice(index, 1);\n changed = true;\n }\n }\n\n return changed;\n};\n\nvar toggleRowExpansion = function toggleRowExpansion(states, row, expanded) {\n var changed = false;\n var expandRows = states.expandRows;\n if (typeof expanded !== 'undefined') {\n var index = expandRows.indexOf(row);\n if (expanded) {\n if (index === -1) {\n expandRows.push(row);\n changed = true;\n }\n } else {\n if (index !== -1) {\n expandRows.splice(index, 1);\n changed = true;\n }\n }\n } else {\n var _index = expandRows.indexOf(row);\n if (_index === -1) {\n expandRows.push(row);\n changed = true;\n } else {\n expandRows.splice(_index, 1);\n changed = true;\n }\n }\n\n return changed;\n};\n\nvar TableStore = function TableStore(table) {\n var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!table) {\n throw new Error('Table is required.');\n }\n this.table = table;\n\n this.states = {\n rowKey: null,\n _columns: [],\n originColumns: [],\n columns: [],\n fixedColumns: [],\n rightFixedColumns: [],\n leafColumns: [],\n fixedLeafColumns: [],\n rightFixedLeafColumns: [],\n leafColumnsLength: 0,\n fixedLeafColumnsLength: 0,\n rightFixedLeafColumnsLength: 0,\n isComplex: false,\n filteredData: null,\n data: null,\n sortingColumn: null,\n sortProp: null,\n sortOrder: null,\n isAllSelected: false,\n selection: [],\n reserveSelection: false,\n selectable: null,\n currentRow: null,\n hoverRow: null,\n filters: {},\n expandRows: [],\n defaultExpandAll: false,\n selectOnIndeterminate: false\n };\n\n for (var prop in initialState) {\n if (initialState.hasOwnProperty(prop) && this.states.hasOwnProperty(prop)) {\n this.states[prop] = initialState[prop];\n }\n }\n};\n\nTableStore.prototype.mutations = {\n setData: function setData(states, data) {\n var _this = this;\n\n var dataInstanceChanged = states._data !== data;\n states._data = data;\n\n Object.keys(states.filters).forEach(function (columnId) {\n var values = states.filters[columnId];\n if (!values || values.length === 0) return;\n var column = (0, _util.getColumnById)(_this.states, columnId);\n if (column && column.filterMethod) {\n data = data.filter(function (row) {\n return values.some(function (value) {\n return column.filterMethod.call(null, value, row, column);\n });\n });\n }\n });\n\n states.filteredData = data;\n states.data = sortData(data || [], states);\n\n this.updateCurrentRow();\n\n var rowKey = states.rowKey;\n\n if (!states.reserveSelection) {\n if (dataInstanceChanged) {\n this.clearSelection();\n } else {\n this.cleanSelection();\n }\n this.updateAllSelected();\n } else {\n if (rowKey) {\n (function () {\n var selection = states.selection;\n var selectedMap = getKeysMap(selection, rowKey);\n\n states.data.forEach(function (row) {\n var rowId = (0, _util.getRowIdentity)(row, rowKey);\n var rowInfo = selectedMap[rowId];\n if (rowInfo) {\n selection[rowInfo.index] = row;\n }\n });\n\n _this.updateAllSelected();\n })();\n } else {\n console.warn('WARN: rowKey is required when reserve-selection is enabled.');\n }\n }\n\n var defaultExpandAll = states.defaultExpandAll;\n if (defaultExpandAll) {\n this.states.expandRows = (states.data || []).slice(0);\n } else if (rowKey) {\n // update expandRows to new rows according to rowKey\n var ids = getKeysMap(this.states.expandRows, rowKey);\n var expandRows = [];\n for (var _iterator = states.data, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var row = _ref;\n\n var rowId = (0, _util.getRowIdentity)(row, rowKey);\n if (ids[rowId]) {\n expandRows.push(row);\n }\n }\n this.states.expandRows = expandRows;\n } else {\n // clear the old rows\n this.states.expandRows = [];\n }\n\n _vue2.default.nextTick(function () {\n return _this.table.updateScrollY();\n });\n },\n changeSortCondition: function changeSortCondition(states, options) {\n var _this2 = this;\n\n states.data = sortData(states.filteredData || states._data || [], states);\n\n var _table = this.table,\n $el = _table.$el,\n highlightCurrentRow = _table.highlightCurrentRow;\n\n if ($el && highlightCurrentRow) {\n var data = states.data;\n var tr = $el.querySelector('tbody').children;\n var rows = [].filter.call(tr, function (row) {\n return (0, _dom.hasClass)(row, 'el-table__row');\n });\n var row = rows[data.indexOf(states.currentRow)];\n\n [].forEach.call(rows, function (row) {\n return (0, _dom.removeClass)(row, 'current-row');\n });\n (0, _dom.addClass)(row, 'current-row');\n }\n\n if (!options || !options.silent) {\n this.table.$emit('sort-change', {\n column: this.states.sortingColumn,\n prop: this.states.sortProp,\n order: this.states.sortOrder\n });\n }\n\n _vue2.default.nextTick(function () {\n return _this2.table.updateScrollY();\n });\n },\n sort: function sort(states, options) {\n var _this3 = this;\n\n var prop = options.prop,\n order = options.order;\n\n if (prop) {\n states.sortProp = prop;\n states.sortOrder = order || 'ascending';\n _vue2.default.nextTick(function () {\n for (var i = 0, length = states.columns.length; i < length; i++) {\n var column = states.columns[i];\n if (column.property === states.sortProp) {\n column.order = states.sortOrder;\n states.sortingColumn = column;\n break;\n }\n }\n\n if (states.sortingColumn) {\n _this3.commit('changeSortCondition');\n }\n });\n }\n },\n filterChange: function filterChange(states, options) {\n var _this4 = this;\n\n var column = options.column,\n values = options.values,\n silent = options.silent,\n multi = options.multi;\n\n if (values && !Array.isArray(values)) {\n values = [values];\n }\n var filters = {};\n\n if (multi) {\n column.forEach(function (col) {\n states.filters[col.id] = values;\n filters[col.columnKey || col.id] = values;\n });\n } else {\n var prop = column.property;\n\n if (prop) {\n states.filters[column.id] = values;\n filters[column.columnKey || column.id] = values;\n }\n }\n\n var data = states._data;\n\n Object.keys(states.filters).forEach(function (columnId) {\n var values = states.filters[columnId];\n if (!values || values.length === 0) return;\n var column = (0, _util.getColumnById)(_this4.states, columnId);\n if (column && column.filterMethod) {\n data = data.filter(function (row) {\n return values.some(function (value) {\n return column.filterMethod.call(null, value, row, column);\n });\n });\n }\n });\n\n states.filteredData = data;\n states.data = sortData(data, states);\n\n if (!silent) {\n this.table.$emit('filter-change', filters);\n }\n\n _vue2.default.nextTick(function () {\n return _this4.table.updateScrollY();\n });\n },\n insertColumn: function insertColumn(states, column, index, parent) {\n var array = states._columns;\n if (parent) {\n array = parent.children;\n if (!array) array = parent.children = [];\n }\n\n if (typeof index !== 'undefined') {\n array.splice(index, 0, column);\n } else {\n array.push(column);\n }\n\n if (column.type === 'selection') {\n states.selectable = column.selectable;\n states.reserveSelection = column.reserveSelection;\n }\n\n if (this.table.$ready) {\n this.updateColumns(); // hack for dynamics insert column\n this.scheduleLayout();\n }\n },\n removeColumn: function removeColumn(states, column, parent) {\n var array = states._columns;\n if (parent) {\n array = parent.children;\n if (!array) array = parent.children = [];\n }\n if (array) {\n array.splice(array.indexOf(column), 1);\n }\n\n if (this.table.$ready) {\n this.updateColumns(); // hack for dynamics remove column\n this.scheduleLayout();\n }\n },\n setHoverRow: function setHoverRow(states, row) {\n states.hoverRow = row;\n },\n setCurrentRow: function setCurrentRow(states, row) {\n var oldCurrentRow = states.currentRow;\n states.currentRow = row;\n\n if (oldCurrentRow !== row) {\n this.table.$emit('current-change', row, oldCurrentRow);\n }\n },\n rowSelectedChanged: function rowSelectedChanged(states, row) {\n var changed = toggleRowSelection(states, row);\n var selection = states.selection;\n\n if (changed) {\n var table = this.table;\n table.$emit('selection-change', selection ? selection.slice() : []);\n table.$emit('select', selection, row);\n }\n\n this.updateAllSelected();\n },\n\n\n toggleAllSelection: (0, _debounce2.default)(10, function (states) {\n var data = states.data || [];\n if (data.length === 0) return;\n var selection = this.states.selection;\n // when only some rows are selected (but not all), select or deselect all of them\n // depending on the value of selectOnIndeterminate\n var value = states.selectOnIndeterminate ? !states.isAllSelected : !(states.isAllSelected || selection.length);\n var selectionChanged = false;\n\n data.forEach(function (item, index) {\n if (states.selectable) {\n if (states.selectable.call(null, item, index) && toggleRowSelection(states, item, value)) {\n selectionChanged = true;\n }\n } else {\n if (toggleRowSelection(states, item, value)) {\n selectionChanged = true;\n }\n }\n });\n\n var table = this.table;\n if (selectionChanged) {\n table.$emit('selection-change', selection ? selection.slice() : []);\n }\n table.$emit('select-all', selection);\n states.isAllSelected = value;\n })\n};\n\nvar doFlattenColumns = function doFlattenColumns(columns) {\n var result = [];\n columns.forEach(function (column) {\n if (column.children) {\n result.push.apply(result, doFlattenColumns(column.children));\n } else {\n result.push(column);\n }\n });\n return result;\n};\n\nTableStore.prototype.updateColumns = function () {\n var states = this.states;\n var _columns = states._columns || [];\n states.fixedColumns = _columns.filter(function (column) {\n return column.fixed === true || column.fixed === 'left';\n });\n states.rightFixedColumns = _columns.filter(function (column) {\n return column.fixed === 'right';\n });\n\n if (states.fixedColumns.length > 0 && _columns[0] && _columns[0].type === 'selection' && !_columns[0].fixed) {\n _columns[0].fixed = true;\n states.fixedColumns.unshift(_columns[0]);\n }\n\n var notFixedColumns = _columns.filter(function (column) {\n return !column.fixed;\n });\n states.originColumns = [].concat(states.fixedColumns).concat(notFixedColumns).concat(states.rightFixedColumns);\n\n var leafColumns = doFlattenColumns(notFixedColumns);\n var fixedLeafColumns = doFlattenColumns(states.fixedColumns);\n var rightFixedLeafColumns = doFlattenColumns(states.rightFixedColumns);\n\n states.leafColumnsLength = leafColumns.length;\n states.fixedLeafColumnsLength = fixedLeafColumns.length;\n states.rightFixedLeafColumnsLength = rightFixedLeafColumns.length;\n\n states.columns = [].concat(fixedLeafColumns).concat(leafColumns).concat(rightFixedLeafColumns);\n states.isComplex = states.fixedColumns.length > 0 || states.rightFixedColumns.length > 0;\n};\n\nTableStore.prototype.isSelected = function (row) {\n return (this.states.selection || []).indexOf(row) > -1;\n};\n\nTableStore.prototype.clearSelection = function () {\n var states = this.states;\n states.isAllSelected = false;\n var oldSelection = states.selection;\n if (states.selection.length) {\n states.selection = [];\n }\n if (oldSelection.length > 0) {\n this.table.$emit('selection-change', states.selection ? states.selection.slice() : []);\n }\n};\n\nTableStore.prototype.setExpandRowKeys = function (rowKeys) {\n var expandRows = [];\n var data = this.states.data;\n var rowKey = this.states.rowKey;\n if (!rowKey) throw new Error('[Table] prop row-key should not be empty.');\n var keysMap = getKeysMap(data, rowKey);\n rowKeys.forEach(function (key) {\n var info = keysMap[key];\n if (info) {\n expandRows.push(info.row);\n }\n });\n\n this.states.expandRows = expandRows;\n};\n\nTableStore.prototype.toggleRowSelection = function (row, selected) {\n var changed = toggleRowSelection(this.states, row, selected);\n if (changed) {\n this.table.$emit('selection-change', this.states.selection ? this.states.selection.slice() : []);\n }\n};\n\nTableStore.prototype.toggleRowExpansion = function (row, expanded) {\n var changed = toggleRowExpansion(this.states, row, expanded);\n if (changed) {\n this.table.$emit('expand-change', row, this.states.expandRows);\n this.scheduleLayout();\n }\n};\n\nTableStore.prototype.isRowExpanded = function (row) {\n var _states = this.states,\n _states$expandRows = _states.expandRows,\n expandRows = _states$expandRows === undefined ? [] : _states$expandRows,\n rowKey = _states.rowKey;\n\n if (rowKey) {\n var expandMap = getKeysMap(expandRows, rowKey);\n return !!expandMap[(0, _util.getRowIdentity)(row, rowKey)];\n }\n return expandRows.indexOf(row) !== -1;\n};\n\nTableStore.prototype.cleanSelection = function () {\n var selection = this.states.selection || [];\n var data = this.states.data;\n var rowKey = this.states.rowKey;\n var deleted = void 0;\n if (rowKey) {\n deleted = [];\n var selectedMap = getKeysMap(selection, rowKey);\n var dataMap = getKeysMap(data, rowKey);\n for (var key in selectedMap) {\n if (selectedMap.hasOwnProperty(key) && !dataMap[key]) {\n deleted.push(selectedMap[key].row);\n }\n }\n } else {\n deleted = selection.filter(function (item) {\n return data.indexOf(item) === -1;\n });\n }\n\n deleted.forEach(function (deletedItem) {\n selection.splice(selection.indexOf(deletedItem), 1);\n });\n\n if (deleted.length) {\n this.table.$emit('selection-change', selection ? selection.slice() : []);\n }\n};\n\nTableStore.prototype.clearFilter = function (columnKeys) {\n var _this5 = this;\n\n var states = this.states;\n var _table$$refs = this.table.$refs,\n tableHeader = _table$$refs.tableHeader,\n fixedTableHeader = _table$$refs.fixedTableHeader,\n rightFixedTableHeader = _table$$refs.rightFixedTableHeader;\n\n var panels = {};\n\n if (tableHeader) panels = (0, _merge2.default)(panels, tableHeader.filterPanels);\n if (fixedTableHeader) panels = (0, _merge2.default)(panels, fixedTableHeader.filterPanels);\n if (rightFixedTableHeader) panels = (0, _merge2.default)(panels, rightFixedTableHeader.filterPanels);\n\n var keys = Object.keys(panels);\n if (!keys.length) return;\n\n if (typeof columnKeys === 'string') {\n columnKeys = [columnKeys];\n }\n if (Array.isArray(columnKeys)) {\n (function () {\n var columns = columnKeys.map(function (key) {\n return (0, _util.getColumnByKey)(states, key);\n });\n keys.forEach(function (key) {\n var column = columns.find(function (col) {\n return col.id === key;\n });\n if (column) {\n panels[key].filteredValue = [];\n }\n });\n _this5.commit('filterChange', {\n column: columns,\n value: [],\n silent: true,\n multi: true\n });\n })();\n } else {\n keys.forEach(function (key) {\n panels[key].filteredValue = [];\n });\n\n states.filters = {};\n\n this.commit('filterChange', {\n column: {},\n values: [],\n silent: true\n });\n }\n};\n\nTableStore.prototype.clearSort = function () {\n var states = this.states;\n if (!states.sortingColumn) return;\n states.sortingColumn.order = null;\n states.sortProp = null;\n states.sortOrder = null;\n\n this.commit('changeSortCondition', {\n silent: true\n });\n};\n\nTableStore.prototype.updateAllSelected = function () {\n var states = this.states;\n var selection = states.selection,\n rowKey = states.rowKey,\n selectable = states.selectable,\n data = states.data;\n\n if (!data || data.length === 0) {\n states.isAllSelected = false;\n return;\n }\n\n var selectedMap = void 0;\n if (rowKey) {\n selectedMap = getKeysMap(states.selection, rowKey);\n }\n\n var isSelected = function isSelected(row) {\n if (selectedMap) {\n return !!selectedMap[(0, _util.getRowIdentity)(row, rowKey)];\n } else {\n return selection.indexOf(row) !== -1;\n }\n };\n\n var isAllSelected = true;\n var selectedCount = 0;\n for (var i = 0, j = data.length; i < j; i++) {\n var item = data[i];\n var isRowSelectable = selectable && selectable.call(null, item, i);\n if (!isSelected(item)) {\n if (!selectable || isRowSelectable) {\n isAllSelected = false;\n break;\n }\n } else {\n selectedCount++;\n }\n }\n\n if (selectedCount === 0) isAllSelected = false;\n\n states.isAllSelected = isAllSelected;\n};\n\nTableStore.prototype.scheduleLayout = function (updateColumns) {\n if (updateColumns) {\n this.updateColumns();\n }\n this.table.debouncedUpdateLayout();\n};\n\nTableStore.prototype.setCurrentRowKey = function (key) {\n var states = this.states;\n var rowKey = states.rowKey;\n if (!rowKey) throw new Error('[Table] row-key should not be empty.');\n var data = states.data || [];\n var keysMap = getKeysMap(data, rowKey);\n var info = keysMap[key];\n states.currentRow = info ? info.row : null;\n};\n\nTableStore.prototype.updateCurrentRow = function () {\n var states = this.states;\n var table = this.table;\n var data = states.data || [];\n var oldCurrentRow = states.currentRow;\n\n if (data.indexOf(oldCurrentRow) === -1) {\n if (states.rowKey && oldCurrentRow) {\n var newCurrentRow = null;\n for (var i = 0; i < data.length; i++) {\n var item = data[i];\n if (item && item[states.rowKey] === oldCurrentRow[states.rowKey]) {\n newCurrentRow = item;\n break;\n }\n }\n if (newCurrentRow) {\n states.currentRow = newCurrentRow;\n return;\n }\n }\n states.currentRow = null;\n\n if (states.currentRow !== oldCurrentRow) {\n table.$emit('current-change', null, oldCurrentRow);\n }\n }\n};\n\nTableStore.prototype.commit = function (name) {\n var mutations = this.mutations;\n if (mutations[name]) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n mutations[name].apply(this, [this.states].concat(args));\n } else {\n throw new Error('Action not found: ' + name);\n }\n};\n\nexports.default = TableStore;\n\n/***/ }),\n\n/***/ 165:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _scrollbarWidth = __webpack_require__(38);\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _vue = __webpack_require__(4);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TableLayout = function () {\n function TableLayout(options) {\n _classCallCheck(this, TableLayout);\n\n this.observers = [];\n this.table = null;\n this.store = null;\n this.columns = null;\n this.fit = true;\n this.showHeader = true;\n\n this.height = null;\n this.scrollX = false;\n this.scrollY = false;\n this.bodyWidth = null;\n this.fixedWidth = null;\n this.rightFixedWidth = null;\n this.tableHeight = null;\n this.headerHeight = 44; // Table Header Height\n this.appendHeight = 0; // Append Slot Height\n this.footerHeight = 44; // Table Footer Height\n this.viewportHeight = null; // Table Height - Scroll Bar Height\n this.bodyHeight = null; // Table Height - Table Header Height\n this.fixedBodyHeight = null; // Table Height - Table Header Height - Scroll Bar Height\n this.gutterWidth = (0, _scrollbarWidth2.default)();\n\n for (var name in options) {\n if (options.hasOwnProperty(name)) {\n this[name] = options[name];\n }\n }\n\n if (!this.table) {\n throw new Error('table is required for Table Layout');\n }\n if (!this.store) {\n throw new Error('store is required for Table Layout');\n }\n }\n\n TableLayout.prototype.updateScrollY = function updateScrollY() {\n var height = this.height;\n if (typeof height !== 'string' && typeof height !== 'number') return;\n var bodyWrapper = this.table.bodyWrapper;\n if (this.table.$el && bodyWrapper) {\n var body = bodyWrapper.querySelector('.el-table__body');\n this.scrollY = body.offsetHeight > this.bodyHeight;\n }\n };\n\n TableLayout.prototype.setHeight = function setHeight(value) {\n var _this = this;\n\n var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'height';\n\n if (_vue2.default.prototype.$isServer) return;\n var el = this.table.$el;\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n value = Number(value);\n }\n this.height = value;\n\n if (!el && (value || value === 0)) return _vue2.default.nextTick(function () {\n return _this.setHeight(value, prop);\n });\n\n if (typeof value === 'number') {\n el.style[prop] = value + 'px';\n\n this.updateElsHeight();\n } else if (typeof value === 'string') {\n el.style[prop] = value;\n this.updateElsHeight();\n }\n };\n\n TableLayout.prototype.setMaxHeight = function setMaxHeight(value) {\n return this.setHeight(value, 'max-height');\n };\n\n TableLayout.prototype.updateElsHeight = function updateElsHeight() {\n var _this2 = this;\n\n if (!this.table.$ready) return _vue2.default.nextTick(function () {\n return _this2.updateElsHeight();\n });\n var _table$$refs = this.table.$refs,\n headerWrapper = _table$$refs.headerWrapper,\n appendWrapper = _table$$refs.appendWrapper,\n footerWrapper = _table$$refs.footerWrapper;\n\n this.appendHeight = appendWrapper ? appendWrapper.offsetHeight : 0;\n\n if (this.showHeader && !headerWrapper) return;\n var headerHeight = this.headerHeight = !this.showHeader ? 0 : headerWrapper.offsetHeight;\n if (this.showHeader && headerWrapper.offsetWidth > 0 && (this.table.columns || []).length > 0 && headerHeight < 2) {\n return _vue2.default.nextTick(function () {\n return _this2.updateElsHeight();\n });\n }\n var tableHeight = this.tableHeight = this.table.$el.clientHeight;\n if (this.height !== null && (!isNaN(this.height) || typeof this.height === 'string')) {\n var footerHeight = this.footerHeight = footerWrapper ? footerWrapper.offsetHeight : 0;\n this.bodyHeight = tableHeight - headerHeight - footerHeight + (footerWrapper ? 1 : 0);\n }\n this.fixedBodyHeight = this.scrollX ? this.bodyHeight - this.gutterWidth : this.bodyHeight;\n\n var noData = !this.table.data || this.table.data.length === 0;\n this.viewportHeight = this.scrollX ? tableHeight - (noData ? 0 : this.gutterWidth) : tableHeight;\n\n this.updateScrollY();\n this.notifyObservers('scrollable');\n };\n\n TableLayout.prototype.getFlattenColumns = function getFlattenColumns() {\n var flattenColumns = [];\n var columns = this.table.columns;\n columns.forEach(function (column) {\n if (column.isColumnGroup) {\n flattenColumns.push.apply(flattenColumns, column.columns);\n } else {\n flattenColumns.push(column);\n }\n });\n\n return flattenColumns;\n };\n\n TableLayout.prototype.updateColumnsWidth = function updateColumnsWidth() {\n if (_vue2.default.prototype.$isServer) return;\n var fit = this.fit;\n var bodyWidth = this.table.$el.clientWidth;\n var bodyMinWidth = 0;\n\n var flattenColumns = this.getFlattenColumns();\n var flexColumns = flattenColumns.filter(function (column) {\n return typeof column.width !== 'number';\n });\n\n flattenColumns.forEach(function (column) {\n // Clean those columns whose width changed from flex to unflex\n if (typeof column.width === 'number' && column.realWidth) column.realWidth = null;\n });\n\n if (flexColumns.length > 0 && fit) {\n flattenColumns.forEach(function (column) {\n bodyMinWidth += column.width || column.minWidth || 80;\n });\n\n var scrollYWidth = this.scrollY ? this.gutterWidth : 0;\n\n if (bodyMinWidth <= bodyWidth - scrollYWidth) {\n // DON'T HAVE SCROLL BAR\n this.scrollX = false;\n\n var totalFlexWidth = bodyWidth - scrollYWidth - bodyMinWidth;\n\n if (flexColumns.length === 1) {\n flexColumns[0].realWidth = (flexColumns[0].minWidth || 80) + totalFlexWidth;\n } else {\n (function () {\n var allColumnsWidth = flexColumns.reduce(function (prev, column) {\n return prev + (column.minWidth || 80);\n }, 0);\n var flexWidthPerPixel = totalFlexWidth / allColumnsWidth;\n var noneFirstWidth = 0;\n\n flexColumns.forEach(function (column, index) {\n if (index === 0) return;\n var flexWidth = Math.floor((column.minWidth || 80) * flexWidthPerPixel);\n noneFirstWidth += flexWidth;\n column.realWidth = (column.minWidth || 80) + flexWidth;\n });\n\n flexColumns[0].realWidth = (flexColumns[0].minWidth || 80) + totalFlexWidth - noneFirstWidth;\n })();\n }\n } else {\n // HAVE HORIZONTAL SCROLL BAR\n this.scrollX = true;\n flexColumns.forEach(function (column) {\n column.realWidth = column.minWidth;\n });\n }\n\n this.bodyWidth = Math.max(bodyMinWidth, bodyWidth);\n this.table.resizeState.width = this.bodyWidth;\n } else {\n flattenColumns.forEach(function (column) {\n if (!column.width && !column.minWidth) {\n column.realWidth = 80;\n } else {\n column.realWidth = column.width || column.minWidth;\n }\n\n bodyMinWidth += column.realWidth;\n });\n this.scrollX = bodyMinWidth > bodyWidth;\n\n this.bodyWidth = bodyMinWidth;\n }\n\n var fixedColumns = this.store.states.fixedColumns;\n\n if (fixedColumns.length > 0) {\n var fixedWidth = 0;\n fixedColumns.forEach(function (column) {\n fixedWidth += column.realWidth || column.width;\n });\n\n this.fixedWidth = fixedWidth;\n }\n\n var rightFixedColumns = this.store.states.rightFixedColumns;\n if (rightFixedColumns.length > 0) {\n var rightFixedWidth = 0;\n rightFixedColumns.forEach(function (column) {\n rightFixedWidth += column.realWidth || column.width;\n });\n\n this.rightFixedWidth = rightFixedWidth;\n }\n\n this.notifyObservers('columns');\n };\n\n TableLayout.prototype.addObserver = function addObserver(observer) {\n this.observers.push(observer);\n };\n\n TableLayout.prototype.removeObserver = function removeObserver(observer) {\n var index = this.observers.indexOf(observer);\n if (index !== -1) {\n this.observers.splice(index, 1);\n }\n };\n\n TableLayout.prototype.notifyObservers = function notifyObservers(event) {\n var _this3 = this;\n\n var observers = this.observers;\n observers.forEach(function (observer) {\n switch (event) {\n case 'columns':\n observer.onColumnsChange(_this3);\n break;\n case 'scrollable':\n observer.onScrollableChange(_this3);\n break;\n default:\n throw new Error('Table Layout don\\'t have event ' + event + '.');\n }\n });\n };\n\n return TableLayout;\n}();\n\nexports.default = TableLayout;\n\n/***/ }),\n\n/***/ 166:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __webpack_require__(48);\n\nvar _dom = __webpack_require__(3);\n\nvar _checkbox = __webpack_require__(16);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _tooltip = __webpack_require__(22);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _debounce = __webpack_require__(14);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _layoutObserver = __webpack_require__(39);\n\nvar _layoutObserver2 = _interopRequireDefault(_layoutObserver);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElTableBody',\n\n mixins: [_layoutObserver2.default],\n\n components: {\n ElCheckbox: _checkbox2.default,\n ElTooltip: _tooltip2.default\n },\n\n props: {\n store: {\n required: true\n },\n stripe: Boolean,\n context: {},\n rowClassName: [String, Function],\n rowStyle: [Object, Function],\n fixed: String,\n highlight: Boolean\n },\n\n render: function render(h) {\n var _this = this;\n\n var columnsHidden = this.columns.map(function (column, index) {\n return _this.isColumnHidden(index);\n });\n return h(\n 'table',\n {\n 'class': 'el-table__body',\n attrs: { cellspacing: '0',\n cellpadding: '0',\n border: '0' }\n },\n [h(\n 'colgroup',\n null,\n [this._l(this.columns, function (column) {\n return h(\n 'col',\n {\n attrs: { name: column.id }\n },\n []\n );\n })]\n ), h(\n 'tbody',\n null,\n [this._l(this.data, function (row, $index) {\n return [h(\n 'tr',\n {\n style: _this.rowStyle ? _this.getRowStyle(row, $index) : null,\n key: _this.table.rowKey ? _this.getKeyOfRow(row, $index) : $index,\n on: {\n 'dblclick': function dblclick($event) {\n return _this.handleDoubleClick($event, row);\n },\n 'click': function click($event) {\n return _this.handleClick($event, row);\n },\n 'contextmenu': function contextmenu($event) {\n return _this.handleContextMenu($event, row);\n },\n 'mouseenter': function mouseenter(_) {\n return _this.handleMouseEnter($index);\n },\n 'mouseleave': function mouseleave(_) {\n return _this.handleMouseLeave();\n }\n },\n\n 'class': [_this.getRowClass(row, $index)] },\n [_this._l(_this.columns, function (column, cellIndex) {\n var _getSpan = _this.getSpan(row, column, $index, cellIndex),\n rowspan = _getSpan.rowspan,\n colspan = _getSpan.colspan;\n\n if (!rowspan || !colspan) {\n return '';\n } else {\n return h(\n 'td',\n {\n style: _this.getCellStyle($index, cellIndex, row, column),\n 'class': _this.getCellClass($index, cellIndex, row, column),\n attrs: { rowspan: rowspan,\n colspan: colspan\n },\n on: {\n 'mouseenter': function mouseenter($event) {\n return _this.handleCellMouseEnter($event, row);\n },\n 'mouseleave': _this.handleCellMouseLeave\n }\n },\n [column.renderCell.call(_this._renderProxy, h, {\n row: row,\n column: column,\n $index: $index,\n store: _this.store,\n _self: _this.context || _this.table.$vnode.context\n }, columnsHidden[cellIndex])]\n );\n }\n })]\n ), _this.store.isRowExpanded(row) ? h(\n 'tr',\n null,\n [h(\n 'td',\n {\n attrs: { colspan: _this.columns.length },\n 'class': 'el-table__expanded-cell' },\n [_this.table.renderExpanded ? _this.table.renderExpanded(h, { row: row, $index: $index, store: _this.store }) : '']\n )]\n ) : ''];\n }).concat(h(\n 'el-tooltip',\n {\n attrs: { effect: this.table.tooltipEffect, placement: 'top', content: this.tooltipContent },\n ref: 'tooltip' },\n []\n ))]\n )]\n );\n },\n\n\n watch: {\n 'store.states.hoverRow': function storeStatesHoverRow(newVal, oldVal) {\n if (!this.store.states.isComplex) return;\n var el = this.$el;\n if (!el) return;\n var tr = el.querySelector('tbody').children;\n var rows = [].filter.call(tr, function (row) {\n return (0, _dom.hasClass)(row, 'el-table__row');\n });\n var oldRow = rows[oldVal];\n var newRow = rows[newVal];\n if (oldRow) {\n (0, _dom.removeClass)(oldRow, 'hover-row');\n }\n if (newRow) {\n (0, _dom.addClass)(newRow, 'hover-row');\n }\n },\n 'store.states.currentRow': function storeStatesCurrentRow(newVal, oldVal) {\n if (!this.highlight) return;\n var el = this.$el;\n if (!el) return;\n var data = this.store.states.data;\n var tr = el.querySelector('tbody').children;\n var rows = [].filter.call(tr, function (row) {\n return (0, _dom.hasClass)(row, 'el-table__row');\n });\n var oldRow = rows[data.indexOf(oldVal)];\n var newRow = rows[data.indexOf(newVal)];\n if (oldRow) {\n (0, _dom.removeClass)(oldRow, 'current-row');\n } else {\n [].forEach.call(rows, function (row) {\n return (0, _dom.removeClass)(row, 'current-row');\n });\n }\n if (newRow) {\n (0, _dom.addClass)(newRow, 'current-row');\n }\n }\n },\n\n computed: {\n table: function table() {\n return this.$parent;\n },\n data: function data() {\n return this.store.states.data;\n },\n columnsCount: function columnsCount() {\n return this.store.states.columns.length;\n },\n leftFixedLeafCount: function leftFixedLeafCount() {\n return this.store.states.fixedLeafColumnsLength;\n },\n rightFixedLeafCount: function rightFixedLeafCount() {\n return this.store.states.rightFixedLeafColumnsLength;\n },\n leftFixedCount: function leftFixedCount() {\n return this.store.states.fixedColumns.length;\n },\n rightFixedCount: function rightFixedCount() {\n return this.store.states.rightFixedColumns.length;\n },\n columns: function columns() {\n return this.store.states.columns;\n }\n },\n\n data: function data() {\n return {\n tooltipContent: ''\n };\n },\n created: function created() {\n this.activateTooltip = (0, _debounce2.default)(50, function (tooltip) {\n return tooltip.handleShowPopper();\n });\n },\n\n\n methods: {\n getKeyOfRow: function getKeyOfRow(row, index) {\n var rowKey = this.table.rowKey;\n if (rowKey) {\n return (0, _util.getRowIdentity)(row, rowKey);\n }\n return index;\n },\n isColumnHidden: function isColumnHidden(index) {\n if (this.fixed === true || this.fixed === 'left') {\n return index >= this.leftFixedLeafCount;\n } else if (this.fixed === 'right') {\n return index < this.columnsCount - this.rightFixedLeafCount;\n } else {\n return index < this.leftFixedLeafCount || index >= this.columnsCount - this.rightFixedLeafCount;\n }\n },\n getSpan: function getSpan(row, column, rowIndex, columnIndex) {\n var rowspan = 1;\n var colspan = 1;\n\n var fn = this.table.spanMethod;\n if (typeof fn === 'function') {\n var result = fn({\n row: row,\n column: column,\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n\n if (Array.isArray(result)) {\n rowspan = result[0];\n colspan = result[1];\n } else if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) === 'object') {\n rowspan = result.rowspan;\n colspan = result.colspan;\n }\n }\n\n return {\n rowspan: rowspan,\n colspan: colspan\n };\n },\n getRowStyle: function getRowStyle(row, rowIndex) {\n var rowStyle = this.table.rowStyle;\n if (typeof rowStyle === 'function') {\n return rowStyle.call(null, {\n row: row,\n rowIndex: rowIndex\n });\n }\n return rowStyle;\n },\n getRowClass: function getRowClass(row, rowIndex) {\n var classes = ['el-table__row'];\n if (this.table.highlightCurrentRow && row === this.store.states.currentRow) {\n classes.push('current-row');\n }\n\n if (this.stripe && rowIndex % 2 === 1) {\n classes.push('el-table__row--striped');\n }\n var rowClassName = this.table.rowClassName;\n if (typeof rowClassName === 'string') {\n classes.push(rowClassName);\n } else if (typeof rowClassName === 'function') {\n classes.push(rowClassName.call(null, {\n row: row,\n rowIndex: rowIndex\n }));\n }\n\n if (this.store.states.expandRows.indexOf(row) > -1) {\n classes.push('expanded');\n }\n\n return classes.join(' ');\n },\n getCellStyle: function getCellStyle(rowIndex, columnIndex, row, column) {\n var cellStyle = this.table.cellStyle;\n if (typeof cellStyle === 'function') {\n return cellStyle.call(null, {\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n row: row,\n column: column\n });\n }\n return cellStyle;\n },\n getCellClass: function getCellClass(rowIndex, columnIndex, row, column) {\n var classes = [column.id, column.align, column.className];\n\n if (this.isColumnHidden(columnIndex)) {\n classes.push('is-hidden');\n }\n\n var cellClassName = this.table.cellClassName;\n if (typeof cellClassName === 'string') {\n classes.push(cellClassName);\n } else if (typeof cellClassName === 'function') {\n classes.push(cellClassName.call(null, {\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n row: row,\n column: column\n }));\n }\n\n return classes.join(' ');\n },\n handleCellMouseEnter: function handleCellMouseEnter(event, row) {\n var table = this.table;\n var cell = (0, _util.getCell)(event);\n\n if (cell) {\n var column = (0, _util.getColumnByCell)(table, cell);\n var hoverState = table.hoverState = { cell: cell, column: column, row: row };\n table.$emit('cell-mouse-enter', hoverState.row, hoverState.column, hoverState.cell, event);\n }\n\n // 判断是否text-overflow, 如果是就显示tooltip\n var cellChild = event.target.querySelector('.cell');\n if (!((0, _dom.hasClass)(cellChild, 'el-tooltip') && cellChild.childNodes.length)) {\n return;\n }\n // use range width instead of scrollWidth to determine whether the text is overflowing\n // to address a potential FireFox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1074543#c3\n var range = document.createRange();\n range.setStart(cellChild, 0);\n range.setEnd(cellChild, cellChild.childNodes.length);\n var rangeWidth = range.getBoundingClientRect().width;\n var padding = (parseInt((0, _dom.getStyle)(cellChild, 'paddingLeft'), 10) || 0) + (parseInt((0, _dom.getStyle)(cellChild, 'paddingRight'), 10) || 0);\n if ((rangeWidth + padding > cellChild.offsetWidth || cellChild.scrollWidth > cellChild.offsetWidth) && this.$refs.tooltip) {\n var tooltip = this.$refs.tooltip;\n // TODO 会引起整个 Table 的重新渲染,需要优化\n this.tooltipContent = cell.innerText || cell.textContent;\n tooltip.referenceElm = cell;\n tooltip.$refs.popper && (tooltip.$refs.popper.style.display = 'none');\n tooltip.doDestroy();\n tooltip.setExpectedState(true);\n this.activateTooltip(tooltip);\n }\n },\n handleCellMouseLeave: function handleCellMouseLeave(event) {\n var tooltip = this.$refs.tooltip;\n if (tooltip) {\n tooltip.setExpectedState(false);\n tooltip.handleClosePopper();\n }\n var cell = (0, _util.getCell)(event);\n if (!cell) return;\n\n var oldHoverState = this.table.hoverState || {};\n this.table.$emit('cell-mouse-leave', oldHoverState.row, oldHoverState.column, oldHoverState.cell, event);\n },\n handleMouseEnter: function handleMouseEnter(index) {\n this.store.commit('setHoverRow', index);\n },\n handleMouseLeave: function handleMouseLeave() {\n this.store.commit('setHoverRow', null);\n },\n handleContextMenu: function handleContextMenu(event, row) {\n this.handleEvent(event, row, 'contextmenu');\n },\n handleDoubleClick: function handleDoubleClick(event, row) {\n this.handleEvent(event, row, 'dblclick');\n },\n handleClick: function handleClick(event, row) {\n this.store.commit('setCurrentRow', row);\n this.handleEvent(event, row, 'click');\n },\n handleEvent: function handleEvent(event, row, name) {\n var table = this.table;\n var cell = (0, _util.getCell)(event);\n var column = void 0;\n if (cell) {\n column = (0, _util.getColumnByCell)(table, cell);\n if (column) {\n table.$emit('cell-' + name, row, column, cell, event);\n }\n }\n table.$emit('row-' + name, row, event, column);\n },\n handleExpandClick: function handleExpandClick(row, e) {\n e.stopPropagation();\n this.store.toggleRowExpansion(row);\n }\n }\n};\n\n/***/ }),\n\n/***/ 167:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(3);\n\nvar _checkbox = __webpack_require__(16);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _vue = __webpack_require__(4);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _filterPanel = __webpack_require__(168);\n\nvar _filterPanel2 = _interopRequireDefault(_filterPanel);\n\nvar _layoutObserver = __webpack_require__(39);\n\nvar _layoutObserver2 = _interopRequireDefault(_layoutObserver);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getAllColumns = function getAllColumns(columns) {\n var result = [];\n columns.forEach(function (column) {\n if (column.children) {\n result.push(column);\n result.push.apply(result, getAllColumns(column.children));\n } else {\n result.push(column);\n }\n });\n return result;\n};\n\nvar convertToRows = function convertToRows(originColumns) {\n var maxLevel = 1;\n var traverse = function traverse(column, parent) {\n if (parent) {\n column.level = parent.level + 1;\n if (maxLevel < column.level) {\n maxLevel = column.level;\n }\n }\n if (column.children) {\n var colSpan = 0;\n column.children.forEach(function (subColumn) {\n traverse(subColumn, column);\n colSpan += subColumn.colSpan;\n });\n column.colSpan = colSpan;\n } else {\n column.colSpan = 1;\n }\n };\n\n originColumns.forEach(function (column) {\n column.level = 1;\n traverse(column);\n });\n\n var rows = [];\n for (var i = 0; i < maxLevel; i++) {\n rows.push([]);\n }\n\n var allColumns = getAllColumns(originColumns);\n\n allColumns.forEach(function (column) {\n if (!column.children) {\n column.rowSpan = maxLevel - column.level + 1;\n } else {\n column.rowSpan = 1;\n }\n rows[column.level - 1].push(column);\n });\n\n return rows;\n};\n\nexports.default = {\n name: 'ElTableHeader',\n\n mixins: [_layoutObserver2.default],\n\n render: function render(h) {\n var _this = this;\n\n var originColumns = this.store.states.originColumns;\n var columnRows = convertToRows(originColumns, this.columns);\n // 是否拥有多级表头\n var isGroup = columnRows.length > 1;\n if (isGroup) this.$parent.isGroup = true;\n return h(\n 'table',\n {\n 'class': 'el-table__header',\n attrs: { cellspacing: '0',\n cellpadding: '0',\n border: '0' }\n },\n [h(\n 'colgroup',\n null,\n [this._l(this.columns, function (column) {\n return h(\n 'col',\n {\n attrs: { name: column.id }\n },\n []\n );\n }), this.hasGutter ? h(\n 'col',\n {\n attrs: { name: 'gutter' }\n },\n []\n ) : '']\n ), h(\n 'thead',\n { 'class': [{ 'is-group': isGroup, 'has-gutter': this.hasGutter }] },\n [this._l(columnRows, function (columns, rowIndex) {\n return h(\n 'tr',\n {\n style: _this.getHeaderRowStyle(rowIndex),\n 'class': _this.getHeaderRowClass(rowIndex)\n },\n [_this._l(columns, function (column, cellIndex) {\n return h(\n 'th',\n {\n attrs: {\n colspan: column.colSpan,\n rowspan: column.rowSpan\n },\n on: {\n 'mousemove': function mousemove($event) {\n return _this.handleMouseMove($event, column);\n },\n 'mouseout': _this.handleMouseOut,\n 'mousedown': function mousedown($event) {\n return _this.handleMouseDown($event, column);\n },\n 'click': function click($event) {\n return _this.handleHeaderClick($event, column);\n },\n 'contextmenu': function contextmenu($event) {\n return _this.handleHeaderContextMenu($event, column);\n }\n },\n\n style: _this.getHeaderCellStyle(rowIndex, cellIndex, columns, column),\n 'class': _this.getHeaderCellClass(rowIndex, cellIndex, columns, column),\n key: column.id },\n [h(\n 'div',\n { 'class': ['cell', column.filteredValue && column.filteredValue.length > 0 ? 'highlight' : '', column.labelClassName] },\n [column.renderHeader ? column.renderHeader.call(_this._renderProxy, h, { column: column, $index: cellIndex, store: _this.store, _self: _this.$parent.$vnode.context }) : column.label, column.sortable ? h(\n 'span',\n { 'class': 'caret-wrapper', on: {\n 'click': function click($event) {\n return _this.handleSortClick($event, column);\n }\n }\n },\n [h(\n 'i',\n { 'class': 'sort-caret ascending', on: {\n 'click': function click($event) {\n return _this.handleSortClick($event, column, 'ascending');\n }\n }\n },\n []\n ), h(\n 'i',\n { 'class': 'sort-caret descending', on: {\n 'click': function click($event) {\n return _this.handleSortClick($event, column, 'descending');\n }\n }\n },\n []\n )]\n ) : '', column.filterable ? h(\n 'span',\n { 'class': 'el-table__column-filter-trigger', on: {\n 'click': function click($event) {\n return _this.handleFilterClick($event, column);\n }\n }\n },\n [h(\n 'i',\n { 'class': ['el-icon-arrow-down', column.filterOpened ? 'el-icon-arrow-up' : ''] },\n []\n )]\n ) : '']\n )]\n );\n }), _this.hasGutter ? h(\n 'th',\n { 'class': 'gutter' },\n []\n ) : '']\n );\n })]\n )]\n );\n },\n\n\n props: {\n fixed: String,\n store: {\n required: true\n },\n border: Boolean,\n defaultSort: {\n type: Object,\n default: function _default() {\n return {\n prop: '',\n order: ''\n };\n }\n }\n },\n\n components: {\n ElCheckbox: _checkbox2.default,\n ElTag: _tag2.default\n },\n\n computed: {\n table: function table() {\n return this.$parent;\n },\n isAllSelected: function isAllSelected() {\n return this.store.states.isAllSelected;\n },\n columnsCount: function columnsCount() {\n return this.store.states.columns.length;\n },\n leftFixedCount: function leftFixedCount() {\n return this.store.states.fixedColumns.length;\n },\n rightFixedCount: function rightFixedCount() {\n return this.store.states.rightFixedColumns.length;\n },\n leftFixedLeafCount: function leftFixedLeafCount() {\n return this.store.states.fixedLeafColumnsLength;\n },\n rightFixedLeafCount: function rightFixedLeafCount() {\n return this.store.states.rightFixedLeafColumnsLength;\n },\n columns: function columns() {\n return this.store.states.columns;\n },\n hasGutter: function hasGutter() {\n return !this.fixed && this.tableLayout.gutterWidth;\n }\n },\n\n created: function created() {\n this.filterPanels = {};\n },\n mounted: function mounted() {\n var _defaultSort = this.defaultSort,\n prop = _defaultSort.prop,\n order = _defaultSort.order;\n\n this.store.commit('sort', { prop: prop, order: order });\n },\n beforeDestroy: function beforeDestroy() {\n var panels = this.filterPanels;\n for (var prop in panels) {\n if (panels.hasOwnProperty(prop) && panels[prop]) {\n panels[prop].$destroy(true);\n }\n }\n },\n\n\n methods: {\n isCellHidden: function isCellHidden(index, columns) {\n var start = 0;\n for (var i = 0; i < index; i++) {\n start += columns[i].colSpan;\n }\n var after = start + columns[index].colSpan - 1;\n if (this.fixed === true || this.fixed === 'left') {\n return after >= this.leftFixedLeafCount;\n } else if (this.fixed === 'right') {\n return start < this.columnsCount - this.rightFixedLeafCount;\n } else {\n return after < this.leftFixedLeafCount || start >= this.columnsCount - this.rightFixedLeafCount;\n }\n },\n getHeaderRowStyle: function getHeaderRowStyle(rowIndex) {\n var headerRowStyle = this.table.headerRowStyle;\n if (typeof headerRowStyle === 'function') {\n return headerRowStyle.call(null, { rowIndex: rowIndex });\n }\n return headerRowStyle;\n },\n getHeaderRowClass: function getHeaderRowClass(rowIndex) {\n var classes = [];\n\n var headerRowClassName = this.table.headerRowClassName;\n if (typeof headerRowClassName === 'string') {\n classes.push(headerRowClassName);\n } else if (typeof headerRowClassName === 'function') {\n classes.push(headerRowClassName.call(null, { rowIndex: rowIndex }));\n }\n\n return classes.join(' ');\n },\n getHeaderCellStyle: function getHeaderCellStyle(rowIndex, columnIndex, row, column) {\n var headerCellStyle = this.table.headerCellStyle;\n if (typeof headerCellStyle === 'function') {\n return headerCellStyle.call(null, {\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n row: row,\n column: column\n });\n }\n return headerCellStyle;\n },\n getHeaderCellClass: function getHeaderCellClass(rowIndex, columnIndex, row, column) {\n var classes = [column.id, column.order, column.headerAlign, column.className, column.labelClassName];\n\n if (rowIndex === 0 && this.isCellHidden(columnIndex, row)) {\n classes.push('is-hidden');\n }\n\n if (!column.children) {\n classes.push('is-leaf');\n }\n\n if (column.sortable) {\n classes.push('is-sortable');\n }\n\n var headerCellClassName = this.table.headerCellClassName;\n if (typeof headerCellClassName === 'string') {\n classes.push(headerCellClassName);\n } else if (typeof headerCellClassName === 'function') {\n classes.push(headerCellClassName.call(null, {\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n row: row,\n column: column\n }));\n }\n\n return classes.join(' ');\n },\n toggleAllSelection: function toggleAllSelection(event) {\n event.stopPropagation();\n this.store.commit('toggleAllSelection');\n },\n handleFilterClick: function handleFilterClick(event, column) {\n event.stopPropagation();\n var target = event.target;\n var cell = target.tagName === 'TH' ? target : target.parentNode;\n cell = cell.querySelector('.el-table__column-filter-trigger') || cell;\n var table = this.$parent;\n\n var filterPanel = this.filterPanels[column.id];\n\n if (filterPanel && column.filterOpened) {\n filterPanel.showPopper = false;\n return;\n }\n\n if (!filterPanel) {\n filterPanel = new _vue2.default(_filterPanel2.default);\n this.filterPanels[column.id] = filterPanel;\n if (column.filterPlacement) {\n filterPanel.placement = column.filterPlacement;\n }\n filterPanel.table = table;\n filterPanel.cell = cell;\n filterPanel.column = column;\n !this.$isServer && filterPanel.$mount(document.createElement('div'));\n }\n\n setTimeout(function () {\n filterPanel.showPopper = true;\n }, 16);\n },\n handleHeaderClick: function handleHeaderClick(event, column) {\n if (!column.filters && column.sortable) {\n this.handleSortClick(event, column);\n } else if (column.filterable && !column.sortable) {\n this.handleFilterClick(event, column);\n }\n\n this.$parent.$emit('header-click', column, event);\n },\n handleHeaderContextMenu: function handleHeaderContextMenu(event, column) {\n this.$parent.$emit('header-contextmenu', column, event);\n },\n handleMouseDown: function handleMouseDown(event, column) {\n var _this2 = this;\n\n if (this.$isServer) return;\n if (column.children && column.children.length > 0) return;\n /* istanbul ignore if */\n if (this.draggingColumn && this.border) {\n (function () {\n _this2.dragging = true;\n\n _this2.$parent.resizeProxyVisible = true;\n\n var table = _this2.$parent;\n var tableEl = table.$el;\n var tableLeft = tableEl.getBoundingClientRect().left;\n var columnEl = _this2.$el.querySelector('th.' + column.id);\n var columnRect = columnEl.getBoundingClientRect();\n var minLeft = columnRect.left - tableLeft + 30;\n\n (0, _dom.addClass)(columnEl, 'noclick');\n\n _this2.dragState = {\n startMouseLeft: event.clientX,\n startLeft: columnRect.right - tableLeft,\n startColumnLeft: columnRect.left - tableLeft,\n tableLeft: tableLeft\n };\n\n var resizeProxy = table.$refs.resizeProxy;\n resizeProxy.style.left = _this2.dragState.startLeft + 'px';\n\n document.onselectstart = function () {\n return false;\n };\n document.ondragstart = function () {\n return false;\n };\n\n var handleMouseMove = function handleMouseMove(event) {\n var deltaLeft = event.clientX - _this2.dragState.startMouseLeft;\n var proxyLeft = _this2.dragState.startLeft + deltaLeft;\n\n resizeProxy.style.left = Math.max(minLeft, proxyLeft) + 'px';\n };\n\n var handleMouseUp = function handleMouseUp() {\n if (_this2.dragging) {\n var _dragState = _this2.dragState,\n startColumnLeft = _dragState.startColumnLeft,\n startLeft = _dragState.startLeft;\n\n var finalLeft = parseInt(resizeProxy.style.left, 10);\n var columnWidth = finalLeft - startColumnLeft;\n column.width = column.realWidth = columnWidth;\n table.$emit('header-dragend', column.width, startLeft - startColumnLeft, column, event);\n\n _this2.store.scheduleLayout();\n\n document.body.style.cursor = '';\n _this2.dragging = false;\n _this2.draggingColumn = null;\n _this2.dragState = {};\n\n table.resizeProxyVisible = false;\n }\n\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n document.onselectstart = null;\n document.ondragstart = null;\n\n setTimeout(function () {\n (0, _dom.removeClass)(columnEl, 'noclick');\n }, 0);\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n })();\n }\n },\n handleMouseMove: function handleMouseMove(event, column) {\n if (column.children && column.children.length > 0) return;\n var target = event.target;\n while (target && target.tagName !== 'TH') {\n target = target.parentNode;\n }\n\n if (!column || !column.resizable) return;\n\n if (!this.dragging && this.border) {\n var rect = target.getBoundingClientRect();\n\n var bodyStyle = document.body.style;\n if (rect.width > 12 && rect.right - event.pageX < 8) {\n bodyStyle.cursor = 'col-resize';\n if ((0, _dom.hasClass)(target, 'is-sortable')) {\n target.style.cursor = 'col-resize';\n }\n this.draggingColumn = column;\n } else if (!this.dragging) {\n bodyStyle.cursor = '';\n if ((0, _dom.hasClass)(target, 'is-sortable')) {\n target.style.cursor = 'pointer';\n }\n this.draggingColumn = null;\n }\n }\n },\n handleMouseOut: function handleMouseOut() {\n if (this.$isServer) return;\n document.body.style.cursor = '';\n },\n toggleOrder: function toggleOrder(_ref) {\n var order = _ref.order,\n sortOrders = _ref.sortOrders;\n\n if (order === '') return sortOrders[0];\n var index = sortOrders.indexOf(order || null);\n return sortOrders[index > sortOrders.length - 2 ? 0 : index + 1];\n },\n handleSortClick: function handleSortClick(event, column, givenOrder) {\n event.stopPropagation();\n var order = givenOrder || this.toggleOrder(column);\n\n var target = event.target;\n while (target && target.tagName !== 'TH') {\n target = target.parentNode;\n }\n\n if (target && target.tagName === 'TH') {\n if ((0, _dom.hasClass)(target, 'noclick')) {\n (0, _dom.removeClass)(target, 'noclick');\n return;\n }\n }\n\n if (!column.sortable) return;\n\n var states = this.store.states;\n var sortProp = states.sortProp;\n var sortOrder = void 0;\n var sortingColumn = states.sortingColumn;\n\n if (sortingColumn !== column || sortingColumn === column && sortingColumn.order === null) {\n if (sortingColumn) {\n sortingColumn.order = null;\n }\n states.sortingColumn = column;\n sortProp = column.property;\n }\n\n if (!order) {\n sortOrder = column.order = null;\n states.sortingColumn = null;\n sortProp = null;\n } else {\n sortOrder = column.order = order;\n }\n\n states.sortProp = sortProp;\n states.sortOrder = sortOrder;\n\n this.store.commit('changeSortCondition');\n }\n },\n\n data: function data() {\n return {\n draggingColumn: null,\n dragging: false,\n dragState: {}\n };\n }\n};\n\n/***/ }),\n\n/***/ 168:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue__ = __webpack_require__(169);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_784f4ebc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_filter_panel_vue__ = __webpack_require__(171);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_784f4ebc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_filter_panel_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 169:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(7);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _popup = __webpack_require__(13);\n\nvar _locale = __webpack_require__(5);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _clickoutside = __webpack_require__(10);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _dropdown = __webpack_require__(170);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nvar _checkbox = __webpack_require__(16);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _checkboxGroup = __webpack_require__(40);\n\nvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElTableFilterPanel',\n\n mixins: [_vuePopper2.default, _locale2.default],\n\n directives: {\n Clickoutside: _clickoutside2.default\n },\n\n components: {\n ElCheckbox: _checkbox2.default,\n ElCheckboxGroup: _checkboxGroup2.default\n },\n\n props: {\n placement: {\n type: String,\n default: 'bottom-end'\n }\n },\n\n customRender: function customRender(h) {\n return h(\n 'div',\n { 'class': 'el-table-filter' },\n [h(\n 'div',\n { 'class': 'el-table-filter__content' },\n []\n ), h(\n 'div',\n { 'class': 'el-table-filter__bottom' },\n [h(\n 'button',\n {\n on: {\n 'click': this.handleConfirm\n }\n },\n [this.t('el.table.confirmFilter')]\n ), h(\n 'button',\n {\n on: {\n 'click': this.handleReset\n }\n },\n [this.t('el.table.resetFilter')]\n )]\n )]\n );\n },\n\n\n methods: {\n isActive: function isActive(filter) {\n return filter.value === this.filterValue;\n },\n handleOutsideClick: function handleOutsideClick() {\n var _this = this;\n\n setTimeout(function () {\n _this.showPopper = false;\n }, 16);\n },\n handleConfirm: function handleConfirm() {\n this.confirmFilter(this.filteredValue);\n this.handleOutsideClick();\n },\n handleReset: function handleReset() {\n this.filteredValue = [];\n this.confirmFilter(this.filteredValue);\n this.handleOutsideClick();\n },\n handleSelect: function handleSelect(filterValue) {\n this.filterValue = filterValue;\n\n if (typeof filterValue !== 'undefined' && filterValue !== null) {\n this.confirmFilter(this.filteredValue);\n } else {\n this.confirmFilter([]);\n }\n\n this.handleOutsideClick();\n },\n confirmFilter: function confirmFilter(filteredValue) {\n this.table.store.commit('filterChange', {\n column: this.column,\n values: filteredValue\n });\n this.table.store.updateAllSelected();\n }\n },\n\n data: function data() {\n return {\n table: null,\n cell: null,\n column: null\n };\n },\n\n\n computed: {\n filters: function filters() {\n return this.column && this.column.filters;\n },\n\n\n filterValue: {\n get: function get() {\n return (this.column.filteredValue || [])[0];\n },\n set: function set(value) {\n if (this.filteredValue) {\n if (typeof value !== 'undefined' && value !== null) {\n this.filteredValue.splice(0, 1, value);\n } else {\n this.filteredValue.splice(0, 1);\n }\n }\n }\n },\n\n filteredValue: {\n get: function get() {\n if (this.column) {\n return this.column.filteredValue || [];\n }\n return [];\n },\n set: function set(value) {\n if (this.column) {\n this.column.filteredValue = value;\n }\n }\n },\n\n multiple: function multiple() {\n if (this.column) {\n return this.column.filterMultiple;\n }\n return true;\n }\n },\n\n mounted: function mounted() {\n var _this2 = this;\n\n this.popperElm = this.$el;\n this.referenceElm = this.cell;\n this.table.bodyWrapper.addEventListener('scroll', function () {\n _this2.updatePopper();\n });\n\n this.$watch('showPopper', function (value) {\n if (_this2.column) _this2.column.filterOpened = value;\n if (value) {\n _dropdown2.default.open(_this2);\n } else {\n _dropdown2.default.close(_this2);\n }\n });\n },\n\n watch: {\n showPopper: function showPopper(val) {\n if (val === true && parseInt(this.popperJS._popper.style.zIndex, 10) < _popup.PopupManager.zIndex) {\n this.popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();\n }\n }\n }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 170:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(4);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dropdowns = [];\n\n!_vue2.default.prototype.$isServer && document.addEventListener('click', function (event) {\n dropdowns.forEach(function (dropdown) {\n var target = event.target;\n if (!dropdown || !dropdown.$el) return;\n if (target === dropdown.$el || dropdown.$el.contains(target)) {\n return;\n }\n dropdown.handleOutsideClick && dropdown.handleOutsideClick(event);\n });\n});\n\nexports.default = {\n open: function open(instance) {\n if (instance) {\n dropdowns.push(instance);\n }\n },\n close: function close(instance) {\n var index = dropdowns.indexOf(instance);\n if (index !== -1) {\n dropdowns.splice(instance, 1);\n }\n }\n};\n\n/***/ }),\n\n/***/ 171:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[(_vm.multiple)?_c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleOutsideClick),expression:\"handleOutsideClick\"},{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-table-filter\"},[_c('div',{staticClass:\"el-table-filter__content\"},[_c('el-scrollbar',{attrs:{\"wrap-class\":\"el-table-filter__wrap\"}},[_c('el-checkbox-group',{staticClass:\"el-table-filter__checkbox-group\",model:{value:(_vm.filteredValue),callback:function ($$v) {_vm.filteredValue=$$v},expression:\"filteredValue\"}},_vm._l((_vm.filters),function(filter){return _c('el-checkbox',{key:filter.value,attrs:{\"label\":filter.value}},[_vm._v(_vm._s(filter.text))])}))],1)],1),_c('div',{staticClass:\"el-table-filter__bottom\"},[_c('button',{class:{ 'is-disabled': _vm.filteredValue.length === 0 },attrs:{\"disabled\":_vm.filteredValue.length === 0},on:{\"click\":_vm.handleConfirm}},[_vm._v(_vm._s(_vm.t('el.table.confirmFilter')))]),_c('button',{on:{\"click\":_vm.handleReset}},[_vm._v(_vm._s(_vm.t('el.table.resetFilter')))])])]):_c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleOutsideClick),expression:\"handleOutsideClick\"},{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-table-filter\"},[_c('ul',{staticClass:\"el-table-filter__list\"},[_c('li',{staticClass:\"el-table-filter__list-item\",class:{ 'is-active': _vm.filterValue === undefined || _vm.filterValue === null },on:{\"click\":function($event){_vm.handleSelect(null)}}},[_vm._v(_vm._s(_vm.t('el.table.clearFilter')))]),_vm._l((_vm.filters),function(filter){return _c('li',{key:filter.value,staticClass:\"el-table-filter__list-item\",class:{ 'is-active': _vm.isActive(filter) },attrs:{\"label\":filter.value},on:{\"click\":function($event){_vm.handleSelect(filter.value)}}},[_vm._v(_vm._s(filter.text))])})],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 172:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _layoutObserver = __webpack_require__(39);\n\nvar _layoutObserver2 = _interopRequireDefault(_layoutObserver);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElTableFooter',\n\n mixins: [_layoutObserver2.default],\n\n render: function render(h) {\n var _this = this;\n\n var sums = [];\n if (this.summaryMethod) {\n sums = this.summaryMethod({ columns: this.columns, data: this.store.states.data });\n } else {\n this.columns.forEach(function (column, index) {\n if (index === 0) {\n sums[index] = _this.sumText;\n return;\n }\n var values = _this.store.states.data.map(function (item) {\n return Number(item[column.property]);\n });\n var precisions = [];\n var notNumber = true;\n values.forEach(function (value) {\n if (!isNaN(value)) {\n notNumber = false;\n var decimal = ('' + value).split('.')[1];\n precisions.push(decimal ? decimal.length : 0);\n }\n });\n var precision = Math.max.apply(null, precisions);\n if (!notNumber) {\n sums[index] = values.reduce(function (prev, curr) {\n var value = Number(curr);\n if (!isNaN(value)) {\n return parseFloat((prev + curr).toFixed(Math.min(precision, 20)));\n } else {\n return prev;\n }\n }, 0);\n } else {\n sums[index] = '';\n }\n });\n }\n\n return h(\n 'table',\n {\n 'class': 'el-table__footer',\n attrs: { cellspacing: '0',\n cellpadding: '0',\n border: '0' }\n },\n [h(\n 'colgroup',\n null,\n [this._l(this.columns, function (column) {\n return h(\n 'col',\n {\n attrs: { name: column.id }\n },\n []\n );\n }), this.hasGutter ? h(\n 'col',\n {\n attrs: { name: 'gutter' }\n },\n []\n ) : '']\n ), h(\n 'tbody',\n { 'class': [{ 'has-gutter': this.hasGutter }] },\n [h(\n 'tr',\n null,\n [this._l(this.columns, function (column, cellIndex) {\n return h(\n 'td',\n {\n attrs: {\n colspan: column.colSpan,\n rowspan: column.rowSpan\n },\n 'class': [column.id, column.headerAlign, column.className || '', _this.isCellHidden(cellIndex, _this.columns) ? 'is-hidden' : '', !column.children ? 'is-leaf' : '', column.labelClassName] },\n [h(\n 'div',\n { 'class': ['cell', column.labelClassName] },\n [sums[cellIndex]]\n )]\n );\n }), this.hasGutter ? h(\n 'th',\n { 'class': 'gutter' },\n []\n ) : '']\n )]\n )]\n );\n },\n\n\n props: {\n fixed: String,\n store: {\n required: true\n },\n summaryMethod: Function,\n sumText: String,\n border: Boolean,\n defaultSort: {\n type: Object,\n default: function _default() {\n return {\n prop: '',\n order: ''\n };\n }\n }\n },\n\n computed: {\n table: function table() {\n return this.$parent;\n },\n isAllSelected: function isAllSelected() {\n return this.store.states.isAllSelected;\n },\n columnsCount: function columnsCount() {\n return this.store.states.columns.length;\n },\n leftFixedCount: function leftFixedCount() {\n return this.store.states.fixedColumns.length;\n },\n rightFixedCount: function rightFixedCount() {\n return this.store.states.rightFixedColumns.length;\n },\n columns: function columns() {\n return this.store.states.columns;\n },\n hasGutter: function hasGutter() {\n return !this.fixed && this.tableLayout.gutterWidth;\n }\n },\n\n methods: {\n isCellHidden: function isCellHidden(index, columns) {\n if (this.fixed === true || this.fixed === 'left') {\n return index >= this.leftFixedCount;\n } else if (this.fixed === 'right') {\n var before = 0;\n for (var i = 0; i < index; i++) {\n before += columns[i].colSpan;\n }\n return before < this.columnsCount - this.rightFixedCount;\n } else {\n return index < this.leftFixedCount || index >= this.columnsCount - this.rightFixedCount;\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ 173:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-table\",class:[{\n 'el-table--fit': _vm.fit,\n 'el-table--striped': _vm.stripe,\n 'el-table--border': _vm.border || _vm.isGroup,\n 'el-table--hidden': _vm.isHidden,\n 'el-table--group': _vm.isGroup,\n 'el-table--fluid-height': _vm.maxHeight,\n 'el-table--scrollable-x': _vm.layout.scrollX,\n 'el-table--scrollable-y': _vm.layout.scrollY,\n 'el-table--enable-row-hover': !_vm.store.states.isComplex,\n 'el-table--enable-row-transition': (_vm.store.states.data || []).length !== 0 && (_vm.store.states.data || []).length < 100\n }, _vm.tableSize ? (\"el-table--\" + _vm.tableSize) : ''],on:{\"mouseleave\":function($event){_vm.handleMouseLeave($event)}}},[_c('div',{ref:\"hiddenColumns\",staticClass:\"hidden-columns\"},[_vm._t(\"default\")],2),(_vm.showHeader)?_c('div',{directives:[{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleHeaderFooterMousewheel),expression:\"handleHeaderFooterMousewheel\"}],ref:\"headerWrapper\",staticClass:\"el-table__header-wrapper\"},[_c('table-header',{ref:\"tableHeader\",style:({\n width: _vm.layout.bodyWidth ? _vm.layout.bodyWidth + 'px' : ''\n }),attrs:{\"store\":_vm.store,\"border\":_vm.border,\"default-sort\":_vm.defaultSort}})],1):_vm._e(),_c('div',{ref:\"bodyWrapper\",staticClass:\"el-table__body-wrapper\",class:[_vm.layout.scrollX ? (\"is-scrolling-\" + _vm.scrollPosition) : 'is-scrolling-none'],style:([_vm.bodyHeight])},[_c('table-body',{style:({\n width: _vm.bodyWidth\n }),attrs:{\"context\":_vm.context,\"store\":_vm.store,\"stripe\":_vm.stripe,\"row-class-name\":_vm.rowClassName,\"row-style\":_vm.rowStyle,\"highlight\":_vm.highlightCurrentRow}}),(!_vm.data || _vm.data.length === 0)?_c('div',{ref:\"emptyBlock\",staticClass:\"el-table__empty-block\",style:({\n width: _vm.bodyWidth\n })},[_c('span',{staticClass:\"el-table__empty-text\"},[_vm._t(\"empty\",[_vm._v(_vm._s(_vm.emptyText || _vm.t('el.table.emptyText')))])],2)]):_vm._e(),(_vm.$slots.append)?_c('div',{ref:\"appendWrapper\",staticClass:\"el-table__append-wrapper\"},[_vm._t(\"append\")],2):_vm._e()],1),(_vm.showSummary)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data && _vm.data.length > 0),expression:\"data && data.length > 0\"},{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleHeaderFooterMousewheel),expression:\"handleHeaderFooterMousewheel\"}],ref:\"footerWrapper\",staticClass:\"el-table__footer-wrapper\"},[_c('table-footer',{style:({\n width: _vm.layout.bodyWidth ? _vm.layout.bodyWidth + 'px' : ''\n }),attrs:{\"store\":_vm.store,\"border\":_vm.border,\"sum-text\":_vm.sumText || _vm.t('el.table.sumText'),\"summary-method\":_vm.summaryMethod,\"default-sort\":_vm.defaultSort}})],1):_vm._e(),(_vm.fixedColumns.length > 0)?_c('div',{directives:[{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleFixedMousewheel),expression:\"handleFixedMousewheel\"}],ref:\"fixedWrapper\",staticClass:\"el-table__fixed\",style:([{\n width: _vm.layout.fixedWidth ? _vm.layout.fixedWidth + 'px' : ''\n },\n _vm.fixedHeight])},[(_vm.showHeader)?_c('div',{ref:\"fixedHeaderWrapper\",staticClass:\"el-table__fixed-header-wrapper\"},[_c('table-header',{ref:\"fixedTableHeader\",style:({\n width: _vm.bodyWidth\n }),attrs:{\"fixed\":\"left\",\"border\":_vm.border,\"store\":_vm.store}})],1):_vm._e(),_c('div',{ref:\"fixedBodyWrapper\",staticClass:\"el-table__fixed-body-wrapper\",style:([{\n top: _vm.layout.headerHeight + 'px'\n },\n _vm.fixedBodyHeight])},[_c('table-body',{style:({\n width: _vm.bodyWidth\n }),attrs:{\"fixed\":\"left\",\"store\":_vm.store,\"stripe\":_vm.stripe,\"highlight\":_vm.highlightCurrentRow,\"row-class-name\":_vm.rowClassName,\"row-style\":_vm.rowStyle}}),(_vm.$slots.append)?_c('div',{staticClass:\"el-table__append-gutter\",style:({\n height: _vm.layout.appendHeight + 'px'\n })}):_vm._e()],1),(_vm.showSummary)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data && _vm.data.length > 0),expression:\"data && data.length > 0\"}],ref:\"fixedFooterWrapper\",staticClass:\"el-table__fixed-footer-wrapper\"},[_c('table-footer',{style:({\n width: _vm.bodyWidth\n }),attrs:{\"fixed\":\"left\",\"border\":_vm.border,\"sum-text\":_vm.sumText || _vm.t('el.table.sumText'),\"summary-method\":_vm.summaryMethod,\"store\":_vm.store}})],1):_vm._e()]):_vm._e(),(_vm.rightFixedColumns.length > 0)?_c('div',{directives:[{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleFixedMousewheel),expression:\"handleFixedMousewheel\"}],ref:\"rightFixedWrapper\",staticClass:\"el-table__fixed-right\",style:([{\n width: _vm.layout.rightFixedWidth ? _vm.layout.rightFixedWidth + 'px' : '',\n right: _vm.layout.scrollY ? (_vm.border ? _vm.layout.gutterWidth : (_vm.layout.gutterWidth || 0)) + 'px' : ''\n },\n _vm.fixedHeight])},[(_vm.showHeader)?_c('div',{ref:\"rightFixedHeaderWrapper\",staticClass:\"el-table__fixed-header-wrapper\"},[_c('table-header',{ref:\"rightFixedTableHeader\",style:({\n width: _vm.bodyWidth\n }),attrs:{\"fixed\":\"right\",\"border\":_vm.border,\"store\":_vm.store}})],1):_vm._e(),_c('div',{ref:\"rightFixedBodyWrapper\",staticClass:\"el-table__fixed-body-wrapper\",style:([{\n top: _vm.layout.headerHeight + 'px'\n },\n _vm.fixedBodyHeight])},[_c('table-body',{style:({\n width: _vm.bodyWidth\n }),attrs:{\"fixed\":\"right\",\"store\":_vm.store,\"stripe\":_vm.stripe,\"row-class-name\":_vm.rowClassName,\"row-style\":_vm.rowStyle,\"highlight\":_vm.highlightCurrentRow}})],1),(_vm.showSummary)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data && _vm.data.length > 0),expression:\"data && data.length > 0\"}],ref:\"rightFixedFooterWrapper\",staticClass:\"el-table__fixed-footer-wrapper\"},[_c('table-footer',{style:({\n width: _vm.bodyWidth\n }),attrs:{\"fixed\":\"right\",\"border\":_vm.border,\"sum-text\":_vm.sumText || _vm.t('el.table.sumText'),\"summary-method\":_vm.summaryMethod,\"store\":_vm.store}})],1):_vm._e()]):_vm._e(),(_vm.rightFixedColumns.length > 0)?_c('div',{ref:\"rightFixedPatch\",staticClass:\"el-table__fixed-right-patch\",style:({\n width: _vm.layout.scrollY ? _vm.layout.gutterWidth + 'px' : '0',\n height: _vm.layout.headerHeight + 'px'\n })}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.resizeProxyVisible),expression:\"resizeProxyVisible\"}],ref:\"resizeProxy\",staticClass:\"el-table__column-resize-proxy\"})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tooltip\");\n\n/***/ }),\n\n/***/ 25:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tag\");\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scrollbar-width\");\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n created: function created() {\n this.tableLayout.addObserver(this);\n },\n destroyed: function destroyed() {\n this.tableLayout.removeObserver(this);\n },\n\n\n computed: {\n tableLayout: function tableLayout() {\n var layout = this.layout;\n if (!layout && this.table) {\n layout = this.table.layout;\n }\n if (!layout) {\n throw new Error('Can not find table layout.');\n }\n return layout;\n }\n },\n\n mounted: function mounted() {\n this.onColumnsChange(this.tableLayout);\n this.onScrollableChange(this.tableLayout);\n },\n updated: function updated() {\n if (this.__updated__) return;\n this.onColumnsChange(this.tableLayout);\n this.onScrollableChange(this.tableLayout);\n this.__updated__ = true;\n },\n\n\n methods: {\n onColumnsChange: function onColumnsChange() {\n var cols = this.$el.querySelectorAll('colgroup > col');\n if (!cols.length) return;\n var flattenColumns = this.tableLayout.getFlattenColumns();\n var columnsMap = {};\n flattenColumns.forEach(function (column) {\n columnsMap[column.id] = column;\n });\n for (var i = 0, j = cols.length; i < j; i++) {\n var col = cols[i];\n var name = col.getAttribute('name');\n var column = columnsMap[name];\n if (column) {\n col.setAttribute('width', column.realWidth || column.width);\n }\n }\n },\n onScrollableChange: function onScrollableChange(layout) {\n var cols = this.$el.querySelectorAll('colgroup > col[name=gutter]');\n for (var i = 0, j = cols.length; i < j; i++) {\n var col = cols[i];\n col.setAttribute('width', layout.scrollY ? layout.gutterWidth : '0');\n }\n var ths = this.$el.querySelectorAll('th.gutter');\n for (var _i = 0, _j = ths.length; _i < _j; _i++) {\n var th = ths[_i];\n th.style.width = layout.scrollY ? layout.gutterWidth + 'px' : '0';\n th.style.display = layout.scrollY ? '' : 'none';\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/checkbox-group\");\n\n/***/ }),\n\n/***/ 48:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getRowIdentity = exports.getColumnByCell = exports.getColumnByKey = exports.getColumnById = exports.orderBy = exports.getCell = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __webpack_require__(2);\n\nvar getCell = exports.getCell = function getCell(event) {\n var cell = event.target;\n\n while (cell && cell.tagName.toUpperCase() !== 'HTML') {\n if (cell.tagName.toUpperCase() === 'TD') {\n return cell;\n }\n cell = cell.parentNode;\n }\n\n return null;\n};\n\nvar isObject = function isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n};\n\nvar orderBy = exports.orderBy = function orderBy(array, sortKey, reverse, sortMethod, sortBy) {\n if (!sortKey && !sortMethod && (!sortBy || Array.isArray(sortBy) && !sortBy.length)) {\n return array;\n }\n if (typeof reverse === 'string') {\n reverse = reverse === 'descending' ? -1 : 1;\n } else {\n reverse = reverse && reverse < 0 ? -1 : 1;\n }\n var getKey = sortMethod ? null : function (value, index) {\n if (sortBy) {\n if (!Array.isArray(sortBy)) {\n sortBy = [sortBy];\n }\n return sortBy.map(function (by) {\n if (typeof by === 'string') {\n return (0, _util.getValueByPath)(value, by);\n } else {\n return by(value, index, array);\n }\n });\n }\n if (sortKey !== '$key') {\n if (isObject(value) && '$value' in value) value = value.$value;\n }\n return [isObject(value) ? (0, _util.getValueByPath)(value, sortKey) : value];\n };\n var compare = function compare(a, b) {\n if (sortMethod) {\n return sortMethod(a.value, b.value);\n }\n for (var i = 0, len = a.key.length; i < len; i++) {\n if (a.key[i] < b.key[i]) {\n return -1;\n }\n if (a.key[i] > b.key[i]) {\n return 1;\n }\n }\n return 0;\n };\n return array.map(function (value, index) {\n return {\n value: value,\n index: index,\n key: getKey ? getKey(value, index) : null\n };\n }).sort(function (a, b) {\n var order = compare(a, b);\n if (!order) {\n // make stable https://en.wikipedia.org/wiki/Sorting_algorithm#Stability\n order = a.index - b.index;\n }\n return order * reverse;\n }).map(function (item) {\n return item.value;\n });\n};\n\nvar getColumnById = exports.getColumnById = function getColumnById(table, columnId) {\n var column = null;\n table.columns.forEach(function (item) {\n if (item.id === columnId) {\n column = item;\n }\n });\n return column;\n};\n\nvar getColumnByKey = exports.getColumnByKey = function getColumnByKey(table, columnKey) {\n var column = null;\n for (var i = 0; i < table.columns.length; i++) {\n var item = table.columns[i];\n if (item.columnKey === columnKey) {\n column = item;\n break;\n }\n }\n return column;\n};\n\nvar getColumnByCell = exports.getColumnByCell = function getColumnByCell(table, cell) {\n var matches = (cell.className || '').match(/el-table_[^\\s]+/gm);\n if (matches) {\n return getColumnById(table, matches[0]);\n }\n return null;\n};\n\nvar getRowIdentity = exports.getRowIdentity = function getRowIdentity(row, rowKey) {\n if (!row) throw new Error('row is required when get row identity');\n if (typeof rowKey === 'string') {\n if (rowKey.indexOf('.') < 0) {\n return row[rowKey];\n }\n var key = rowKey.split('.');\n var current = row;\n for (var i = 0; i < key.length; i++) {\n current = current[key[i]];\n }\n return current;\n } else if (typeof rowKey === 'function') {\n return rowKey.call(null, row);\n }\n};\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/locale\");\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/migrating\");\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ })\n\n/******/ });","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content\"},[_c('base-header',{staticClass:\"pb-6 bg-gradient\",attrs:{\"type\":\"\"}},[_c('b-row',{staticClass:\"py-4\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"7\",\"lg\":\"6\"}},[_c('h6',{staticClass:\"h2 d-inline-block mb-0\"},[_vm._v(\"Dokumente\")]),_c('nav',{staticClass:\"d-none text-black d-md-inline-block ml-md-4\",attrs:{\"aria-label\":\"breadcrumb\"}},[_c('route-bread-crumb')],1)])],1)],1),_c('b-container',{staticClass:\"mt--6\",attrs:{\"fluid\":\"\"}},[_c('div',[_c('card',{staticClass:\"no-border-card\",attrs:{\"body-classes\":\"px-0 pb-1\",\"footer-classes\":\"pb-2\"}},[_c('template',{slot:\"header\"},[_c('h3',{staticClass:\"mb-0\"},[_vm._v(\"Dokumente\")]),_c('p',{staticClass:\"text-sm mb-0\"},[_vm._v(\"\\n Nachfolgend finden Sie Dokumente und downloads zur manuellen Verwendung.\\n \")])]),_c('div',[(_vm.loading)?_c('div',{staticClass:\"loader\"}):_vm._e(),_c('el-table',{staticClass:\"table-responsive align-items-center table-flush table-striped\",attrs:{\"header-row-class-name\":\"thead-light\",\"data\":_vm.documents}},[_c('el-table-column',{attrs:{\"label\":\"Nummer\",\"min-width\":\"80px\",\"prop\":\"id\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Name\",\"min-width\":\"120px\",\"prop\":\"name\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Beschreibung\",\"min-width\":\"200px\",\"prop\":\"description\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Erstellt\",\"min-width\":\"140px\",\"sortable\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.created_at))+\"\\n \")]),_c('el-table-column',{attrs:{\"min-width\":\"80px\",\"align\":\"right\",\"label\":\"Optionen\"},scopedSlots:_vm._u([{key:\"default\",fn:function({$index, row}){return _c('div',{staticClass:\"d-flex\"},[_c('a',{staticClass:\"btn btn-primary btn-sm\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.downloadFile(_vm.documents[$index].id, _vm.documents[$index].file.url)}}},[_c('i',{staticClass:\"fas fa-download\"})])])}}])})],1)],1),_c('b-card-footer',{staticClass:\"py-4 d-flex justify-content-end\"},[_c('base-pagination',{attrs:{\"per-page\":_vm.pageSize,\"total\":_vm.pageCount},on:{\"change\":_vm.handlePageChange},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})],1)],2)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Documents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Documents.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Documents.vue?vue&type=template&id=7625d4f6&scoped=true&\"\nimport script from \"./Documents.vue?vue&type=script&lang=js&\"\nexport * from \"./Documents.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Documents.vue?vue&type=style&index=0&id=7625d4f6&prod&lang=css&\"\nimport style1 from \"./Documents.vue?vue&type=style&index=1&id=7625d4f6&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7625d4f6\",\n null\n \n)\n\nexport default component.exports","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar autoKeyword = \"auto\";\nvar directionSetting = {\n \"\": 1,\n \"lr\": 1,\n \"rl\": 1\n};\nvar alignSetting = {\n \"start\": 1,\n \"center\": 1,\n \"end\": 1,\n \"left\": 1,\n \"right\": 1,\n \"auto\": 1,\n \"line-left\": 1,\n \"line-right\": 1\n};\n\nfunction findDirectionSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n}\n\nfunction findAlignSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n}\n\nfunction VTTCue(startTime, endTime, text) {\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n this.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = \"\";\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = \"\";\n var _snapToLines = true;\n var _line = \"auto\";\n var _lineAlign = \"start\";\n var _position = \"auto\";\n var _positionAlign = \"auto\";\n var _size = 100;\n var _align = \"center\";\n\n Object.defineProperties(this, {\n \"id\": {\n enumerable: true,\n get: function() {\n return _id;\n },\n set: function(value) {\n _id = \"\" + value;\n }\n },\n\n \"pauseOnExit\": {\n enumerable: true,\n get: function() {\n return _pauseOnExit;\n },\n set: function(value) {\n _pauseOnExit = !!value;\n }\n },\n\n \"startTime\": {\n enumerable: true,\n get: function() {\n return _startTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Start time must be set to a number.\");\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"endTime\": {\n enumerable: true,\n get: function() {\n return _endTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"End time must be set to a number.\");\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"text\": {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = \"\" + value;\n this.hasBeenReset = true;\n }\n },\n\n \"region\": {\n enumerable: true,\n get: function() {\n return _region;\n },\n set: function(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n },\n\n \"vertical\": {\n enumerable: true,\n get: function() {\n return _vertical;\n },\n set: function(value) {\n var setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\"Vertical: an invalid or illegal direction string was specified.\");\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n },\n\n \"snapToLines\": {\n enumerable: true,\n get: function() {\n return _snapToLines;\n },\n set: function(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n },\n\n \"line\": {\n enumerable: true,\n get: function() {\n return _line;\n },\n set: function(value) {\n if (typeof value !== \"number\" && value !== autoKeyword) {\n throw new SyntaxError(\"Line: an invalid number or illegal string was specified.\");\n }\n _line = value;\n this.hasBeenReset = true;\n }\n },\n\n \"lineAlign\": {\n enumerable: true,\n get: function() {\n return _lineAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"lineAlign: an invalid or illegal string was specified.\");\n } else {\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"position\": {\n enumerable: true,\n get: function() {\n return _position;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Position must be between 0 and 100.\");\n }\n _position = value;\n this.hasBeenReset = true;\n }\n },\n\n \"positionAlign\": {\n enumerable: true,\n get: function() {\n return _positionAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"positionAlign: an invalid or illegal string was specified.\");\n } else {\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"size\": {\n enumerable: true,\n get: function() {\n return _size;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Size must be between 0 and 100.\");\n }\n _size = value;\n this.hasBeenReset = true;\n }\n },\n\n \"align\": {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"align: an invalid or illegal alignment string was specified.\");\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }\n });\n\n /**\n * Other spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n this.displayState = undefined;\n}\n\n/**\n * VTTCue methods\n */\n\nVTTCue.prototype.getCueAsHTML = function() {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n return WebVTT.convertCueToDOMTree(window, this.text);\n};\n\nmodule.exports = VTTCue;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\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} [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","var freeze = require('./conventions').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({amp:'&', apos:\"'\", gt:'>', lt:'<', quot:'\"'})\n\n/**\n * A map of currently 241 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://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 lt: '<',\n gt: '>',\n amp: '&',\n quot: '\"',\n apos: \"'\",\n Agrave: \"À\",\n Aacute: \"Á\",\n Acirc: \"Â\",\n Atilde: \"Ã\",\n Auml: \"Ä\",\n Aring: \"Å\",\n AElig: \"Æ\",\n Ccedil: \"Ç\",\n Egrave: \"È\",\n Eacute: \"É\",\n Ecirc: \"Ê\",\n Euml: \"Ë\",\n Igrave: \"Ì\",\n Iacute: \"Í\",\n Icirc: \"Î\",\n Iuml: \"Ï\",\n ETH: \"Ð\",\n Ntilde: \"Ñ\",\n Ograve: \"Ò\",\n Oacute: \"Ó\",\n Ocirc: \"Ô\",\n Otilde: \"Õ\",\n Ouml: \"Ö\",\n Oslash: \"Ø\",\n Ugrave: \"Ù\",\n Uacute: \"Ú\",\n Ucirc: \"Û\",\n Uuml: \"Ü\",\n Yacute: \"Ý\",\n THORN: \"Þ\",\n szlig: \"ß\",\n agrave: \"à\",\n aacute: \"á\",\n acirc: \"â\",\n atilde: \"ã\",\n auml: \"ä\",\n aring: \"å\",\n aelig: \"æ\",\n ccedil: \"ç\",\n egrave: \"è\",\n eacute: \"é\",\n ecirc: \"ê\",\n euml: \"ë\",\n igrave: \"ì\",\n iacute: \"í\",\n icirc: \"î\",\n iuml: \"ï\",\n eth: \"ð\",\n ntilde: \"ñ\",\n ograve: \"ò\",\n oacute: \"ó\",\n ocirc: \"ô\",\n otilde: \"õ\",\n ouml: \"ö\",\n oslash: \"ø\",\n ugrave: \"ù\",\n uacute: \"ú\",\n ucirc: \"û\",\n uuml: \"ü\",\n yacute: \"ý\",\n thorn: \"þ\",\n yuml: \"ÿ\",\n nbsp: \"\\u00a0\",\n iexcl: \"¡\",\n cent: \"¢\",\n pound: \"£\",\n curren: \"¤\",\n yen: \"¥\",\n brvbar: \"¦\",\n sect: \"§\",\n uml: \"¨\",\n copy: \"©\",\n ordf: \"ª\",\n laquo: \"«\",\n not: \"¬\",\n shy: \"­­\",\n reg: \"®\",\n macr: \"¯\",\n deg: \"°\",\n plusmn: \"±\",\n sup2: \"²\",\n sup3: \"³\",\n acute: \"´\",\n micro: \"µ\",\n para: \"¶\",\n middot: \"·\",\n cedil: \"¸\",\n sup1: \"¹\",\n ordm: \"º\",\n raquo: \"»\",\n frac14: \"¼\",\n frac12: \"½\",\n frac34: \"¾\",\n iquest: \"¿\",\n times: \"×\",\n divide: \"÷\",\n forall: \"∀\",\n part: \"∂\",\n exist: \"∃\",\n empty: \"∅\",\n nabla: \"∇\",\n isin: \"∈\",\n notin: \"∉\",\n ni: \"∋\",\n prod: \"∏\",\n sum: \"∑\",\n minus: \"−\",\n lowast: \"∗\",\n radic: \"√\",\n prop: \"∝\",\n infin: \"∞\",\n ang: \"∠\",\n and: \"∧\",\n or: \"∨\",\n cap: \"∩\",\n cup: \"∪\",\n 'int': \"∫\",\n there4: \"∴\",\n sim: \"∼\",\n cong: \"≅\",\n asymp: \"≈\",\n ne: \"≠\",\n equiv: \"≡\",\n le: \"≤\",\n ge: \"≥\",\n sub: \"⊂\",\n sup: \"⊃\",\n nsub: \"⊄\",\n sube: \"⊆\",\n supe: \"⊇\",\n oplus: \"⊕\",\n otimes: \"⊗\",\n perp: \"⊥\",\n sdot: \"⋅\",\n Alpha: \"Α\",\n Beta: \"Β\",\n Gamma: \"Γ\",\n Delta: \"Δ\",\n Epsilon: \"Ε\",\n Zeta: \"Ζ\",\n Eta: \"Η\",\n Theta: \"Θ\",\n Iota: \"Ι\",\n Kappa: \"Κ\",\n Lambda: \"Λ\",\n Mu: \"Μ\",\n Nu: \"Ν\",\n Xi: \"Ξ\",\n Omicron: \"Ο\",\n Pi: \"Π\",\n Rho: \"Ρ\",\n Sigma: \"Σ\",\n Tau: \"Τ\",\n Upsilon: \"Υ\",\n Phi: \"Φ\",\n Chi: \"Χ\",\n Psi: \"Ψ\",\n Omega: \"Ω\",\n alpha: \"α\",\n beta: \"β\",\n gamma: \"γ\",\n delta: \"δ\",\n epsilon: \"ε\",\n zeta: \"ζ\",\n eta: \"η\",\n theta: \"θ\",\n iota: \"ι\",\n kappa: \"κ\",\n lambda: \"λ\",\n mu: \"μ\",\n nu: \"ν\",\n xi: \"ξ\",\n omicron: \"ο\",\n pi: \"π\",\n rho: \"ρ\",\n sigmaf: \"ς\",\n sigma: \"σ\",\n tau: \"τ\",\n upsilon: \"υ\",\n phi: \"φ\",\n chi: \"χ\",\n psi: \"ψ\",\n omega: \"ω\",\n thetasym: \"ϑ\",\n upsih: \"ϒ\",\n piv: \"ϖ\",\n OElig: \"Œ\",\n oelig: \"œ\",\n Scaron: \"Š\",\n scaron: \"š\",\n Yuml: \"Ÿ\",\n fnof: \"ƒ\",\n circ: \"ˆ\",\n tilde: \"˜\",\n ensp: \" \",\n emsp: \" \",\n thinsp: \" \",\n zwnj: \"‌\",\n zwj: \"‍\",\n lrm: \"‎\",\n rlm: \"‏\",\n ndash: \"–\",\n mdash: \"—\",\n lsquo: \"‘\",\n rsquo: \"’\",\n sbquo: \"‚\",\n ldquo: \"“\",\n rdquo: \"”\",\n bdquo: \"„\",\n dagger: \"†\",\n Dagger: \"‡\",\n bull: \"•\",\n hellip: \"…\",\n permil: \"‰\",\n prime: \"′\",\n Prime: \"″\",\n lsaquo: \"‹\",\n rsaquo: \"›\",\n oline: \"‾\",\n euro: \"€\",\n trade: \"™\",\n larr: \"←\",\n uarr: \"↑\",\n rarr: \"→\",\n darr: \"↓\",\n harr: \"↔\",\n crarr: \"↵\",\n lceil: \"⌈\",\n rceil: \"⌉\",\n lfloor: \"⌊\",\n rfloor: \"⌋\",\n loz: \"◊\",\n spades: \"♠\",\n clubs: \"♣\",\n hearts: \"♥\",\n diams: \"♦\"\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES\n","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 72);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/clickoutside\");\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/button\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 72:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdown = __webpack_require__(73);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdown2.default.install = function (Vue) {\n Vue.component(_dropdown2.default.name, _dropdown2.default);\n};\n\nexports.default = _dropdown2.default;\n\n/***/ }),\n\n/***/ 73:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default.a,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 74:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _clickoutside = __webpack_require__(10);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _migrating = __webpack_require__(8);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _buttonGroup = __webpack_require__(75);\n\nvar _buttonGroup2 = _interopRequireDefault(_buttonGroup);\n\nvar _util = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElDropdown',\n\n componentName: 'ElDropdown',\n\n mixins: [_emitter2.default, _migrating2.default],\n\n directives: { Clickoutside: _clickoutside2.default },\n\n components: {\n ElButton: _button2.default,\n ElButtonGroup: _buttonGroup2.default\n },\n\n provide: function provide() {\n return {\n dropdown: this\n };\n },\n\n\n props: {\n trigger: {\n type: String,\n default: 'hover'\n },\n type: String,\n size: {\n type: String,\n default: ''\n },\n splitButton: Boolean,\n hideOnClick: {\n type: Boolean,\n default: true\n },\n placement: {\n type: String,\n default: 'bottom-end'\n },\n visibleArrow: {\n default: true\n },\n showTimeout: {\n type: Number,\n default: 250\n },\n hideTimeout: {\n type: Number,\n default: 150\n }\n },\n\n data: function data() {\n return {\n timeout: null,\n visible: false,\n triggerElm: null,\n menuItems: null,\n menuItemsArray: null,\n dropdownElm: null,\n focusing: false,\n listId: 'dropdown-menu-' + (0, _util.generateId)()\n };\n },\n\n\n computed: {\n dropdownSize: function dropdownSize() {\n return this.size || (this.$ELEMENT || {}).size;\n }\n },\n\n mounted: function mounted() {\n this.$on('menu-item-click', this.handleMenuItemClick);\n this.initEvent();\n this.initAria();\n },\n\n\n watch: {\n visible: function visible(val) {\n this.broadcast('ElDropdownMenu', 'visible', val);\n this.$emit('visible-change', val);\n },\n focusing: function focusing(val) {\n var selfDefine = this.$el.querySelector('.el-dropdown-selfdefine');\n if (selfDefine) {\n // 自定义\n if (val) {\n selfDefine.className += ' focusing';\n } else {\n selfDefine.className = selfDefine.className.replace('focusing', '');\n }\n }\n }\n },\n\n methods: {\n getMigratingConfig: function getMigratingConfig() {\n return {\n props: {\n 'menu-align': 'menu-align is renamed to placement.'\n }\n };\n },\n show: function show() {\n var _this = this;\n\n if (this.triggerElm.disabled) return;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n _this.visible = true;\n }, this.trigger === 'click' ? 0 : this.showTimeout);\n },\n hide: function hide() {\n var _this2 = this;\n\n if (this.triggerElm.disabled) return;\n this.removeTabindex();\n this.resetTabindex(this.triggerElm);\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () {\n _this2.visible = false;\n }, this.trigger === 'click' ? 0 : this.hideTimeout);\n },\n handleClick: function handleClick() {\n if (this.triggerElm.disabled) return;\n if (this.visible) {\n this.hide();\n } else {\n this.show();\n }\n },\n handleTriggerKeyDown: function handleTriggerKeyDown(ev) {\n var keyCode = ev.keyCode;\n if ([38, 40].indexOf(keyCode) > -1) {\n // up/down\n this.removeTabindex();\n this.resetTabindex(this.menuItems[0]);\n this.menuItems[0].focus();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (keyCode === 13) {\n // space enter选中\n this.handleClick();\n } else if ([9, 27].indexOf(keyCode) > -1) {\n // tab || esc\n this.hide();\n }\n return;\n },\n handleItemKeyDown: function handleItemKeyDown(ev) {\n var keyCode = ev.keyCode;\n var target = ev.target;\n var currentIndex = this.menuItemsArray.indexOf(target);\n var max = this.menuItemsArray.length - 1;\n var nextIndex = void 0;\n if ([38, 40].indexOf(keyCode) > -1) {\n // up/down\n if (keyCode === 38) {\n // up\n nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;\n } else {\n // down\n nextIndex = currentIndex < max ? currentIndex + 1 : max;\n }\n this.removeTabindex();\n this.resetTabindex(this.menuItems[nextIndex]);\n this.menuItems[nextIndex].focus();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (keyCode === 13) {\n // enter选中\n this.triggerElm.focus();\n target.click();\n if (this.hideOnClick) {\n // click关闭\n this.visible = false;\n }\n } else if ([9, 27].indexOf(keyCode) > -1) {\n // tab // esc\n this.hide();\n this.triggerElm.focus();\n }\n return;\n },\n resetTabindex: function resetTabindex(ele) {\n // 下次tab时组件聚焦元素\n this.removeTabindex();\n ele.setAttribute('tabindex', '0'); // 下次期望的聚焦元素\n },\n removeTabindex: function removeTabindex() {\n this.triggerElm.setAttribute('tabindex', '-1');\n this.menuItemsArray.forEach(function (item) {\n item.setAttribute('tabindex', '-1');\n });\n },\n initAria: function initAria() {\n this.dropdownElm.setAttribute('id', this.listId);\n this.triggerElm.setAttribute('aria-haspopup', 'list');\n this.triggerElm.setAttribute('aria-controls', this.listId);\n this.menuItems = this.dropdownElm.querySelectorAll(\"[tabindex='-1']\");\n this.menuItemsArray = Array.prototype.slice.call(this.menuItems);\n\n if (!this.splitButton) {\n // 自定义\n this.triggerElm.setAttribute('role', 'button');\n this.triggerElm.setAttribute('tabindex', '0');\n this.triggerElm.setAttribute('class', (this.triggerElm.getAttribute('class') || '') + ' el-dropdown-selfdefine'); // 控制\n }\n },\n initEvent: function initEvent() {\n var _this3 = this;\n\n var trigger = this.trigger,\n show = this.show,\n hide = this.hide,\n handleClick = this.handleClick,\n splitButton = this.splitButton,\n handleTriggerKeyDown = this.handleTriggerKeyDown,\n handleItemKeyDown = this.handleItemKeyDown;\n\n this.triggerElm = splitButton ? this.$refs.trigger.$el : this.$slots.default[0].elm;\n\n var dropdownElm = this.dropdownElm = this.$slots.dropdown[0].elm;\n\n this.triggerElm.addEventListener('keydown', handleTriggerKeyDown); // triggerElm keydown\n dropdownElm.addEventListener('keydown', handleItemKeyDown, true); // item keydown\n // 控制自定义元素的样式\n if (!splitButton) {\n this.triggerElm.addEventListener('focus', function () {\n _this3.focusing = true;\n });\n this.triggerElm.addEventListener('blur', function () {\n _this3.focusing = false;\n });\n this.triggerElm.addEventListener('click', function () {\n _this3.focusing = false;\n });\n }\n if (trigger === 'hover') {\n this.triggerElm.addEventListener('mouseenter', show);\n this.triggerElm.addEventListener('mouseleave', hide);\n dropdownElm.addEventListener('mouseenter', show);\n dropdownElm.addEventListener('mouseleave', hide);\n } else if (trigger === 'click') {\n this.triggerElm.addEventListener('click', handleClick);\n }\n },\n handleMenuItemClick: function handleMenuItemClick(command, instance) {\n if (this.hideOnClick) {\n this.visible = false;\n }\n this.$emit('command', command, instance);\n },\n focus: function focus() {\n this.triggerElm.focus && this.triggerElm.focus();\n }\n },\n\n render: function render(h) {\n var _this4 = this;\n\n var hide = this.hide,\n splitButton = this.splitButton,\n type = this.type,\n dropdownSize = this.dropdownSize;\n\n\n var handleMainButtonClick = function handleMainButtonClick(event) {\n _this4.$emit('click', event);\n hide();\n };\n\n var triggerElm = !splitButton ? this.$slots.default : h(\n 'el-button-group',\n null,\n [h(\n 'el-button',\n {\n attrs: { type: type, size: dropdownSize },\n nativeOn: {\n 'click': handleMainButtonClick\n }\n },\n [this.$slots.default]\n ), h(\n 'el-button',\n { ref: 'trigger', attrs: { type: type, size: dropdownSize },\n 'class': 'el-dropdown__caret-button' },\n [h(\n 'i',\n { 'class': 'el-dropdown__icon el-icon-arrow-down' },\n []\n )]\n )]\n );\n\n return h(\n 'div',\n { 'class': 'el-dropdown', directives: [{\n name: 'clickoutside',\n value: hide\n }]\n },\n [triggerElm, this.$slots.dropdown]\n );\n }\n};\n\n/***/ }),\n\n/***/ 75:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/button-group\");\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/migrating\");\n\n/***/ })\n\n/******/ });","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isArrayBufferView = function isArrayBufferView(obj) {\n if (ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(obj);\n }\n\n return obj && obj.buffer instanceof ArrayBuffer;\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return isArrayBufferView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le;\n\n // eslint-disable-next-line\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Training.vue?vue&type=style&index=0&id=76dc688a&prod&lang=css&\"","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","module.exports = require('./src/normalizeWheel.js');\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content\"},[_c('base-header',{staticClass:\"pb-6 bg-gradient-info\"},[_c('b-row',{staticClass:\"py-4\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"7\",\"lg\":\"6\"}},[_c('h6',{staticClass:\"h2 text-white d-inline-block mb-0\"},[_vm._v(\"Rechnungen\")]),_c('nav',{staticClass:\"d-none d-md-inline-block ml-md-4\",attrs:{\"aria-label\":\"breadcrumb\"}},[_c('route-bread-crumb')],1)])],1)],1),_c('b-container',{staticClass:\"mt--6\",attrs:{\"fluid\":\"\"}},[_c('div',[_c('card',{staticClass:\"no-border-card\",attrs:{\"body-classes\":\"px-0 pb-1\",\"footer-classes\":\"pb-2\"}},[_c('template',{slot:\"header\"},[_c('h3',{staticClass:\"mb-0\"},[_vm._v(\"Rechnungen\")]),_c('p',{staticClass:\"text-sm mb-0\"},[_vm._v(\"\\n Nachfolgend finden Sie alle von Ihnen an uns gestellten Rechnungen.\\n \")])]),_c('div',[_c('b-col',{staticClass:\"d-flex justify-content-center justify-content-sm-between flex-wrap\",attrs:{\"cols\":\"12\"}},[_c('el-select',{staticClass:\"select-primary pagination-select\",attrs:{\"placeholder\":\"Anzahl pro Seite\"},on:{\"change\":_vm.handlePageSizeChange},model:{value:(_vm.pagination.perPage),callback:function ($$v) {_vm.$set(_vm.pagination, \"perPage\", $$v)},expression:\"pagination.perPage\"}},_vm._l((_vm.pagination.perPageOptions),function(item){return _c('el-option',{key:item,staticClass:\"select-primary\",attrs:{\"label\":item,\"value\":item}})}),1),_c('div',[_c('base-input',{attrs:{\"prepend-icon\":\"fas fa-search\",\"placeholder\":\"Suchen...\"},on:{\"input\":_vm.searchInvoices},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)],1),(_vm.loading)?_c('div',{staticClass:\"loader\"}):_vm._e(),_c('el-table',{staticClass:\"table-responsive align-items-center table-flush table-striped\",attrs:{\"header-row-class-name\":\"thead-light\",\"data\":_vm.tutorials}},[_c('el-table-column',{attrs:{\"label\":\"Nummer\",\"min-width\":\"200px\",\"prop\":\"internal_id\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Status\",\"min-width\":\"200px\",\"prop\":\"aasm_state\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Zugehörig\",\"min-width\":\"200px\",\"prop\":\"internal_id\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Erstellt\",\"prop\":\"created_at\",\"min-width\":\"140px\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Rechnungsdatum\",\"prop\":\"invoice_date\",\"min-width\":\"140px\",\"sortable\":\"\"}}),_c('el-table-column',{attrs:{\"label\":\"Product\",\"min-width\":\"200px\",\"prop\":\"sum_net\",\"sortable\":\"\"}})],1)],1),_c('b-card-footer',{staticClass:\"py-4 d-flex justify-content-end\"},[_c('base-pagination',{attrs:{\"per-page\":_vm.pageSize,\"total\":_vm.count},on:{\"change\":_vm.handlePageChange},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})],1)],2)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Invoices.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Invoices.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Invoices.vue?vue&type=template&id=269514ee&scoped=true&\"\nimport script from \"./Invoices.vue?vue&type=script&lang=js&\"\nexport * from \"./Invoices.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Invoices.vue?vue&type=style&index=0&id=269514ee&prod&lang=css&\"\nimport style1 from \"./Invoices.vue?vue&type=style&index=1&id=269514ee&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"269514ee\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Invoices.vue?vue&type=style&index=1&id=269514ee&prod&scoped=true&lang=css&\"","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\nvar document = require('global/document');\n\nvar _objCreate = Object.create || (function() {\n function F() {}\n return function(o) {\n if (arguments.length !== 1) {\n throw new Error('Object.create shim only accepts one parameter.');\n }\n F.prototype = o;\n return new F();\n };\n})();\n\n// Creates a new ParserError object from an errorData object. The errorData\n// object should have default code and message properties. The default message\n// property can be overriden by passing in a message parameter.\n// See ParsingError.Errors below for acceptable errors.\nfunction ParsingError(errorData, message) {\n this.name = \"ParsingError\";\n this.code = errorData.code;\n this.message = message || errorData.message;\n}\nParsingError.prototype = _objCreate(Error.prototype);\nParsingError.prototype.constructor = ParsingError;\n\n// ParsingError metadata for acceptable ParsingErrors.\nParsingError.Errors = {\n BadSignature: {\n code: 0,\n message: \"Malformed WebVTT signature.\"\n },\n BadTimeStamp: {\n code: 1,\n message: \"Malformed time stamp.\"\n }\n};\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp(input) {\n\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n }\n\n var m = input.match(/^(\\d+):(\\d{1,2})(:\\d{1,2})?\\.(\\d{3})/);\n if (!m) {\n return null;\n }\n\n if (m[3]) {\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\n } else if (m[1] > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[1], m[2], 0, m[4]);\n } else {\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n return computeSeconds(0, m[1], m[2], m[4]);\n }\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nfunction Settings() {\n this.values = _objCreate(null);\n}\n\nSettings.prototype = {\n // Only accept the first assignment to any key.\n set: function(k, v) {\n if (!this.get(k) && v !== \"\") {\n this.values[k] = v;\n }\n },\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get: function(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n return this.has(k) ? this.values[k] : dflt;\n },\n // Check whether we have a value for a key.\n has: function(k) {\n return k in this.values;\n },\n // Accept a setting if its one of the given alternatives.\n alt: function(k, v, a) {\n for (var n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n },\n // Accept a setting if its a valid (signed) integer.\n integer: function(k, v) {\n if (/^-?\\d+$/.test(v)) { // integer\n this.set(k, parseInt(v, 10));\n }\n },\n // Accept a setting if its a valid percentage.\n percent: function(k, v) {\n var m;\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\n v = parseFloat(v);\n if (v >= 0 && v <= 100) {\n this.set(k, v);\n return true;\n }\n }\n return false;\n }\n};\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n var groups = groupDelim ? input.split(groupDelim) : [input];\n for (var i in groups) {\n if (typeof groups[i] !== \"string\") {\n continue;\n }\n var kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n var k = kv[0].trim();\n var v = kv[1].trim();\n callback(k, v);\n }\n}\n\nfunction parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n var oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp() {\n var ts = parseTimeStamp(input);\n if (ts === null) {\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed timestamp: \" + oInput);\n }\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input, cue) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"region\":\n // Find the last region we parsed with the same region id.\n for (var i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case \"vertical\":\n settings.alt(k, v, [\"rl\", \"lr\"]);\n break;\n case \"line\":\n var vals = v.split(\",\"),\n vals0 = vals[0];\n settings.integer(k, vals0);\n settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\n settings.alt(k, vals0, [\"auto\"]);\n if (vals.length === 2) {\n settings.alt(\"lineAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"position\":\n vals = v.split(\",\");\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt(\"positionAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"size\":\n settings.percent(k, v);\n break;\n case \"align\":\n settings.alt(k, v, [\"start\", \"center\", \"end\", \"left\", \"right\"]);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get(\"region\", null);\n cue.vertical = settings.get(\"vertical\", \"\");\n try {\n cue.line = settings.get(\"line\", \"auto\");\n } catch (e) {}\n cue.lineAlign = settings.get(\"lineAlign\", \"start\");\n cue.snapToLines = settings.get(\"snapToLines\", true);\n cue.size = settings.get(\"size\", 100);\n // Safari still uses the old middle value and won't accept center\n try {\n cue.align = settings.get(\"align\", \"center\");\n } catch (e) {\n cue.align = settings.get(\"align\", \"middle\");\n }\n try {\n cue.position = settings.get(\"position\", \"auto\");\n } catch (e) {\n cue.position = settings.get(\"position\", {\n start: 0,\n left: 0,\n center: 50,\n middle: 50,\n end: 100,\n right: 100\n }, cue.align);\n }\n\n\n cue.positionAlign = settings.get(\"positionAlign\", {\n start: \"start\",\n left: \"start\",\n center: \"center\",\n middle: \"center\",\n end: \"end\",\n right: \"end\"\n }, cue.align);\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, \"\");\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.substr(0, 3) !== \"-->\") { // (3) next characters must match \"-->\"\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\n// When evaluating this file as part of a Webpack bundle for server\n// side rendering, `document` is an empty object.\nvar TEXTAREA_ELEMENT = document.createElement && document.createElement(\"textarea\");\n\nvar TAG_NAME = {\n c: \"span\",\n i: \"i\",\n b: \"b\",\n u: \"u\",\n ruby: \"ruby\",\n rt: \"rt\",\n v: \"span\",\n lang: \"span\"\n};\n\n// 5.1 default text color\n// 5.2 default text background color is equivalent to text color with bg_ prefix\nvar DEFAULT_COLOR_CLASS = {\n white: 'rgba(255,255,255,1)',\n lime: 'rgba(0,255,0,1)',\n cyan: 'rgba(0,255,255,1)',\n red: 'rgba(255,0,0,1)',\n yellow: 'rgba(255,255,0,1)',\n magenta: 'rgba(255,0,255,1)',\n blue: 'rgba(0,0,255,1)',\n black: 'rgba(0,0,0,1)'\n};\n\nvar TAG_ANNOTATION = {\n v: \"title\",\n lang: \"lang\"\n};\n\nvar NEEDS_PARENT = {\n rt: \"ruby\"\n};\n\n// Parse content into a document fragment.\nfunction parseContent(window, input) {\n function nextToken() {\n // Check for end-of-string.\n if (!input) {\n return null;\n }\n\n // Consume 'n' characters from the input.\n function consume(result) {\n input = input.substr(result.length);\n return result;\n }\n\n var m = input.match(/^([^<]*)(<[^>]*>?)?/);\n // If there is some text before the next tag, return it, otherwise return\n // the tag.\n return consume(m[1] ? m[1] : m[2]);\n }\n\n function unescape(s) {\n TEXTAREA_ELEMENT.innerHTML = s;\n s = TEXTAREA_ELEMENT.textContent;\n TEXTAREA_ELEMENT.textContent = \"\";\n return s;\n }\n\n function shouldAdd(current, element) {\n return !NEEDS_PARENT[element.localName] ||\n NEEDS_PARENT[element.localName] === current.localName;\n }\n\n // Create an element for this tag.\n function createElement(type, annotation) {\n var tagName = TAG_NAME[type];\n if (!tagName) {\n return null;\n }\n var element = window.document.createElement(tagName);\n var name = TAG_ANNOTATION[type];\n if (name && annotation) {\n element[name] = annotation.trim();\n }\n return element;\n }\n\n var rootDiv = window.document.createElement(\"div\"),\n current = rootDiv,\n t,\n tagStack = [];\n\n while ((t = nextToken()) !== null) {\n if (t[0] === '<') {\n if (t[1] === \"/\") {\n // If the closing tag matches, move back up to the parent node.\n if (tagStack.length &&\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\n tagStack.pop();\n current = current.parentNode;\n }\n // Otherwise just ignore the end tag.\n continue;\n }\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\n var node;\n if (ts) {\n // Timestamps are lead nodes as well.\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\n current.appendChild(node);\n continue;\n }\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\n // If we can't parse the tag, skip to the next tag.\n if (!m) {\n continue;\n }\n // Try to construct an element, and ignore the tag if we couldn't.\n node = createElement(m[1], m[3]);\n if (!node) {\n continue;\n }\n // Determine if the tag should be added based on the context of where it\n // is placed in the cuetext.\n if (!shouldAdd(current, node)) {\n continue;\n }\n // Set the class list (as a list of classes, separated by space).\n if (m[2]) {\n var classes = m[2].split('.');\n\n classes.forEach(function(cl) {\n var bgColor = /^bg_/.test(cl);\n // slice out `bg_` if it's a background color\n var colorName = bgColor ? cl.slice(3) : cl;\n\n if (DEFAULT_COLOR_CLASS.hasOwnProperty(colorName)) {\n var propName = bgColor ? 'background-color' : 'color';\n var propValue = DEFAULT_COLOR_CLASS[colorName];\n\n node.style[propName] = propValue;\n }\n });\n\n node.className = classes.join(' ');\n }\n // Append the node to the current node, and enter the scope of the new\n // node.\n tagStack.push(m[1]);\n current.appendChild(node);\n current = node;\n continue;\n }\n\n // Text nodes are leaf nodes.\n current.appendChild(window.document.createTextNode(unescape(t)));\n }\n\n return rootDiv;\n}\n\n// This is a list of all the Unicode characters that have a strong\n// right-to-left category. What this means is that these characters are\n// written right-to-left for sure. It was generated by pulling all the strong\n// right-to-left characters out of the Unicode data table. That table can\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\nvar strongRTLRanges = [[0x5be, 0x5be], [0x5c0, 0x5c0], [0x5c3, 0x5c3], [0x5c6, 0x5c6],\n [0x5d0, 0x5ea], [0x5f0, 0x5f4], [0x608, 0x608], [0x60b, 0x60b], [0x60d, 0x60d],\n [0x61b, 0x61b], [0x61e, 0x64a], [0x66d, 0x66f], [0x671, 0x6d5], [0x6e5, 0x6e6],\n [0x6ee, 0x6ef], [0x6fa, 0x70d], [0x70f, 0x710], [0x712, 0x72f], [0x74d, 0x7a5],\n [0x7b1, 0x7b1], [0x7c0, 0x7ea], [0x7f4, 0x7f5], [0x7fa, 0x7fa], [0x800, 0x815],\n [0x81a, 0x81a], [0x824, 0x824], [0x828, 0x828], [0x830, 0x83e], [0x840, 0x858],\n [0x85e, 0x85e], [0x8a0, 0x8a0], [0x8a2, 0x8ac], [0x200f, 0x200f],\n [0xfb1d, 0xfb1d], [0xfb1f, 0xfb28], [0xfb2a, 0xfb36], [0xfb38, 0xfb3c],\n [0xfb3e, 0xfb3e], [0xfb40, 0xfb41], [0xfb43, 0xfb44], [0xfb46, 0xfbc1],\n [0xfbd3, 0xfd3d], [0xfd50, 0xfd8f], [0xfd92, 0xfdc7], [0xfdf0, 0xfdfc],\n [0xfe70, 0xfe74], [0xfe76, 0xfefc], [0x10800, 0x10805], [0x10808, 0x10808],\n [0x1080a, 0x10835], [0x10837, 0x10838], [0x1083c, 0x1083c], [0x1083f, 0x10855],\n [0x10857, 0x1085f], [0x10900, 0x1091b], [0x10920, 0x10939], [0x1093f, 0x1093f],\n [0x10980, 0x109b7], [0x109be, 0x109bf], [0x10a00, 0x10a00], [0x10a10, 0x10a13],\n [0x10a15, 0x10a17], [0x10a19, 0x10a33], [0x10a40, 0x10a47], [0x10a50, 0x10a58],\n [0x10a60, 0x10a7f], [0x10b00, 0x10b35], [0x10b40, 0x10b55], [0x10b58, 0x10b72],\n [0x10b78, 0x10b7f], [0x10c00, 0x10c48], [0x1ee00, 0x1ee03], [0x1ee05, 0x1ee1f],\n [0x1ee21, 0x1ee22], [0x1ee24, 0x1ee24], [0x1ee27, 0x1ee27], [0x1ee29, 0x1ee32],\n [0x1ee34, 0x1ee37], [0x1ee39, 0x1ee39], [0x1ee3b, 0x1ee3b], [0x1ee42, 0x1ee42],\n [0x1ee47, 0x1ee47], [0x1ee49, 0x1ee49], [0x1ee4b, 0x1ee4b], [0x1ee4d, 0x1ee4f],\n [0x1ee51, 0x1ee52], [0x1ee54, 0x1ee54], [0x1ee57, 0x1ee57], [0x1ee59, 0x1ee59],\n [0x1ee5b, 0x1ee5b], [0x1ee5d, 0x1ee5d], [0x1ee5f, 0x1ee5f], [0x1ee61, 0x1ee62],\n [0x1ee64, 0x1ee64], [0x1ee67, 0x1ee6a], [0x1ee6c, 0x1ee72], [0x1ee74, 0x1ee77],\n [0x1ee79, 0x1ee7c], [0x1ee7e, 0x1ee7e], [0x1ee80, 0x1ee89], [0x1ee8b, 0x1ee9b],\n [0x1eea1, 0x1eea3], [0x1eea5, 0x1eea9], [0x1eeab, 0x1eebb], [0x10fffd, 0x10fffd]];\n\nfunction isStrongRTLChar(charCode) {\n for (var i = 0; i < strongRTLRanges.length; i++) {\n var currentRange = strongRTLRanges[i];\n if (charCode >= currentRange[0] && charCode <= currentRange[1]) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction determineBidi(cueDiv) {\n var nodeStack = [],\n text = \"\",\n charCode;\n\n if (!cueDiv || !cueDiv.childNodes) {\n return \"ltr\";\n }\n\n function pushNodes(nodeStack, node) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n\n function nextTextNode(nodeStack) {\n if (!nodeStack || !nodeStack.length) {\n return null;\n }\n\n var node = nodeStack.pop(),\n text = node.textContent || node.innerText;\n if (text) {\n // TODO: This should match all unicode type B characters (paragraph\n // separator characters). See issue #115.\n var m = text.match(/^.*(\\n|\\r)/);\n if (m) {\n nodeStack.length = 0;\n return m[0];\n }\n return text;\n }\n if (node.tagName === \"ruby\") {\n return nextTextNode(nodeStack);\n }\n if (node.childNodes) {\n pushNodes(nodeStack, node);\n return nextTextNode(nodeStack);\n }\n }\n\n pushNodes(nodeStack, cueDiv);\n while ((text = nextTextNode(nodeStack))) {\n for (var i = 0; i < text.length; i++) {\n charCode = text.charCodeAt(i);\n if (isStrongRTLChar(charCode)) {\n return \"rtl\";\n }\n }\n }\n return \"ltr\";\n}\n\nfunction computeLinePos(cue) {\n if (typeof cue.line === \"number\" &&\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\n return cue.line;\n }\n if (!cue.track || !cue.track.textTrackList ||\n !cue.track.textTrackList.mediaElement) {\n return -1;\n }\n var track = cue.track,\n trackList = track.textTrackList,\n count = 0;\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\n if (trackList[i].mode === \"showing\") {\n count++;\n }\n }\n return ++count * -1;\n}\n\nfunction StyleBox() {\n}\n\n// Apply styles to a div. If there is no div passed then it defaults to the\n// div on 'this'.\nStyleBox.prototype.applyStyles = function(styles, div) {\n div = div || this.div;\n for (var prop in styles) {\n if (styles.hasOwnProperty(prop)) {\n div.style[prop] = styles[prop];\n }\n }\n};\n\nStyleBox.prototype.formatStyle = function(val, unit) {\n return val === 0 ? 0 : val + unit;\n};\n\n// Constructs the computed display state of the cue (a div). Places the div\n// into the overlay which should be a block level element (usually a div).\nfunction CueStyleBox(window, cue, styleOptions) {\n StyleBox.call(this);\n this.cue = cue;\n\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\n // have inline positioning and will function as the cue background box.\n this.cueDiv = parseContent(window, cue.text);\n var styles = {\n color: \"rgba(255, 255, 255, 1)\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n position: \"relative\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: \"inline\",\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\"\n };\n\n this.applyStyles(styles, this.cueDiv);\n\n // Create an absolutely positioned div that will be used to position the cue\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\n // mirrors of them except middle instead of center on Safari.\n this.div = window.document.createElement(\"div\");\n styles = {\n direction: determineBidi(this.cueDiv),\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\",\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\n font: styleOptions.font,\n whiteSpace: \"pre-line\",\n position: \"absolute\"\n };\n\n this.applyStyles(styles);\n this.div.appendChild(this.cueDiv);\n\n // Calculate the distance from the reference edge of the viewport to the text\n // position of the cue box. The reference edge will be resolved later when\n // the box orientation styles are applied.\n var textPos = 0;\n switch (cue.positionAlign) {\n case \"start\":\n textPos = cue.position;\n break;\n case \"center\":\n textPos = cue.position - (cue.size / 2);\n break;\n case \"end\":\n textPos = cue.position - cue.size;\n break;\n }\n\n // Horizontal box orientation; textPos is the distance from the left edge of the\n // area to the left edge of the box and cue.size is the distance extending to\n // the right from there.\n if (cue.vertical === \"\") {\n this.applyStyles({\n left: this.formatStyle(textPos, \"%\"),\n width: this.formatStyle(cue.size, \"%\")\n });\n // Vertical box orientation; textPos is the distance from the top edge of the\n // area to the top edge of the box and cue.size is the height extending\n // downwards from there.\n } else {\n this.applyStyles({\n top: this.formatStyle(textPos, \"%\"),\n height: this.formatStyle(cue.size, \"%\")\n });\n }\n\n this.move = function(box) {\n this.applyStyles({\n top: this.formatStyle(box.top, \"px\"),\n bottom: this.formatStyle(box.bottom, \"px\"),\n left: this.formatStyle(box.left, \"px\"),\n right: this.formatStyle(box.right, \"px\"),\n height: this.formatStyle(box.height, \"px\"),\n width: this.formatStyle(box.width, \"px\")\n });\n };\n}\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\nCueStyleBox.prototype.constructor = CueStyleBox;\n\n// Represents the co-ordinates of an Element in a way that we can easily\n// compute things with such as if it overlaps or intersects with another Element.\n// Can initialize it with either a StyleBox or another BoxPosition.\nfunction BoxPosition(obj) {\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\n // was passed in and we need to copy the results of 'getBoundingClientRect'\n // as the object returned is readonly. All co-ordinate values are in reference\n // to the viewport origin (top left).\n var lh, height, width, top;\n if (obj.div) {\n height = obj.div.offsetHeight;\n width = obj.div.offsetWidth;\n top = obj.div.offsetTop;\n\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\n rects.getClientRects && rects.getClientRects();\n obj = obj.div.getBoundingClientRect();\n // In certain cases the outter div will be slightly larger then the sum of\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\n // In this case we should get the average line height and use that. This will\n // result in the desired behaviour.\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\n : 0;\n\n }\n this.left = obj.left;\n this.right = obj.right;\n this.top = obj.top || top;\n this.height = obj.height || height;\n this.bottom = obj.bottom || (top + (obj.height || height));\n this.width = obj.width || width;\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\n}\n\n// Move the box along a particular axis. Optionally pass in an amount to move\n// the box. If no amount is passed then the default is the line height of the\n// box.\nBoxPosition.prototype.move = function(axis, toMove) {\n toMove = toMove !== undefined ? toMove : this.lineHeight;\n switch (axis) {\n case \"+x\":\n this.left += toMove;\n this.right += toMove;\n break;\n case \"-x\":\n this.left -= toMove;\n this.right -= toMove;\n break;\n case \"+y\":\n this.top += toMove;\n this.bottom += toMove;\n break;\n case \"-y\":\n this.top -= toMove;\n this.bottom -= toMove;\n break;\n }\n};\n\n// Check if this box overlaps another box, b2.\nBoxPosition.prototype.overlaps = function(b2) {\n return this.left < b2.right &&\n this.right > b2.left &&\n this.top < b2.bottom &&\n this.bottom > b2.top;\n};\n\n// Check if this box overlaps any other boxes in boxes.\nBoxPosition.prototype.overlapsAny = function(boxes) {\n for (var i = 0; i < boxes.length; i++) {\n if (this.overlaps(boxes[i])) {\n return true;\n }\n }\n return false;\n};\n\n// Check if this box is within another box.\nBoxPosition.prototype.within = function(container) {\n return this.top >= container.top &&\n this.bottom <= container.bottom &&\n this.left >= container.left &&\n this.right <= container.right;\n};\n\n// Check if this box is entirely within the container or it is overlapping\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\n// passed and the box is overlapping on the left edge of the container, then\n// return true.\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\n switch (axis) {\n case \"+x\":\n return this.left < container.left;\n case \"-x\":\n return this.right > container.right;\n case \"+y\":\n return this.top < container.top;\n case \"-y\":\n return this.bottom > container.bottom;\n }\n};\n\n// Find the percentage of the area that this box is overlapping with another\n// box.\nBoxPosition.prototype.intersectPercentage = function(b2) {\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\n intersectArea = x * y;\n return intersectArea / (this.height * this.width);\n};\n\n// Convert the positions from this box to CSS compatible positions using\n// the reference container's positions. This has to be done because this\n// box's positions are in reference to the viewport origin, whereas, CSS\n// values are in referecne to their respective edges.\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\n return {\n top: this.top - reference.top,\n bottom: reference.bottom - this.bottom,\n left: this.left - reference.left,\n right: reference.right - this.right,\n height: this.height,\n width: this.width\n };\n};\n\n// Get an object that represents the box's position without anything extra.\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\nBoxPosition.getSimpleBoxPosition = function(obj) {\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\n\n obj = obj.div ? obj.div.getBoundingClientRect() :\n obj.tagName ? obj.getBoundingClientRect() : obj;\n var ret = {\n left: obj.left,\n right: obj.right,\n top: obj.top || top,\n height: obj.height || height,\n bottom: obj.bottom || (top + (obj.height || height)),\n width: obj.width || width\n };\n return ret;\n};\n\n// Move a StyleBox to its specified, or next best, position. The containerBox\n// is the box that contains the StyleBox, such as a div. boxPositions are\n// a list of other boxes that the styleBox can't overlap with.\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\n\n // Find the best position for a cue box, b, on the video. The axis parameter\n // is a list of axis, the order of which, it will move the box along. For example:\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\n // direction. If it doesn't find a good position for it there it will then move\n // it along the x axis in the negative direction.\n function findBestPosition(b, axis) {\n var bestPosition,\n specifiedPosition = new BoxPosition(b),\n percentage = 1; // Highest possible so the first thing we get is better.\n\n for (var i = 0; i < axis.length; i++) {\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\n b.move(axis[i]);\n }\n // We found a spot where we aren't overlapping anything. This is our\n // best position.\n if (b.within(containerBox)) {\n return b;\n }\n var p = b.intersectPercentage(containerBox);\n // If we're outside the container box less then we were on our last try\n // then remember this position as the best position.\n if (percentage > p) {\n bestPosition = new BoxPosition(b);\n percentage = p;\n }\n // Reset the box position to the specified position.\n b = new BoxPosition(specifiedPosition);\n }\n return bestPosition || specifiedPosition;\n }\n\n var boxPosition = new BoxPosition(styleBox),\n cue = styleBox.cue,\n linePos = computeLinePos(cue),\n axis = [];\n\n // If we have a line number to align the cue to.\n if (cue.snapToLines) {\n var size;\n switch (cue.vertical) {\n case \"\":\n axis = [ \"+y\", \"-y\" ];\n size = \"height\";\n break;\n case \"rl\":\n axis = [ \"+x\", \"-x\" ];\n size = \"width\";\n break;\n case \"lr\":\n axis = [ \"-x\", \"+x\" ];\n size = \"width\";\n break;\n }\n\n var step = boxPosition.lineHeight,\n position = step * Math.round(linePos),\n maxPosition = containerBox[size] + step,\n initialAxis = axis[0];\n\n // If the specified intial position is greater then the max position then\n // clamp the box to the amount of steps it would take for the box to\n // reach the max position.\n if (Math.abs(position) > maxPosition) {\n position = position < 0 ? -1 : 1;\n position *= Math.ceil(maxPosition / step) * step;\n }\n\n // If computed line position returns negative then line numbers are\n // relative to the bottom of the video instead of the top. Therefore, we\n // need to increase our initial position by the length or width of the\n // video, depending on the writing direction, and reverse our axis directions.\n if (linePos < 0) {\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\n axis = axis.reverse();\n }\n\n // Move the box to the specified position. This may not be its best\n // position.\n boxPosition.move(initialAxis, position);\n\n } else {\n // If we have a percentage line value for the cue.\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\n\n switch (cue.lineAlign) {\n case \"center\":\n linePos -= (calculatedPercentage / 2);\n break;\n case \"end\":\n linePos -= calculatedPercentage;\n break;\n }\n\n // Apply initial line position to the cue box.\n switch (cue.vertical) {\n case \"\":\n styleBox.applyStyles({\n top: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"rl\":\n styleBox.applyStyles({\n left: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"lr\":\n styleBox.applyStyles({\n right: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n }\n\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\n\n // Get the box position again after we've applied the specified positioning\n // to it.\n boxPosition = new BoxPosition(styleBox);\n }\n\n var bestPosition = findBestPosition(boxPosition, axis);\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\n}\n\nfunction WebVTT() {\n // Nothing\n}\n\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\nWebVTT.StringDecoder = function() {\n return {\n decode: function(data) {\n if (!data) {\n return \"\";\n }\n if (typeof data !== \"string\") {\n throw new Error(\"Error - expected string data.\");\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n};\n\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\n if (!window || !cuetext) {\n return null;\n }\n return parseContent(window, cuetext);\n};\n\nvar FONT_SIZE_PERCENT = 0.05;\nvar FONT_STYLE = \"sans-serif\";\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\n\n// Runs the processing model over the cues and regions passed to it.\n// @param overlay A block level element (usually a div) that the computed cues\n// and regions will be placed into.\nWebVTT.processCues = function(window, cues, overlay) {\n if (!window || !cues || !overlay) {\n return null;\n }\n\n // Remove all previous children.\n while (overlay.firstChild) {\n overlay.removeChild(overlay.firstChild);\n }\n\n var paddedOverlay = window.document.createElement(\"div\");\n paddedOverlay.style.position = \"absolute\";\n paddedOverlay.style.left = \"0\";\n paddedOverlay.style.right = \"0\";\n paddedOverlay.style.top = \"0\";\n paddedOverlay.style.bottom = \"0\";\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\n overlay.appendChild(paddedOverlay);\n\n // Determine if we need to compute the display states of the cues. This could\n // be the case if a cue's state has been changed since the last computation or\n // if it has not been computed yet.\n function shouldCompute(cues) {\n for (var i = 0; i < cues.length; i++) {\n if (cues[i].hasBeenReset || !cues[i].displayState) {\n return true;\n }\n }\n return false;\n }\n\n // We don't need to recompute the cues' display states. Just reuse them.\n if (!shouldCompute(cues)) {\n for (var i = 0; i < cues.length; i++) {\n paddedOverlay.appendChild(cues[i].displayState);\n }\n return;\n }\n\n var boxPositions = [],\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\n var styleOptions = {\n font: fontSize + \"px \" + FONT_STYLE\n };\n\n (function() {\n var styleBox, cue;\n\n for (var i = 0; i < cues.length; i++) {\n cue = cues[i];\n\n // Compute the intial position and styles of the cue div.\n styleBox = new CueStyleBox(window, cue, styleOptions);\n paddedOverlay.appendChild(styleBox.div);\n\n // Move the cue div to it's correct line position.\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\n\n // Remember the computed div so that we don't have to recompute it later\n // if we don't have too.\n cue.displayState = styleBox.div;\n\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\n }\n })();\n};\n\nWebVTT.Parser = function(window, vttjs, decoder) {\n if (!decoder) {\n decoder = vttjs;\n vttjs = {};\n }\n if (!vttjs) {\n vttjs = {};\n }\n\n this.window = window;\n this.vttjs = vttjs;\n this.state = \"INITIAL\";\n this.buffer = \"\";\n this.decoder = decoder || new TextDecoder(\"utf8\");\n this.regionList = [];\n};\n\nWebVTT.Parser.prototype = {\n // If the error is a ParsingError then report it to the consumer if\n // possible. If it's not a ParsingError then throw it like normal.\n reportOrThrowError: function(e) {\n if (e instanceof ParsingError) {\n this.onparsingerror && this.onparsingerror(e);\n } else {\n throw e;\n }\n },\n parse: function (data) {\n var self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, {stream: true});\n }\n\n function collectNextLine() {\n var buffer = self.buffer;\n var pos = 0;\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n var line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.4 WebVTT region and WebVTT region settings syntax\n function parseRegion(input) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"id\":\n settings.set(k, v);\n break;\n case \"width\":\n settings.percent(k, v);\n break;\n case \"lines\":\n settings.integer(k, v);\n break;\n case \"regionanchor\":\n case \"viewportanchor\":\n var xy = v.split(',');\n if (xy.length !== 2) {\n break;\n }\n // We have to make sure both x and y parse, so use a temporary\n // settings object here.\n var anchor = new Settings();\n anchor.percent(\"x\", xy[0]);\n anchor.percent(\"y\", xy[1]);\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\n break;\n }\n settings.set(k + \"X\", anchor.get(\"x\"));\n settings.set(k + \"Y\", anchor.get(\"y\"));\n break;\n case \"scroll\":\n settings.alt(k, v, [\"up\"]);\n break;\n }\n }, /=/, /\\s/);\n\n // Create the region, using default values for any values that were not\n // specified.\n if (settings.has(\"id\")) {\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\n region.width = settings.get(\"width\", 100);\n region.lines = settings.get(\"lines\", 3);\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\n region.scroll = settings.get(\"scroll\", \"\");\n // Register the region.\n self.onregion && self.onregion(region);\n // Remember the VTTRegion for later in case we parse any VTTCues that\n // reference it.\n self.regionList.push({\n id: settings.get(\"id\"),\n region: region\n });\n }\n }\n\n // draft-pantos-http-live-streaming-20\n // https://tools.ietf.org/html/draft-pantos-http-live-streaming-20#section-3.5\n // 3.5 WebVTT\n function parseTimestampMap(input) {\n var settings = new Settings();\n\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"MPEGT\":\n settings.integer(k + 'S', v);\n break;\n case \"LOCA\":\n settings.set(k + 'L', parseTimeStamp(v));\n break;\n }\n }, /[^\\d]:/, /,/);\n\n self.ontimestampmap && self.ontimestampmap({\n \"MPEGTS\": settings.get(\"MPEGTS\"),\n \"LOCAL\": settings.get(\"LOCAL\")\n });\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n if (input.match(/X-TIMESTAMP-MAP/)) {\n // This line contains HLS X-TIMESTAMP-MAP metadata\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"X-TIMESTAMP-MAP\":\n parseTimestampMap(v);\n break;\n }\n }, /=/);\n } else {\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"Region\":\n // 3.3 WebVTT region metadata header syntax\n parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n }\n\n // 5.1 WebVTT file parsing.\n try {\n var line;\n if (self.state === \"INITIAL\") {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n\n self.state = \"HEADER\";\n }\n\n var alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case \"HEADER\":\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = \"ID\";\n }\n continue;\n case \"NOTE\":\n // Ignore NOTE blocks.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n case \"ID\":\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = \"NOTE\";\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\n // Safari still uses the old middle value and won't accept center\n try {\n self.cue.align = \"center\";\n } catch (e) {\n self.cue.align = \"middle\";\n }\n self.state = \"CUE\";\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf(\"-->\") === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /*falls through*/\n case \"CUE\":\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n self.reportOrThrowError(e);\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = \"BADCUE\";\n continue;\n }\n self.state = \"CUETEXT\";\n continue;\n case \"CUETEXT\":\n var hasSubstring = line.indexOf(\"-->\") !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n self.oncue && self.oncue(self.cue);\n self.cue = null;\n self.state = \"ID\";\n continue;\n }\n if (self.cue.text) {\n self.cue.text += \"\\n\";\n }\n self.cue.text += line.replace(/\\u2028/g, '\\n').replace(/u2029/g, '\\n');\n continue;\n case \"BADCUE\": // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n }\n }\n } catch (e) {\n self.reportOrThrowError(e);\n\n // If we are currently parsing a cue, report what we have.\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\n }\n return this;\n },\n flush: function () {\n var self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === \"HEADER\") {\n self.buffer += \"\\n\\n\";\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === \"INITIAL\") {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n } catch(e) {\n self.reportOrThrowError(e);\n }\n self.onflush && self.onflush();\n return this;\n }\n};\n\nmodule.exports = WebVTT;\n","// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX =\n /^(?=((?:[a-zA-Z0-9+\\-.]+:)?))\\1(?=((?:\\/\\/[^\\/?#]*)?))\\2(?=((?:(?:[^?#\\/]*\\/)*[^;?#\\/]*)?))\\3((?:;[^?#]*)?)(\\?[^#]*)?(#[^]*)?$/;\n var FIRST_SEGMENT_REGEX = /^(?=([^\\/?#]*))\\1([^]*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment,\n };\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the \n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path;\n // 5a) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and\n if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 5b) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and we skip to step 7.\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\n }\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || '',\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n // 6c) All occurrences of \"/../\", where is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"/..\", where is a\n // complete path segment not equal to \"..\", that\n // \"/..\" is removed.\n while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = URLToolkit;\n else if (typeof define === 'function' && define.amd)\n define([], function () {\n return URLToolkit;\n });\n else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;\n else root['URLToolkit'] = URLToolkit;\n})(this);\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream = /*#__PURE__*/function () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nexport { Stream as default };","/*! @name m3u8-parser @version 6.0.0 @license Apache-2.0 */\nimport Stream from '@videojs/vhs-utils/es/stream.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array.js';\n\n/**\n * @file m3u8/line-stream.js\n */\n/**\n * A stream that buffers string input and generates a `data` event for each\n * line.\n *\n * @class LineStream\n * @extends Stream\n */\n\nclass LineStream extends Stream {\n constructor() {\n super();\n this.buffer = '';\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n push(data) {\n let nextNewline;\n this.buffer += data;\n nextNewline = this.buffer.indexOf('\\n');\n\n for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\\n')) {\n this.trigger('data', this.buffer.substring(0, nextNewline));\n this.buffer = this.buffer.substring(nextNewline + 1);\n }\n }\n\n}\n\nconst TAB = String.fromCharCode(0x09);\n\nconst parseByterange = function (byterangeString) {\n // optionally match and capture 0+ digits before `@`\n // optionally match and capture 0+ digits after `@`\n const match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || '');\n const result = {};\n\n if (match[1]) {\n result.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n result.offset = parseInt(match[2], 10);\n }\n\n return result;\n};\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\n\nconst attributeSeparator = function () {\n const key = '[^=]*';\n const value = '\"[^\"]*\"|[^,]*';\n const keyvalue = '(?:' + key + ')=(?:' + value + ')';\n return new RegExp('(?:^|,)(' + keyvalue + ')');\n};\n/**\n * Parse attributes from a line given the separator\n *\n * @param {string} attributes the attribute line to parse\n */\n\n\nconst parseAttributes = function (attributes) {\n const result = {};\n\n if (!attributes) {\n return result;\n } // split the string using attributes as the separator\n\n\n const attrs = attributes.split(attributeSeparator());\n let i = attrs.length;\n let attr;\n\n while (i--) {\n // filter out unmatched portions of the string\n if (attrs[i] === '') {\n continue;\n } // split the key and value\n\n\n attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1); // trim whitespace and remove optional quotes around the value\n\n attr[0] = attr[0].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^['\"](.*)['\"]$/g, '$1');\n result[attr[0]] = attr[1];\n }\n\n return result;\n};\n/**\n * A line-level M3U8 parser event stream. It expects to receive input one\n * line at a time and performs a context-free parse of its contents. A stream\n * interpretation of a manifest can be useful if the manifest is expected to\n * be too large to fit comfortably into memory or the entirety of the input\n * is not immediately available. Otherwise, it's probably much easier to work\n * with a regular `Parser` object.\n *\n * Produces `data` events with an object that captures the parser's\n * interpretation of the input. That object has a property `tag` that is one\n * of `uri`, `comment`, or `tag`. URIs only have a single additional\n * property, `line`, which captures the entirety of the input without\n * interpretation. Comments similarly have a single additional property\n * `text` which is the input without the leading `#`.\n *\n * Tags always have a property `tagType` which is the lower-cased version of\n * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,\n * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized\n * tags are given the tag type `unknown` and a single additional property\n * `data` with the remainder of the input.\n *\n * @class ParseStream\n * @extends Stream\n */\n\n\nclass ParseStream extends Stream {\n constructor() {\n super();\n this.customParsers = [];\n this.tagMappers = [];\n }\n /**\n * Parses an additional line of input.\n *\n * @param {string} line a single line of an M3U8 file to parse\n */\n\n\n push(line) {\n let match;\n let event; // strip whitespace\n\n line = line.trim();\n\n if (line.length === 0) {\n // ignore empty lines\n return;\n } // URIs\n\n\n if (line[0] !== '#') {\n this.trigger('data', {\n type: 'uri',\n uri: line\n });\n return;\n } // map tags\n\n\n const newLines = this.tagMappers.reduce((acc, mapper) => {\n const mappedLine = mapper(line); // skip if unchanged\n\n if (mappedLine === line) {\n return acc;\n }\n\n return acc.concat([mappedLine]);\n }, [line]);\n newLines.forEach(newLine => {\n for (let i = 0; i < this.customParsers.length; i++) {\n if (this.customParsers[i].call(this, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n this.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\n });\n return;\n } // strip off any carriage returns here so the regex matching\n // doesn't have to account for them.\n\n\n newLine = newLine.replace('\\r', ''); // Tags\n\n match = /^#EXTM3U/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\n });\n return;\n }\n\n match = /^#EXTINF:([0-9\\.]*)?,?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'inf'\n };\n\n if (match[1]) {\n event.duration = parseFloat(match[1]);\n }\n\n if (match[2]) {\n event.title = match[2];\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-TARGETDURATION:([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'targetduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-VERSION:([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'version'\n };\n\n if (match[1]) {\n event.version = parseInt(match[1], 10);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-MEDIA-SEQUENCE:(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY-SEQUENCE:(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'discontinuity-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PLAYLIST-TYPE:(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'playlist-type'\n };\n\n if (match[1]) {\n event.playlistType = match[1];\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:(.*)?$/.exec(newLine);\n\n if (match) {\n event = _extends(parseByterange(match[1]), {\n type: 'tag',\n tagType: 'byterange'\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-ALLOW-CACHE:(YES|NO)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'allow-cache'\n };\n\n if (match[1]) {\n event.allowed = !/NO/.test(match[1]);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-MAP:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'map'\n };\n\n if (match[1]) {\n const attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n event.byterange = parseByterange(attributes.BYTERANGE);\n }\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-STREAM-INF:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'stream-inf'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.RESOLUTION) {\n const split = event.attributes.RESOLUTION.split('x');\n const resolution = {};\n\n if (split[0]) {\n resolution.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n resolution.height = parseInt(split[1], 10);\n }\n\n event.attributes.RESOLUTION = resolution;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['FRAME-RATE']) {\n event.attributes['FRAME-RATE'] = parseFloat(event.attributes['FRAME-RATE']);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-MEDIA:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\n });\n return;\n }\n\n match = /^#EXT-X-PROGRAM-DATE-TIME:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'program-date-time'\n };\n\n if (match[1]) {\n event.dateTimeString = match[1];\n event.dateTimeObject = new Date(match[1]);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-KEY:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'key'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]); // parse the IV string into a Uint32Array\n\n if (event.attributes.IV) {\n if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {\n event.attributes.IV = event.attributes.IV.substring(2);\n }\n\n event.attributes.IV = event.attributes.IV.match(/.{8}/g);\n event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);\n event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);\n event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);\n event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);\n event.attributes.IV = new Uint32Array(event.attributes.IV);\n }\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-START:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'start'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);\n event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-CUE-OUT-CONT:(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out-cont'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-CUE-OUT:(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-CUE-IN:(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-in'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'skip'\n };\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.hasOwnProperty('SKIPPED-SEGMENTS')) {\n event.attributes['SKIPPED-SEGMENTS'] = parseInt(event.attributes['SKIPPED-SEGMENTS'], 10);\n }\n\n if (event.attributes.hasOwnProperty('RECENTLY-REMOVED-DATERANGES')) {\n event.attributes['RECENTLY-REMOVED-DATERANGES'] = event.attributes['RECENTLY-REMOVED-DATERANGES'].split(TAB);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PART:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part'\n };\n event.attributes = parseAttributes(match[1]);\n ['DURATION'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['INDEPENDENT', 'GAP'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n if (event.attributes.hasOwnProperty('BYTERANGE')) {\n event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'server-control'\n };\n event.attributes = parseAttributes(match[1]);\n ['CAN-SKIP-UNTIL', 'PART-HOLD-BACK', 'HOLD-BACK'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['CAN-SKIP-DATERANGES', 'CAN-BLOCK-RELOAD'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part-inf'\n };\n event.attributes = parseAttributes(match[1]);\n ['PART-TARGET'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'preload-hint'\n };\n event.attributes = parseAttributes(match[1]);\n ['BYTERANGE-START', 'BYTERANGE-LENGTH'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n const subkey = key === 'BYTERANGE-LENGTH' ? 'length' : 'offset';\n event.attributes.byterange = event.attributes.byterange || {};\n event.attributes.byterange[subkey] = event.attributes[key]; // only keep the parsed byterange object.\n\n delete event.attributes[key];\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'rendition-report'\n };\n event.attributes = parseAttributes(match[1]);\n ['LAST-MSN', 'LAST-PART'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n }\n });\n this.trigger('data', event);\n return;\n } // unknown tag type\n\n\n this.trigger('data', {\n type: 'tag',\n data: newLine.slice(4)\n });\n });\n }\n /**\n * Add a parser for custom headers\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.customType the custom type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n\n\n addParser({\n expression,\n customType,\n dataParser,\n segment\n }) {\n if (typeof dataParser !== 'function') {\n dataParser = line => line;\n }\n\n this.customParsers.push(line => {\n const match = expression.exec(line);\n\n if (match) {\n this.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType,\n segment\n });\n return true;\n }\n });\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n\n\n addTagMapper({\n expression,\n map\n }) {\n const mapFn = line => {\n if (expression.test(line)) {\n return map(line);\n }\n\n return line;\n };\n\n this.tagMappers.push(mapFn);\n }\n\n}\n\nconst camelCase = str => str.toLowerCase().replace(/-(\\w)/g, a => a[1].toUpperCase());\n\nconst camelCaseKeys = function (attributes) {\n const result = {};\n Object.keys(attributes).forEach(function (key) {\n result[camelCase(key)] = attributes[key];\n });\n return result;\n}; // set SERVER-CONTROL hold back based upon targetDuration and partTargetDuration\n// we need this helper because defaults are based upon targetDuration and\n// partTargetDuration being set, but they may not be if SERVER-CONTROL appears before\n// target durations are set.\n\n\nconst setHoldBack = function (manifest) {\n const {\n serverControl,\n targetDuration,\n partTargetDuration\n } = manifest;\n\n if (!serverControl) {\n return;\n }\n\n const tag = '#EXT-X-SERVER-CONTROL';\n const hb = 'holdBack';\n const phb = 'partHoldBack';\n const minTargetDuration = targetDuration && targetDuration * 3;\n const minPartDuration = partTargetDuration && partTargetDuration * 2;\n\n if (targetDuration && !serverControl.hasOwnProperty(hb)) {\n serverControl[hb] = minTargetDuration;\n this.trigger('info', {\n message: `${tag} defaulting HOLD-BACK to targetDuration * 3 (${minTargetDuration}).`\n });\n }\n\n if (minTargetDuration && serverControl[hb] < minTargetDuration) {\n this.trigger('warn', {\n message: `${tag} clamping HOLD-BACK (${serverControl[hb]}) to targetDuration * 3 (${minTargetDuration})`\n });\n serverControl[hb] = minTargetDuration;\n } // default no part hold back to part target duration * 3\n\n\n if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {\n serverControl[phb] = partTargetDuration * 3;\n this.trigger('info', {\n message: `${tag} defaulting PART-HOLD-BACK to partTargetDuration * 3 (${serverControl[phb]}).`\n });\n } // if part hold back is too small default it to part target duration * 2\n\n\n if (partTargetDuration && serverControl[phb] < minPartDuration) {\n this.trigger('warn', {\n message: `${tag} clamping PART-HOLD-BACK (${serverControl[phb]}) to partTargetDuration * 2 (${minPartDuration}).`\n });\n serverControl[phb] = minPartDuration;\n }\n};\n/**\n * A parser for M3U8 files. The current interpretation of the input is\n * exposed as a property `manifest` on parser objects. It's just two lines to\n * create and parse a manifest once you have the contents available as a string:\n *\n * ```js\n * var parser = new m3u8.Parser();\n * parser.push(xhr.responseText);\n * ```\n *\n * New input can later be applied to update the manifest object by calling\n * `push` again.\n *\n * The parser attempts to create a usable manifest object even if the\n * underlying input is somewhat nonsensical. It emits `info` and `warning`\n * events during the parse if it encounters input that seems invalid or\n * requires some property of the manifest object to be defaulted.\n *\n * @class Parser\n * @extends Stream\n */\n\n\nclass Parser extends Stream {\n constructor() {\n super();\n this.lineStream = new LineStream();\n this.parseStream = new ParseStream();\n this.lineStream.pipe(this.parseStream);\n /* eslint-disable consistent-this */\n\n const self = this;\n /* eslint-enable consistent-this */\n\n const uris = [];\n let currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n let currentMap; // if specified, the active decryption key\n\n let key;\n let hasParts = false;\n\n const noop = function () {};\n\n const defaultMediaGroups = {\n 'AUDIO': {},\n 'VIDEO': {},\n 'CLOSED-CAPTIONS': {},\n 'SUBTITLES': {}\n }; // This is the Widevine UUID from DASH IF IOP. The same exact string is\n // used in MPDs with Widevine encrypted streams.\n\n const widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n let currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: []\n }; // keep track of the last seen segment's byte range end, as segments are not required\n // to provide the offset, in which case it defaults to the next byte after the\n // previous segment\n\n let lastByterangeEnd = 0; // keep track of the last seen part's byte range end.\n\n let lastPartByterangeEnd = 0;\n this.on('end', () => {\n // only add preloadSegment if we don't yet have a uri for it.\n // and we actually have parts/preloadHints\n if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) {\n return;\n }\n\n if (!currentUri.map && currentMap) {\n currentUri.map = currentMap;\n }\n\n if (!currentUri.key && key) {\n currentUri.key = key;\n }\n\n if (!currentUri.timeline && typeof currentTimeline === 'number') {\n currentUri.timeline = currentTimeline;\n }\n\n this.manifest.preloadSegment = currentUri;\n }); // update the manifest with the m3u8 entry from the parse stream\n\n this.parseStream.on('data', function (entry) {\n let mediaGroup;\n let rendition;\n ({\n tag() {\n // switch based on the tag type\n (({\n version() {\n if (entry.version) {\n this.manifest.version = entry.version;\n }\n },\n\n 'allow-cache'() {\n this.manifest.allowCache = entry.allowed;\n\n if (!('allowed' in entry)) {\n this.trigger('info', {\n message: 'defaulting allowCache to YES'\n });\n this.manifest.allowCache = true;\n }\n },\n\n byterange() {\n const byterange = {};\n\n if ('length' in entry) {\n currentUri.byterange = byterange;\n byterange.length = entry.length;\n\n if (!('offset' in entry)) {\n /*\n * From the latest spec (as of this writing):\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.2\n *\n * Same text since EXT-X-BYTERANGE's introduction in draft 7:\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-07#section-3.3.1)\n *\n * \"If o [offset] is not present, the sub-range begins at the next byte\n * following the sub-range of the previous media segment.\"\n */\n entry.offset = lastByterangeEnd;\n }\n }\n\n if ('offset' in entry) {\n currentUri.byterange = byterange;\n byterange.offset = entry.offset;\n }\n\n lastByterangeEnd = byterange.offset + byterange.length;\n },\n\n endlist() {\n this.manifest.endList = true;\n },\n\n inf() {\n if (!('mediaSequence' in this.manifest)) {\n this.manifest.mediaSequence = 0;\n this.trigger('info', {\n message: 'defaulting media sequence to zero'\n });\n }\n\n if (!('discontinuitySequence' in this.manifest)) {\n this.manifest.discontinuitySequence = 0;\n this.trigger('info', {\n message: 'defaulting discontinuity sequence to zero'\n });\n }\n\n if (entry.duration > 0) {\n currentUri.duration = entry.duration;\n }\n\n if (entry.duration === 0) {\n currentUri.duration = 0.01;\n this.trigger('info', {\n message: 'updating zero segment duration to a small value'\n });\n }\n\n this.manifest.segments = uris;\n },\n\n key() {\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring key declaration without attribute list'\n });\n return;\n } // clear the active encryption key\n\n\n if (entry.attributes.METHOD === 'NONE') {\n key = null;\n return;\n }\n\n if (!entry.attributes.URI) {\n this.trigger('warn', {\n message: 'ignoring key declaration without URI'\n });\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.apple.streamingkeydelivery') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.apple.fps.1_0'] = {\n attributes: entry.attributes\n };\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.microsoft.playready') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.microsoft.playready'] = {\n uri: entry.attributes.URI\n };\n return;\n } // check if the content is encrypted for Widevine\n // Widevine/HLS spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_HLS.pdf\n\n\n if (entry.attributes.KEYFORMAT === widevineUuid) {\n const VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR', 'SAMPLE-AES-CENC'];\n\n if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {\n this.trigger('warn', {\n message: 'invalid key method provided for Widevine'\n });\n return;\n }\n\n if (entry.attributes.METHOD === 'SAMPLE-AES-CENC') {\n this.trigger('warn', {\n message: 'SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead'\n });\n }\n\n if (entry.attributes.URI.substring(0, 23) !== 'data:text/plain;base64,') {\n this.trigger('warn', {\n message: 'invalid key URI provided for Widevine'\n });\n return;\n }\n\n if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === '0x')) {\n this.trigger('warn', {\n message: 'invalid key ID provided for Widevine'\n });\n return;\n } // if Widevine key attributes are valid, store them as `contentProtection`\n // on the manifest to emulate Widevine tag structure in a DASH mpd\n\n\n this.manifest.contentProtection = this.manifest.contentProtection || {};\n this.manifest.contentProtection['com.widevine.alpha'] = {\n attributes: {\n schemeIdUri: entry.attributes.KEYFORMAT,\n // remove '0x' from the key id string\n keyId: entry.attributes.KEYID.substring(2)\n },\n // decode the base64-encoded PSSH box\n pssh: decodeB64ToUint8Array(entry.attributes.URI.split(',')[1])\n };\n return;\n }\n\n if (!entry.attributes.METHOD) {\n this.trigger('warn', {\n message: 'defaulting key method to AES-128'\n });\n } // setup an encryption key for upcoming segments\n\n\n key = {\n method: entry.attributes.METHOD || 'AES-128',\n uri: entry.attributes.URI\n };\n\n if (typeof entry.attributes.IV !== 'undefined') {\n key.iv = entry.attributes.IV;\n }\n },\n\n 'media-sequence'() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid media sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.mediaSequence = entry.number;\n },\n\n 'discontinuity-sequence'() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid discontinuity sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.discontinuitySequence = entry.number;\n currentTimeline = entry.number;\n },\n\n 'playlist-type'() {\n if (!/VOD|EVENT/.test(entry.playlistType)) {\n this.trigger('warn', {\n message: 'ignoring unknown playlist type: ' + entry.playlist\n });\n return;\n }\n\n this.manifest.playlistType = entry.playlistType;\n },\n\n map() {\n currentMap = {};\n\n if (entry.uri) {\n currentMap.uri = entry.uri;\n }\n\n if (entry.byterange) {\n currentMap.byterange = entry.byterange;\n }\n\n if (key) {\n currentMap.key = key;\n }\n },\n\n 'stream-inf'() {\n this.manifest.playlists = uris;\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring empty stream-inf attributes'\n });\n return;\n }\n\n if (!currentUri.attributes) {\n currentUri.attributes = {};\n }\n\n _extends(currentUri.attributes, entry.attributes);\n },\n\n media() {\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {\n this.trigger('warn', {\n message: 'ignoring incomplete or missing media group'\n });\n return;\n } // find the media group, creating defaults as necessary\n\n\n const mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];\n mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};\n mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']]; // collect the rendition metadata\n\n rendition = {\n default: /yes/i.test(entry.attributes.DEFAULT)\n };\n\n if (rendition.default) {\n rendition.autoselect = true;\n } else {\n rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);\n }\n\n if (entry.attributes.LANGUAGE) {\n rendition.language = entry.attributes.LANGUAGE;\n }\n\n if (entry.attributes.URI) {\n rendition.uri = entry.attributes.URI;\n }\n\n if (entry.attributes['INSTREAM-ID']) {\n rendition.instreamId = entry.attributes['INSTREAM-ID'];\n }\n\n if (entry.attributes.CHARACTERISTICS) {\n rendition.characteristics = entry.attributes.CHARACTERISTICS;\n }\n\n if (entry.attributes.FORCED) {\n rendition.forced = /yes/i.test(entry.attributes.FORCED);\n } // insert the new rendition\n\n\n mediaGroup[entry.attributes.NAME] = rendition;\n },\n\n discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n\n 'program-date-time'() {\n if (typeof this.manifest.dateTimeString === 'undefined') {\n // PROGRAM-DATE-TIME is a media-segment tag, but for backwards\n // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag\n // to the manifest object\n // TODO: Consider removing this in future major version\n this.manifest.dateTimeString = entry.dateTimeString;\n this.manifest.dateTimeObject = entry.dateTimeObject;\n }\n\n currentUri.dateTimeString = entry.dateTimeString;\n currentUri.dateTimeObject = entry.dateTimeObject;\n },\n\n targetduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid target duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.targetDuration = entry.duration;\n setHoldBack.call(this, this.manifest);\n },\n\n start() {\n if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {\n this.trigger('warn', {\n message: 'ignoring start declaration without appropriate attribute list'\n });\n return;\n }\n\n this.manifest.start = {\n timeOffset: entry.attributes['TIME-OFFSET'],\n precise: entry.attributes.PRECISE\n };\n },\n\n 'cue-out'() {\n currentUri.cueOut = entry.data;\n },\n\n 'cue-out-cont'() {\n currentUri.cueOutCont = entry.data;\n },\n\n 'cue-in'() {\n currentUri.cueIn = entry.data;\n },\n\n 'skip'() {\n this.manifest.skip = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-SKIP', entry.attributes, ['SKIPPED-SEGMENTS']);\n },\n\n 'part'() {\n hasParts = true; // parts are always specifed before a segment\n\n const segmentIndex = this.manifest.segments.length;\n const part = camelCaseKeys(entry.attributes);\n currentUri.parts = currentUri.parts || [];\n currentUri.parts.push(part);\n\n if (part.byterange) {\n if (!part.byterange.hasOwnProperty('offset')) {\n part.byterange.offset = lastPartByterangeEnd;\n }\n\n lastPartByterangeEnd = part.byterange.offset + part.byterange.length;\n }\n\n const partIndex = currentUri.parts.length - 1;\n this.warnOnMissingAttributes_(`#EXT-X-PART #${partIndex} for segment #${segmentIndex}`, entry.attributes, ['URI', 'DURATION']);\n\n if (this.manifest.renditionReports) {\n this.manifest.renditionReports.forEach((r, i) => {\n if (!r.hasOwnProperty('lastPart')) {\n this.trigger('warn', {\n message: `#EXT-X-RENDITION-REPORT #${i} lacks required attribute(s): LAST-PART`\n });\n }\n });\n }\n },\n\n 'server-control'() {\n const attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);\n\n if (!attrs.hasOwnProperty('canBlockReload')) {\n attrs.canBlockReload = false;\n this.trigger('info', {\n message: '#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false'\n });\n }\n\n setHoldBack.call(this, this.manifest);\n\n if (attrs.canSkipDateranges && !attrs.hasOwnProperty('canSkipUntil')) {\n this.trigger('warn', {\n message: '#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set'\n });\n }\n },\n\n 'preload-hint'() {\n // parts are always specifed before a segment\n const segmentIndex = this.manifest.segments.length;\n const hint = camelCaseKeys(entry.attributes);\n const isPart = hint.type && hint.type === 'PART';\n currentUri.preloadHints = currentUri.preloadHints || [];\n currentUri.preloadHints.push(hint);\n\n if (hint.byterange) {\n if (!hint.byterange.hasOwnProperty('offset')) {\n // use last part byterange end or zero if not a part.\n hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;\n\n if (isPart) {\n lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;\n }\n }\n }\n\n const index = currentUri.preloadHints.length - 1;\n this.warnOnMissingAttributes_(`#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex}`, entry.attributes, ['TYPE', 'URI']);\n\n if (!hint.type) {\n return;\n } // search through all preload hints except for the current one for\n // a duplicate type.\n\n\n for (let i = 0; i < currentUri.preloadHints.length - 1; i++) {\n const otherHint = currentUri.preloadHints[i];\n\n if (!otherHint.type) {\n continue;\n }\n\n if (otherHint.type === hint.type) {\n this.trigger('warn', {\n message: `#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex} has the same TYPE ${hint.type} as preload hint #${i}`\n });\n }\n }\n },\n\n 'rendition-report'() {\n const report = camelCaseKeys(entry.attributes);\n this.manifest.renditionReports = this.manifest.renditionReports || [];\n this.manifest.renditionReports.push(report);\n const index = this.manifest.renditionReports.length - 1;\n const required = ['LAST-MSN', 'URI'];\n\n if (hasParts) {\n required.push('LAST-PART');\n }\n\n this.warnOnMissingAttributes_(`#EXT-X-RENDITION-REPORT #${index}`, entry.attributes, required);\n },\n\n 'part-inf'() {\n this.manifest.partInf = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-PART-INF', entry.attributes, ['PART-TARGET']);\n\n if (this.manifest.partInf.partTarget) {\n this.manifest.partTargetDuration = this.manifest.partInf.partTarget;\n }\n\n setHoldBack.call(this, this.manifest);\n }\n\n })[entry.tagType] || noop).call(self);\n },\n\n uri() {\n currentUri.uri = entry.uri;\n uris.push(currentUri); // if no explicit duration was declared, use the target duration\n\n if (this.manifest.targetDuration && !('duration' in currentUri)) {\n this.trigger('warn', {\n message: 'defaulting segment duration to the target duration'\n });\n currentUri.duration = this.manifest.targetDuration;\n } // annotate with encryption information, if necessary\n\n\n if (key) {\n currentUri.key = key;\n }\n\n currentUri.timeline = currentTimeline; // annotate with initialization segment information, if necessary\n\n if (currentMap) {\n currentUri.map = currentMap;\n } // reset the last byterange end as it needs to be 0 between parts\n\n\n lastPartByterangeEnd = 0; // prepare for the next URI\n\n currentUri = {};\n },\n\n comment() {// comments are not important for playback\n },\n\n custom() {\n // if this is segment-level data attach the output to the segment\n if (entry.segment) {\n currentUri.custom = currentUri.custom || {};\n currentUri.custom[entry.customType] = entry.data; // if this is manifest-level data attach to the top level manifest object\n } else {\n this.manifest.custom = this.manifest.custom || {};\n this.manifest.custom[entry.customType] = entry.data;\n }\n }\n\n })[entry.type].call(self);\n });\n }\n\n warnOnMissingAttributes_(identifier, attributes, required) {\n const missing = [];\n required.forEach(function (key) {\n if (!attributes.hasOwnProperty(key)) {\n missing.push(key);\n }\n });\n\n if (missing.length) {\n this.trigger('warn', {\n message: `${identifier} lacks required attribute(s): ${missing.join(', ')}`\n });\n }\n }\n /**\n * Parse the input string and update the manifest object.\n *\n * @param {string} chunk a potentially incomplete portion of the manifest\n */\n\n\n push(chunk) {\n this.lineStream.push(chunk);\n }\n /**\n * Flush any remaining input. This can be handy if the last line of an M3U8\n * manifest did not contain a trailing newline but the file has been\n * completely received.\n */\n\n\n end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n this.trigger('end');\n }\n /**\n * Add an additional parser for non-standard tags\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.type the type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n\n\n addParser(options) {\n this.parseStream.addParser(options);\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n\n\n addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n }\n\n}\n\nexport { LineStream, ParseStream, Parser };\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 122);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 122:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(123);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkbox2.default.install = function (Vue) {\n Vue.component(_checkbox2.default.name, _checkbox2.default);\n};\n\nexports.default = _checkbox2.default;\n\n/***/ }),\n\n/***/ 123:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__ = __webpack_require__(124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__ = __webpack_require__(125);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 124:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElCheckbox',\n\n mixins: [_emitter2.default],\n\n inject: {\n elForm: {\n default: ''\n },\n elFormItem: {\n default: ''\n }\n },\n\n componentName: 'ElCheckbox',\n\n data: function data() {\n return {\n selfModel: false,\n focus: false,\n isLimitExceeded: false\n };\n },\n\n\n computed: {\n model: {\n get: function get() {\n return this.isGroup ? this.store : this.value !== undefined ? this.value : this.selfModel;\n },\n set: function set(val) {\n if (this.isGroup) {\n this.isLimitExceeded = false;\n this._checkboxGroup.min !== undefined && val.length < this._checkboxGroup.min && (this.isLimitExceeded = true);\n\n this._checkboxGroup.max !== undefined && val.length > this._checkboxGroup.max && (this.isLimitExceeded = true);\n\n this.isLimitExceeded === false && this.dispatch('ElCheckboxGroup', 'input', [val]);\n } else {\n this.$emit('input', val);\n this.selfModel = val;\n }\n }\n },\n\n isChecked: function isChecked() {\n if ({}.toString.call(this.model) === '[object Boolean]') {\n return this.model;\n } else if (Array.isArray(this.model)) {\n return this.model.indexOf(this.label) > -1;\n } else if (this.model !== null && this.model !== undefined) {\n return this.model === this.trueLabel;\n }\n },\n isGroup: function isGroup() {\n var parent = this.$parent;\n while (parent) {\n if (parent.$options.componentName !== 'ElCheckboxGroup') {\n parent = parent.$parent;\n } else {\n this._checkboxGroup = parent;\n return true;\n }\n }\n return false;\n },\n store: function store() {\n return this._checkboxGroup ? this._checkboxGroup.value : this.value;\n },\n isDisabled: function isDisabled() {\n return this.isGroup ? this._checkboxGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled;\n },\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n checkboxSize: function checkboxSize() {\n var temCheckboxSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n return this.isGroup ? this._checkboxGroup.checkboxGroupSize || temCheckboxSize : temCheckboxSize;\n }\n },\n\n props: {\n value: {},\n label: {},\n indeterminate: Boolean,\n disabled: Boolean,\n checked: Boolean,\n name: String,\n trueLabel: [String, Number],\n falseLabel: [String, Number],\n id: String, /* 当indeterminate为真时,为controls提供相关连的checkbox的id,表明元素间的控制关系*/\n controls: String, /* 当indeterminate为真时,为controls提供相关连的checkbox的id,表明元素间的控制关系*/\n border: Boolean,\n size: String\n },\n\n methods: {\n addToStore: function addToStore() {\n if (Array.isArray(this.model) && this.model.indexOf(this.label) === -1) {\n this.model.push(this.label);\n } else {\n this.model = this.trueLabel || true;\n }\n },\n handleChange: function handleChange(ev) {\n var _this = this;\n\n if (this.isLimitExceeded) return;\n var value = void 0;\n if (ev.target.checked) {\n value = this.trueLabel === undefined ? true : this.trueLabel;\n } else {\n value = this.falseLabel === undefined ? false : this.falseLabel;\n }\n this.$emit('change', value, ev);\n this.$nextTick(function () {\n if (_this.isGroup) {\n _this.dispatch('ElCheckboxGroup', 'change', [_this._checkboxGroup.value]);\n }\n });\n }\n },\n\n created: function created() {\n this.checked && this.addToStore();\n },\n mounted: function mounted() {\n // 为indeterminate元素 添加aria-controls 属性\n if (this.indeterminate) {\n this.$el.setAttribute('aria-controls', this.controls);\n }\n },\n\n\n watch: {\n value: function value(_value) {\n this.dispatch('ElFormItem', 'el.form.change', _value);\n }\n }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 125:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"el-checkbox\",class:[\n _vm.border && _vm.checkboxSize ? 'el-checkbox--' + _vm.checkboxSize : '',\n { 'is-disabled': _vm.isDisabled },\n { 'is-bordered': _vm.border },\n { 'is-checked': _vm.isChecked }\n ],attrs:{\"role\":\"checkbox\",\"aria-checked\":_vm.indeterminate ? 'mixed': _vm.isChecked,\"aria-disabled\":_vm.isDisabled,\"id\":_vm.id}},[_c('span',{staticClass:\"el-checkbox__input\",class:{\n 'is-disabled': _vm.isDisabled,\n 'is-checked': _vm.isChecked,\n 'is-indeterminate': _vm.indeterminate,\n 'is-focus': _vm.focus\n },attrs:{\"aria-checked\":\"mixed\"}},[_c('span',{staticClass:\"el-checkbox__inner\"}),(_vm.trueLabel || _vm.falseLabel)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox__original\",attrs:{\"type\":\"checkbox\",\"aria-hidden\":\"true\",\"name\":_vm.name,\"disabled\":_vm.isDisabled,\"true-value\":_vm.trueLabel,\"false-value\":_vm.falseLabel},domProps:{\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,null)>-1:_vm._q(_vm.model,_vm.trueLabel)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(_vm.trueLabel):(_vm.falseLabel);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox__original\",attrs:{\"type\":\"checkbox\",\"aria-hidden\":\"true\",\"disabled\":_vm.isDisabled,\"name\":_vm.name},domProps:{\"value\":_vm.label,\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,_vm.label)>-1:(_vm.model)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.label,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}})]),(_vm.$slots.default || _vm.label)?_c('span',{staticClass:\"el-checkbox__label\"},[_vm._t(\"default\"),(!_vm.$slots.default)?[_vm._v(_vm._s(_vm.label))]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 76);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ }),\n\n/***/ 76:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdownMenu = __webpack_require__(77);\n\nvar _dropdownMenu2 = _interopRequireDefault(_dropdownMenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdownMenu2.default.install = function (Vue) {\n Vue.component(_dropdownMenu2.default.name, _dropdownMenu2.default);\n};\n\nexports.default = _dropdownMenu2.default;\n\n/***/ }),\n\n/***/ 77:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__ = __webpack_require__(78);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__ = __webpack_require__(79);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 78:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(7);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: 'ElDropdownMenu',\n\n componentName: 'ElDropdownMenu',\n\n mixins: [_vuePopper2.default],\n\n props: {\n visibleArrow: {\n type: Boolean,\n default: true\n },\n arrowOffset: {\n type: Number,\n default: 0\n }\n },\n\n data: function data() {\n return {\n size: this.dropdown.dropdownSize\n };\n },\n\n\n inject: ['dropdown'],\n\n created: function created() {\n var _this = this;\n\n this.$on('updatePopper', function () {\n if (_this.showPopper) _this.updatePopper();\n });\n this.$on('visible', function (val) {\n _this.showPopper = val;\n });\n },\n mounted: function mounted() {\n this.$parent.popperElm = this.popperElm = this.$el;\n this.referenceElm = this.$parent.$el;\n },\n\n\n watch: {\n 'dropdown.placement': {\n immediate: true,\n handler: function handler(val) {\n this.currentPlacement = val;\n }\n }\n }\n}; //\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 79:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":_vm.doDestroy}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-dropdown-menu el-popper\",class:[_vm.size && (\"el-dropdown-menu--\" + _vm.size)]},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nfunction keyCode(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n if (hasKeyCode) searchInput = hasKeyCode\n }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\n\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode\n if (keyCode === null || keyCode === undefined) { return false; }\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n \n // check aliases\n var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n return false;\n }\n}\n\nexports = module.exports = keyCode;\n\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'spacebar': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n}\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n","var NAMESPACE = require(\"./conventions\").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\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\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// 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\tcase S_ATTR_SPACE:\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('',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('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//\n\n \n \n

\n \n Evb anfordern\n

\n
\n
\n\n\n \n \n
\n \n\n \n \n

Anrede

\n \n \n
\n\n \n

Vorname

\n \n \n
\n\n \n

Nachname

\n \n \n
\n\n \n

Firmenname

\n \n \n
\n
\n\n\n \n\n \n

Geburtsdatum

\n \n \n \n
\n
\n\n\n\n \n\n\n \n\n\n \n\n\n \n\n
\n\n
\n
\n \n \n \n\n\n \n\n\n \n Jetzt\n anfordern\n \n \n\n \n
\n\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewEvb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./NewEvb.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NewEvb.vue?vue&type=template&id=26efc18c&\"\nimport script from \"./NewEvb.vue?vue&type=script&lang=js&\"\nexport * from \"./NewEvb.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NewEvb.vue?vue&type=style&index=0&id=26efc18c&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var conventions = require(\"./conventions\");\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} current\n * @param {string} element\n * @returns {Record}\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 this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || 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.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');\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('');\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( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\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( \"\");\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 \"+_vm._s(_vm.customer_valid)+\" \\n \")])])],1),_c('div',{staticClass:\"list-group-item\"},[_c('data-row',{attrs:{\"title\":\"Fahrzeug\",\"icon\":\"fas fa-car\",\"editable\":\"true\"}},[_c('small',[_vm._v(\"\\noffer.car valid ? -> \"+_vm._s(_vm.car_valid)+\" \\n \")])])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CalcInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./CalcInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CalcInfo.vue?vue&type=template&id=10e578df&\"\nimport script from \"./CalcInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./CalcInfo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 146);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 146:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _option = __webpack_require__(35);\n\nvar _option2 = _interopRequireDefault(_option);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_option2.default.install = function (Vue) {\n Vue.component(_option2.default.name, _option2.default);\n};\n\nexports.default = _option2.default;\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__ = __webpack_require__(37);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n mixins: [_emitter2.default],\n\n name: 'ElOption',\n\n componentName: 'ElOption',\n\n inject: ['select'],\n\n props: {\n value: {\n required: true\n },\n label: [String, Number],\n created: Boolean,\n disabled: {\n type: Boolean,\n default: false\n }\n },\n\n data: function data() {\n return {\n index: -1,\n groupDisabled: false,\n visible: true,\n hitState: false,\n hover: false\n };\n },\n\n\n computed: {\n isObject: function isObject() {\n return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n },\n currentLabel: function currentLabel() {\n return this.label || (this.isObject ? '' : this.value);\n },\n currentValue: function currentValue() {\n return this.value || this.label || '';\n },\n itemSelected: function itemSelected() {\n if (!this.select.multiple) {\n return this.isEqual(this.value, this.select.value);\n } else {\n return this.contains(this.select.value, this.value);\n }\n },\n limitReached: function limitReached() {\n if (this.select.multiple) {\n return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;\n } else {\n return false;\n }\n }\n },\n\n watch: {\n currentLabel: function currentLabel() {\n if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');\n },\n value: function value(val, oldVal) {\n var _select = this.select,\n remote = _select.remote,\n valueKey = _select.valueKey;\n\n if (!this.created && !remote) {\n if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {\n return;\n }\n this.dispatch('ElSelect', 'setSelected');\n }\n }\n },\n\n methods: {\n isEqual: function isEqual(a, b) {\n if (!this.isObject) {\n return a === b;\n } else {\n var valueKey = this.select.valueKey;\n return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n }\n },\n contains: function contains() {\n var _this = this;\n\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var target = arguments[1];\n\n if (!this.isObject) {\n return arr.indexOf(target) > -1;\n } else {\n var _ret = function () {\n var valueKey = _this.select.valueKey;\n return {\n v: arr.some(function (item) {\n return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n })\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n },\n handleGroupDisabled: function handleGroupDisabled(val) {\n this.groupDisabled = val;\n },\n hoverItem: function hoverItem() {\n if (!this.disabled && !this.groupDisabled) {\n this.select.hoverIndex = this.select.options.indexOf(this);\n }\n },\n selectOptionClick: function selectOptionClick() {\n if (this.disabled !== true && this.groupDisabled !== true) {\n this.dispatch('ElSelect', 'handleOptionClick', [this, true]);\n }\n },\n queryChange: function queryChange(query) {\n this.visible = new RegExp((0, _util.escapeRegexpString)(query), 'i').test(this.currentLabel) || this.created;\n if (!this.visible) {\n this.select.filteredOptionsCount--;\n }\n }\n },\n\n created: function created() {\n this.select.options.push(this);\n this.select.cachedOptions.push(this);\n this.select.optionsCount++;\n this.select.filteredOptionsCount++;\n\n this.$on('queryChange', this.queryChange);\n this.$on('handleGroupDisabled', this.handleGroupDisabled);\n },\n beforeDestroy: function beforeDestroy() {\n this.select.onOptionDestroy(this.select.options.indexOf(this));\n }\n};\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-select-dropdown__item\",class:{\n 'selected': _vm.itemSelected,\n 'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n 'hover': _vm.hover\n },on:{\"mouseenter\":_vm.hoverItem,\"click\":function($event){$event.stopPropagation();_vm.selectOptionClick($event)}}},[_vm._t(\"default\",[_c('span',[_vm._v(_vm._s(_vm.currentLabel))])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 174);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 16:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/checkbox\");\n\n/***/ }),\n\n/***/ 174:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tableColumn = __webpack_require__(175);\n\nvar _tableColumn2 = _interopRequireDefault(_tableColumn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tableColumn2.default.install = function (Vue) {\n Vue.component(_tableColumn2.default.name, _tableColumn2.default);\n};\n\nexports.default = _tableColumn2.default;\n\n/***/ }),\n\n/***/ 175:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(16);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _merge = __webpack_require__(9);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _util = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar columnIdSeed = 1;\n\nvar defaults = {\n default: {\n order: ''\n },\n selection: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n className: 'el-table-column--selection'\n },\n expand: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: ''\n },\n index: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: ''\n }\n};\n\nvar forced = {\n selection: {\n renderHeader: function renderHeader(h, _ref) {\n var store = _ref.store;\n\n return h(\n 'el-checkbox',\n {\n attrs: {\n disabled: store.states.data && store.states.data.length === 0,\n indeterminate: store.states.selection.length > 0 && !this.isAllSelected,\n\n value: this.isAllSelected },\n nativeOn: {\n 'click': this.toggleAllSelection\n }\n },\n []\n );\n },\n renderCell: function renderCell(h, _ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n store = _ref2.store,\n $index = _ref2.$index;\n\n return h(\n 'el-checkbox',\n {\n nativeOn: {\n 'click': function click(event) {\n return event.stopPropagation();\n }\n },\n attrs: {\n value: store.isSelected(row),\n disabled: column.selectable ? !column.selectable.call(null, row, $index) : false\n },\n on: {\n 'input': function input() {\n store.commit('rowSelectedChanged', row);\n }\n }\n },\n []\n );\n },\n sortable: false,\n resizable: false\n },\n index: {\n renderHeader: function renderHeader(h, _ref3) {\n var column = _ref3.column;\n\n return column.label || '#';\n },\n renderCell: function renderCell(h, _ref4) {\n var $index = _ref4.$index,\n column = _ref4.column;\n\n var i = $index + 1;\n var index = column.index;\n\n if (typeof index === 'number') {\n i = $index + index;\n } else if (typeof index === 'function') {\n i = index($index);\n }\n\n return h(\n 'div',\n null,\n [i]\n );\n },\n sortable: false\n },\n expand: {\n renderHeader: function renderHeader(h, _ref5) {\n var column = _ref5.column;\n\n return column.label || '';\n },\n renderCell: function renderCell(h, _ref6, proxy) {\n var row = _ref6.row,\n store = _ref6.store;\n\n var expanded = store.states.expandRows.indexOf(row) > -1;\n return h(\n 'div',\n { 'class': 'el-table__expand-icon ' + (expanded ? 'el-table__expand-icon--expanded' : ''),\n on: {\n 'click': function click(e) {\n return proxy.handleExpandClick(row, e);\n }\n }\n },\n [h(\n 'i',\n { 'class': 'el-icon el-icon-arrow-right' },\n []\n )]\n );\n },\n sortable: false,\n resizable: false,\n className: 'el-table__expand-column'\n }\n};\n\nvar getDefaultColumn = function getDefaultColumn(type, options) {\n var column = {};\n\n (0, _merge2.default)(column, defaults[type || 'default']);\n\n for (var name in options) {\n if (options.hasOwnProperty(name)) {\n var value = options[name];\n if (typeof value !== 'undefined') {\n column[name] = value;\n }\n }\n }\n\n if (!column.minWidth) {\n column.minWidth = 80;\n }\n\n column.realWidth = column.width === undefined ? column.minWidth : column.width;\n\n return column;\n};\n\nvar DEFAULT_RENDER_CELL = function DEFAULT_RENDER_CELL(h, _ref7) {\n var row = _ref7.row,\n column = _ref7.column,\n $index = _ref7.$index;\n\n var property = column.property;\n var value = property && (0, _util.getPropByPath)(row, property).v;\n if (column && column.formatter) {\n return column.formatter(row, column, value, $index);\n }\n return value;\n};\n\nvar parseWidth = function parseWidth(width) {\n if (width !== undefined) {\n width = parseInt(width, 10);\n if (isNaN(width)) {\n width = null;\n }\n }\n return width;\n};\n\nvar parseMinWidth = function parseMinWidth(minWidth) {\n if (minWidth !== undefined) {\n minWidth = parseInt(minWidth, 10);\n if (isNaN(minWidth)) {\n minWidth = 80;\n }\n }\n return minWidth;\n};\n\nexports.default = {\n name: 'ElTableColumn',\n\n props: {\n type: {\n type: String,\n default: 'default'\n },\n label: String,\n className: String,\n labelClassName: String,\n property: String,\n prop: String,\n width: {},\n minWidth: {},\n renderHeader: Function,\n sortable: {\n type: [String, Boolean],\n default: false\n },\n sortMethod: Function,\n sortBy: [String, Function, Array],\n resizable: {\n type: Boolean,\n default: true\n },\n context: {},\n columnKey: String,\n align: String,\n headerAlign: String,\n showTooltipWhenOverflow: Boolean,\n showOverflowTooltip: Boolean,\n fixed: [Boolean, String],\n formatter: Function,\n selectable: Function,\n reserveSelection: Boolean,\n filterMethod: Function,\n filteredValue: Array,\n filters: Array,\n filterPlacement: String,\n filterMultiple: {\n type: Boolean,\n default: true\n },\n index: [Number, Function],\n sortOrders: {\n type: Array,\n default: function _default() {\n return ['ascending', 'descending', null];\n },\n validator: function validator(val) {\n return val.every(function (order) {\n return ['ascending', 'descending', null].indexOf(order) > -1;\n });\n }\n }\n },\n\n data: function data() {\n return {\n isSubColumn: false,\n columns: []\n };\n },\n beforeCreate: function beforeCreate() {\n this.row = {};\n this.column = {};\n this.$index = 0;\n },\n\n\n components: {\n ElCheckbox: _checkbox2.default,\n ElTag: _tag2.default\n },\n\n computed: {\n owner: function owner() {\n var parent = this.$parent;\n while (parent && !parent.tableId) {\n parent = parent.$parent;\n }\n return parent;\n },\n columnOrTableParent: function columnOrTableParent() {\n var parent = this.$parent;\n while (parent && !parent.tableId && !parent.columnId) {\n parent = parent.$parent;\n }\n return parent;\n }\n },\n\n created: function created() {\n var _this = this;\n\n this.customRender = this.$options.render;\n this.$options.render = function (h) {\n return h('div', _this.$slots.default);\n };\n\n var parent = this.columnOrTableParent;\n var owner = this.owner;\n this.isSubColumn = owner !== parent;\n this.columnId = (parent.tableId || parent.columnId) + '_column_' + columnIdSeed++;\n\n var type = this.type;\n\n var width = parseWidth(this.width);\n var minWidth = parseMinWidth(this.minWidth);\n\n var isColumnGroup = false;\n\n var column = getDefaultColumn(type, {\n id: this.columnId,\n columnKey: this.columnKey,\n label: this.label,\n className: this.className,\n labelClassName: this.labelClassName,\n property: this.prop || this.property,\n type: type,\n renderCell: null,\n renderHeader: this.renderHeader,\n minWidth: minWidth,\n width: width,\n isColumnGroup: isColumnGroup,\n context: this.context,\n align: this.align ? 'is-' + this.align : null,\n headerAlign: this.headerAlign ? 'is-' + this.headerAlign : this.align ? 'is-' + this.align : null,\n sortable: this.sortable === '' ? true : this.sortable,\n sortMethod: this.sortMethod,\n sortBy: this.sortBy,\n resizable: this.resizable,\n showOverflowTooltip: this.showOverflowTooltip || this.showTooltipWhenOverflow,\n formatter: this.formatter,\n selectable: this.selectable,\n reserveSelection: this.reserveSelection,\n fixed: this.fixed === '' ? true : this.fixed,\n filterMethod: this.filterMethod,\n filters: this.filters,\n filterable: this.filters || this.filterMethod,\n filterMultiple: this.filterMultiple,\n filterOpened: false,\n filteredValue: this.filteredValue || [],\n filterPlacement: this.filterPlacement || '',\n index: this.index,\n sortOrders: this.sortOrders\n });\n\n var source = forced[type] || {};\n Object.keys(source).forEach(function (prop) {\n var value = source[prop];\n if (value !== undefined) {\n if (prop === 'renderHeader') {\n if (type === 'selection' && column[prop]) {\n console.warn('[Element Warn][TableColumn]Selection column doesn\\'t allow to set render-header function.');\n } else {\n value = column[prop] || value;\n }\n }\n column[prop] = prop === 'className' ? column[prop] + ' ' + value : value;\n }\n });\n\n // Deprecation warning for renderHeader property\n if (this.renderHeader) {\n console.warn('[Element Warn][TableColumn]Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header.');\n }\n\n this.columnConfig = column;\n\n var renderCell = column.renderCell;\n var _self = this;\n\n if (type === 'expand') {\n owner.renderExpanded = function (h, data) {\n return _self.$scopedSlots.default ? _self.$scopedSlots.default(data) : _self.$slots.default;\n };\n\n column.renderCell = function (h, data) {\n return h(\n 'div',\n { 'class': 'cell' },\n [renderCell(h, data, this._renderProxy)]\n );\n };\n\n return;\n }\n\n column.renderCell = function (h, data) {\n if (_self.$scopedSlots.default) {\n renderCell = function renderCell() {\n return _self.$scopedSlots.default(data);\n };\n }\n\n if (!renderCell) {\n renderCell = DEFAULT_RENDER_CELL;\n }\n\n return _self.showOverflowTooltip || _self.showTooltipWhenOverflow ? h(\n 'div',\n { 'class': 'cell el-tooltip', style: { width: (data.column.realWidth || data.column.width) - 1 + 'px' } },\n [renderCell(h, data)]\n ) : h(\n 'div',\n { 'class': 'cell' },\n [renderCell(h, data)]\n );\n };\n },\n destroyed: function destroyed() {\n if (!this.$parent) return;\n var parent = this.$parent;\n this.owner.store.commit('removeColumn', this.columnConfig, this.isSubColumn ? parent.columnConfig : null);\n },\n\n\n watch: {\n label: function label(newVal) {\n if (this.columnConfig) {\n this.columnConfig.label = newVal;\n }\n },\n prop: function prop(newVal) {\n if (this.columnConfig) {\n this.columnConfig.property = newVal;\n }\n },\n property: function property(newVal) {\n if (this.columnConfig) {\n this.columnConfig.property = newVal;\n }\n },\n filters: function filters(newVal) {\n if (this.columnConfig) {\n this.columnConfig.filters = newVal;\n }\n },\n filterMultiple: function filterMultiple(newVal) {\n if (this.columnConfig) {\n this.columnConfig.filterMultiple = newVal;\n }\n },\n align: function align(newVal) {\n if (this.columnConfig) {\n this.columnConfig.align = newVal ? 'is-' + newVal : null;\n\n if (!this.headerAlign) {\n this.columnConfig.headerAlign = newVal ? 'is-' + newVal : null;\n }\n }\n },\n headerAlign: function headerAlign(newVal) {\n if (this.columnConfig) {\n this.columnConfig.headerAlign = 'is-' + (newVal ? newVal : this.align);\n }\n },\n width: function width(newVal) {\n if (this.columnConfig) {\n this.columnConfig.width = parseWidth(newVal);\n this.owner.store.scheduleLayout();\n }\n },\n minWidth: function minWidth(newVal) {\n if (this.columnConfig) {\n this.columnConfig.minWidth = parseMinWidth(newVal);\n this.owner.store.scheduleLayout();\n }\n },\n fixed: function fixed(newVal) {\n if (this.columnConfig) {\n this.columnConfig.fixed = newVal;\n this.owner.store.scheduleLayout(true);\n }\n },\n sortable: function sortable(newVal) {\n if (this.columnConfig) {\n this.columnConfig.sortable = newVal;\n }\n },\n index: function index(newVal) {\n if (this.columnConfig) {\n this.columnConfig.index = newVal;\n }\n },\n formatter: function formatter(newVal) {\n if (this.columnConfig) {\n this.columnConfig.formatter = newVal;\n }\n },\n className: function className(newVal) {\n if (this.columnConfig) {\n this.columnConfig.className = newVal;\n }\n },\n labelClassName: function labelClassName(newVal) {\n if (this.columnConfig) {\n this.columnConfig.labelClassName = newVal;\n }\n }\n },\n\n mounted: function mounted() {\n var _this2 = this;\n\n var owner = this.owner;\n var parent = this.columnOrTableParent;\n var columnIndex = void 0;\n\n if (!this.isSubColumn) {\n columnIndex = [].indexOf.call(parent.$refs.hiddenColumns.children, this.$el);\n } else {\n columnIndex = [].indexOf.call(parent.$el.children, this.$el);\n }\n\n if (this.$scopedSlots.header) {\n if (this.type === 'selection') {\n console.warn('[Element Warn][TableColumn]Selection column doesn\\'t allow to set scoped-slot header.');\n } else {\n this.columnConfig.renderHeader = function (h, scope) {\n return _this2.$scopedSlots.header(scope);\n };\n }\n }\n\n owner.store.commit('insertColumn', this.columnConfig, columnIndex, this.isSubColumn ? parent.columnConfig : null);\n }\n};\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 25:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tag\");\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ })\n\n/******/ });","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"header bg-gradient-info py-7 py-lg-8 pt-lg-9\"},[_c('div',{staticClass:\"separator separator-bottom separator-skew zindex-100\"},[_c('svg',{attrs:{\"x\":\"0\",\"y\":\"0\",\"viewBox\":\"0 0 2560 0\",\"preserveAspectRatio\":\"none\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('polygon',{staticClass:\"fill-default\",attrs:{\"points\":\"2560 0 2560 100 0 100\"}})])])]),_c('b-container',{staticClass:\"mt--8 pb-5\"},[_c('b-row',{staticClass:\"justify-content-center\"},[_c('b-col',{attrs:{\"lg\":\"5\",\"md\":\"7\"}},[_c('b-card',{staticClass:\"bg-secondary border-0 mb-0\",attrs:{\"no-body\":\"\"}},[_c('b-card-body',{staticClass:\"px-lg-5 py-lg-5\"},[_c('div',{staticClass:\"text-center text-muted mb-4\"},[_vm._v(\"\\n Bitte geben Sie Ihre Zugangsdaten ein\\n \")]),_c('validation-observer',{ref:\"formValidator\",scopedSlots:_vm._u([{key:\"default\",fn:function({handleSubmit}){return [_c('b-form',{attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)}}},[_c('base-input',{staticClass:\"mb-3\",attrs:{\"alternative\":\"\",\"name\":\"Email\",\"rules\":{required: true, email: true},\"prepend-icon\":\"ni ni-email-83\",\"placeholder\":\"E-Mail Adresse\"},model:{value:(_vm.model.email),callback:function ($$v) {_vm.$set(_vm.model, \"email\", $$v)},expression:\"model.email\"}}),_c('base-input',{staticClass:\"mb-3\",attrs:{\"alternative\":\"\",\"name\":\"Password\",\"rules\":{required: true, min: 6},\"prepend-icon\":\"ni ni-lock-circle-open\",\"type\":\"password\",\"placeholder\":\"Passwort\"},model:{value:(_vm.model.password),callback:function ($$v) {_vm.$set(_vm.model, \"password\", $$v)},expression:\"model.password\"}}),_c('div',{staticClass:\"text-center\"},[_c('base-button',{staticClass:\"my-4\",attrs:{\"type\":\"primary\",\"native-type\":\"submit\"}},[_vm._v(\"Anmelden\")])],1)],1)]}}])})],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=40a63591&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content\"},[_c('base-header',{staticClass:\"pb-6 bg-gradient\",attrs:{\"type\":\"\"}},[_c('b-row',{staticClass:\"py-4\",attrs:{\"align-v\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"7\",\"lg\":\"6\"}},[(!_vm.loading)?_c('h6',{staticClass:\"h2 d-inline-block mb-0\"},[_vm._v(\"\\n Angebot Nr. \"+_vm._s(this.offer.internal_id)+\"\\n \")]):_vm._e(),_c('nav',{staticClass:\"d-none d-md-inline-block ml-md-4\",attrs:{\"aria-label\":\"breadcrumb\"}},[_c('route-bread-crumb')],1)])],1)],1),_c('b-container',{staticClass:\"mt--6\",attrs:{\"fluid\":\"\"}},[(_vm.loading)?_c('div',{staticClass:\"loader\"}):_vm._e(),_c('div',[_c('b-row',{staticClass:\"card-wrapper\"},[(_vm.show_kravag)?_c('b-col',{attrs:{\"lg\":_vm.offerWidth}},[(!_vm.kravag_ready)?_c('div',{staticClass:\"loader\"}):_vm._e(),_c('card',{staticClass:\"card-pricing border-0 text-center mb-4\",attrs:{\"gradient\":\"\",\"header-classes\":\"bg-transparent\",\"footer-classes\":\"bg-transparent\",\"body-classes\":\"px-lg-7\"}},[_c('h4',{staticClass:\"text-uppercase ls-1 py-3 mb-0\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"\\n Kravag\\n \")]),_c('div',{staticClass:\"display-2\"},[_vm._v(_vm._s(_vm._f(\"toCurrency\")(this.offer.pricing.price_brut_complete))+\" €\")]),_c('span',{},[_vm._v(\"Gesamt brutto\")]),_c('ul',{staticClass:\"list-unstyled my-4\"},[_c('li')]),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(this.offer.kravag_state == 'calculated')?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"success\"},on:{\"click\":function($event){return _vm.acceptOffer(_vm.offer.id)}}},[_c('i',{staticClass:\"fas fa-check\"}),_vm._v(\" Jetzt annehmen\")]):_vm._e(),(this.offer.kravag_state == 'calculated')?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.editOffer(_vm.offer.id)}}},[_c('i',{staticClass:\"fas fa-edit\"}),_vm._v(\" Jetzt anpassen\")]):_vm._e(),(this.offer.kravag_state == 'tlp_saved' || this.offer.kravag_state == 'api_saved' || this.offer.kravag_state == 'consent')?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.acceptOffer(_vm.offer.id)}}},[_c('i',{staticClass:\"fas fa-edit\"}),_vm._v(\" Vertragsdaten ergänzen\")]):_vm._e(),_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"warning\"},on:{\"click\":function($event){return _vm.downloadFile(_vm.offer.id, 'offer')}}},[_c('i',{staticClass:\"fas fa-file-pdf\"}),_vm._v(\" Angebot herunterladen\")]),(this.offer.kravag_state == 'tlp_saved' || this.offer.kravag_state == 'api_saved' || this.offer.kravag_state == 'consent' || this.offer.kravag_state == 'submitted')?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"info\"},on:{\"click\":function($event){return _vm.downloadFile(_vm.offer.id, 'contract')}}},[_c('i',{staticClass:\"fas fa-file-pdf\"}),_vm._v(\" Antrag herunterladen\")]):_vm._e(),(this.offer.kravag_state == 'tlp_saved' || this.offer.kravag_state == 'api_saved' || this.offer.kravag_state == 'consent')?_c('base-button',{staticClass:\"mb-3\",attrs:{\"type\":\"info\"},on:{\"click\":function($event){return _vm.acceptContract(_vm.offer.id)}}},[_c('i',{staticClass:\"fas fa-file-pdf\"}),_vm._v(\" Antrag abschließen\")]):_vm._e()],1)])],1):_vm._e()],1),_c('modal',{attrs:{\"show\":_vm.modals.notice,\"showClose\":true,\"modal-classes\":\"modal-default\",\"modal-content-classes\":\"bg-gradient-info\"},on:{\"update:show\":function($event){return _vm.$set(_vm.modals, \"notice\", $event)},\"ok\":_vm.handleOk}},[_c('h6',{staticClass:\"modal-title\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('i',{staticClass:\"fas fa-file\"}),_vm._v(\"\\n Vertrag abschicken & bestätigen\\n \")]),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[((_vm.offer.kravag_payment_mode == 'Lastschrift'))?_c('b-form-checkbox',{staticClass:\"mb-3\",model:{value:(_vm.checkboxes.sepa),callback:function ($$v) {_vm.$set(_vm.checkboxes, \"sepa\", $$v)},expression:\"checkboxes.sepa\"}},[_vm._v(\"\\n Der Versicherungsnehmer stimmt dem Sepa-Verfahren zu und hat das Sepa Mandat unterschrieben\\n \")]):_vm._e(),_c('br'),_c('b-form-checkbox',{staticClass:\"mb-3\",model:{value:(_vm.checkboxes.bedingungen),callback:function ($$v) {_vm.$set(_vm.checkboxes, \"bedingungen\", $$v)},expression:\"checkboxes.bedingungen\"}},[_vm._v(\"\\n Der Versicherungsnehmer hat die Bedingungen zur Kenntnis genommen und stimmt diesen zu\\n \")]),_c('br'),_c('b-form-checkbox',{staticClass:\"mb-3\",model:{value:(_vm.checkboxes.signage),callback:function ($$v) {_vm.$set(_vm.checkboxes, \"signage\", $$v)},expression:\"checkboxes.signage\"}},[_vm._v(\"\\n Der Versicherungsnehmer hat den Versicherungsantrag unterschrieben und hat die darin enthaltenen Daten bestätigt \\n \")])],1)],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"btn-wrapper text-center\"},[((_vm.offer.kravag_payment_mode == 'Lastschrift' && _vm.checkboxes.sepa && _vm.checkboxes.bedingungen && _vm.checkboxes.signage) || (_vm.offer.kravag_payment_mode != 'Lastschrift' && _vm.checkboxes.bedingungen && _vm.checkboxes.signage))?_c('base-button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"primary\"}},[_c('span',{staticClass:\"btn-inner--text\",on:{\"click\":function($event){return _vm.handleAvo()}}},[_vm._v(\"Antrag Abschliessen\")])]):_vm._e()],1)])],2)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Offer.vue?vue&type=template&id=85f2bbc2&\"\nimport script from \"./Offer.vue?vue&type=script&lang=js&\"\nexport * from \"./Offer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports =\n/******/ (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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 151);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 151:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _button = __webpack_require__(152);\n\nvar _button2 = _interopRequireDefault(_button);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_button2.default.install = function (Vue) {\n Vue.component(_button2.default.name, _button2.default);\n};\n\nexports.default = _button2.default;\n\n/***/ }),\n\n/***/ 152:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__ = __webpack_require__(153);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__ = __webpack_require__(154);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default.a,\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 153:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n name: 'ElButton',\n\n inject: {\n elForm: {\n default: ''\n },\n elFormItem: {\n default: ''\n }\n },\n\n props: {\n type: {\n type: String,\n default: 'default'\n },\n size: String,\n icon: {\n type: String,\n default: ''\n },\n nativeType: {\n type: String,\n default: 'button'\n },\n loading: Boolean,\n disabled: Boolean,\n plain: Boolean,\n autofocus: Boolean,\n round: Boolean,\n circle: Boolean\n },\n\n computed: {\n _elFormItemSize: function _elFormItemSize() {\n return (this.elFormItem || {}).elFormItemSize;\n },\n buttonSize: function buttonSize() {\n return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n },\n buttonDisabled: function buttonDisabled() {\n return this.disabled || (this.elForm || {}).disabled;\n }\n },\n\n methods: {\n handleClick: function handleClick(evt) {\n this.$emit('click', evt);\n }\n }\n};\n\n/***/ }),\n\n/***/ 154:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"el-button\",class:[\n _vm.type ? 'el-button--' + _vm.type : '',\n _vm.buttonSize ? 'el-button--' + _vm.buttonSize : '',\n {\n 'is-disabled': _vm.buttonDisabled,\n 'is-loading': _vm.loading,\n 'is-plain': _vm.plain,\n 'is-round': _vm.round,\n 'is-circle': _vm.circle\n }\n ],attrs:{\"disabled\":_vm.buttonDisabled || _vm.loading,\"autofocus\":_vm.autofocus,\"type\":_vm.nativeType},on:{\"click\":_vm.handleClick}},[(_vm.loading)?_c('i',{staticClass:\"el-icon-loading\"}):_vm._e(),(_vm.icon && !_vm.loading)?_c('i',{class:_vm.icon}):_vm._e(),(_vm.$slots.default)?_c('span',[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });","var topLevel = typeof global !== 'undefined' ? global :\n typeof window !== 'undefined' ? window : {}\nvar minDoc = require('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;\n","/**\n * @license\n * Video.js 8.0.4 \n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\n\nimport window$1 from 'global/window';\nimport document from 'global/document';\nimport keycode from 'keycode';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport { Parser } from 'm3u8-parser';\nimport { DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, parseCodecs, muxerSupportsCodec, browserSupportsCodec, translateLegacyCodec, codecsFromDefault, isAudioCodec, getMimeForCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\nimport { isArrayBufferView, concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { generateSidxKey, parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\n\nvar version$6 = \"8.0.4\";\n\n/**\n * An Object that contains lifecycle hooks as keys which point to an array\n * of functions that are run when a lifecycle is triggered\n *\n * @private\n */\nconst hooks_ = {};\n\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecyle to get hooks from\n *\n * @param {Function|Function[]} [fn]\n * Optionally add a hook (or hooks) to the lifecycle that your are getting.\n *\n * @return {Array}\n * an array of hooks, or an empty array if there are none.\n */\nconst hooks = function (type, fn) {\n hooks_[type] = hooks_[type] || [];\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n return hooks_[type];\n};\n\n/**\n * Add a function hook to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\nconst hook = function (type, fn) {\n hooks(type, fn);\n};\n\n/**\n * Remove a hook from a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle that the function hooked to\n *\n * @param {Function} fn\n * The hooked function to remove\n *\n * @return {boolean}\n * The function that was removed or undef\n */\nconst removeHook = function (type, fn) {\n const index = hooks(type).indexOf(fn);\n if (index <= -1) {\n return false;\n }\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\n};\n\n/**\n * Add a function hook that will only run once to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\nconst hookOnce = function (type, fn) {\n hooks(type, [].concat(fn).map(original => {\n const wrapper = (...args) => {\n removeHook(type, wrapper);\n return original(...args);\n };\n return wrapper;\n }));\n};\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n */\n\n/**\n * Store the browser-specific methods for the fullscreen API.\n *\n * @type {Object}\n * @see [Specification]{@link https://fullscreen.spec.whatwg.org}\n * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}\n */\nconst FullscreenApi = {\n prefixed: true\n};\n\n// browser API methods\nconst apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'],\n// WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen'],\n// Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror', '-moz-full-screen'],\n// Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError', '-ms-fullscreen']];\nconst specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i = 0; i < browserApi.length; i++) {\n FullscreenApi[specApi[i]] = browserApi[i];\n }\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\n// This is the private tracking variable for the logging history.\nlet history = [];\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} type\n * The name of the console method to use.\n *\n * @param {Array} args\n * The arguments to be passed to the matching console method.\n */\nconst LogByTypeFactory = (name, log) => (type, level, args) => {\n const lvl = log.levels[level];\n const lvlRegExp = new RegExp(`^(${lvl})$`);\n if (type !== 'log') {\n // Add the type to the front of the message when it's not \"log\".\n args.unshift(type.toUpperCase() + ':');\n }\n\n // Add console prefix after adding to history.\n args.unshift(name + ':');\n\n // Add a clone of the args at this point to history.\n if (history) {\n history.push([].concat(args));\n\n // only store 1000 history entries\n const splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n }\n\n // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n if (!window$1.console) {\n return;\n }\n\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n // when the module is executed.\n let fn = window$1.console[type];\n if (!fn && type === 'debug') {\n // Certain browsers don't have support for console.debug. For those, we\n // should default to the closest comparable log.\n fn = window$1.console.info || window$1.console.log;\n }\n\n // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n};\nfunction createLogger$1(name) {\n // This is the private tracking variable for logging level.\n let level = 'info';\n\n // the curried logByType bound to the specific log and history\n let logByType;\n\n /**\n * Logs plain debug messages. Similar to `console.log`.\n *\n * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)\n * of our JSDoc template, we cannot properly document this as both a function\n * and a namespace, so its function signature is documented here.\n *\n * #### Arguments\n * ##### *args\n * Mixed[]\n *\n * Any combination of values that could be passed to `console.log()`.\n *\n * #### Return Value\n *\n * `undefined`\n *\n * @namespace\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged.\n */\n const log = function (...args) {\n logByType('log', level, args);\n };\n\n // This is the logByType helper that the logging methods below use\n logByType = LogByTypeFactory(name, log);\n\n /**\n * Create a new sublogger which chains the old name to the new name.\n *\n * For example, doing `videojs.log.createLogger('player')` and then using that logger will log the following:\n * ```js\n * mylogger('foo');\n * // > VIDEOJS: player: foo\n * ```\n *\n * @param {string} name\n * The name to add call the new logger\n * @return {Object}\n */\n log.createLogger = subname => createLogger$1(name + ': ' + subname);\n\n /**\n * Enumeration of available logging levels, where the keys are the level names\n * and the values are `|`-separated strings containing logging methods allowed\n * in that logging level. These strings are used to create a regular expression\n * matching the function name being called.\n *\n * Levels provided by Video.js are:\n *\n * - `off`: Matches no calls. Any value that can be cast to `false` will have\n * this effect. The most restrictive.\n * - `all`: Matches only Video.js-provided functions (`debug`, `log`,\n * `log.warn`, and `log.error`).\n * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.\n * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.\n * - `warn`: Matches `log.warn` and `log.error` calls.\n * - `error`: Matches only `log.error` calls.\n *\n * @type {Object}\n */\n log.levels = {\n all: 'debug|log|warn|error',\n off: '',\n debug: 'debug|log|warn|error',\n info: 'log|warn|error',\n warn: 'warn|error',\n error: 'error',\n DEFAULT: level\n };\n\n /**\n * Get or set the current logging level.\n *\n * If a string matching a key from {@link module:log.levels} is provided, acts\n * as a setter.\n *\n * @param {string} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n log.level = lvl => {\n if (typeof lvl === 'string') {\n if (!log.levels.hasOwnProperty(lvl)) {\n throw new Error(`\"${lvl}\" in not a valid log level`);\n }\n level = lvl;\n }\n return level;\n };\n\n /**\n * Returns an array containing everything that has been logged to the history.\n *\n * This array is a shallow clone of the internal history record. However, its\n * contents are _not_ cloned; so, mutating objects inside this array will\n * mutate them in history.\n *\n * @return {Array}\n */\n log.history = () => history ? [].concat(history) : [];\n\n /**\n * Allows you to filter the history by the given logger name\n *\n * @param {string} fname\n * The name to filter by\n *\n * @return {Array}\n * The filtered list to return\n */\n log.history.filter = fname => {\n return (history || []).filter(historyItem => {\n // if the first item in each historyItem includes `fname`, then it's a match\n return new RegExp(`.*${fname}.*`).test(historyItem[0]);\n });\n };\n\n /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n log.history.clear = () => {\n if (history) {\n history.length = 0;\n }\n };\n\n /**\n * Disable history tracking if it is currently enabled.\n */\n log.history.disable = () => {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n\n /**\n * Enable history tracking if it is currently disabled.\n */\n log.history.enable = () => {\n if (history === null) {\n history = [];\n }\n };\n\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as an error\n */\n log.error = (...args) => logByType('error', level, args);\n\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as a warning.\n */\n log.warn = (...args) => logByType('warn', level, args);\n\n /**\n * Logs debug messages. Similar to `console.debug`, but may also act as a comparable\n * log if `console.debug` is not available\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as debug.\n */\n log.debug = (...args) => logByType('debug', level, args);\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nconst log$1 = createLogger$1('VIDEOJS');\nconst createLogger = log$1.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {Mixed}\n * The new accumulated value.\n */\nconst toString = Object.prototype.toString;\n\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\nconst keys = function (object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\nfunction each(object, fn) {\n keys(object).forEach(key => fn(object[key], key));\n}\n\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\nfunction reduce(object, fn, initial = 0) {\n return keys(object).reduce((accum, key) => fn(accum, object[key], key), initial);\n}\n\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * Merge two objects recursively.\n *\n * Performs a deep merge like\n * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges\n * plain objects (not arrays, elements, or anything else).\n *\n * Non-plain object values will be copied directly from the right-most\n * argument.\n *\n * @param {Object[]} sources\n * One or more objects to merge into a new object.\n *\n * @return {Object}\n * A new object that is the merged result of all sources.\n */\nfunction merge$1(...sources) {\n const result = {};\n sources.forEach(source => {\n if (!source) {\n return;\n }\n each(source, (value, key) => {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n result[key] = merge$1(result[key], value);\n });\n });\n return result;\n}\n\n/**\n * Object.defineProperty but \"lazy\", which means that the value is only set after\n * it is retrieved the first time, rather than being set right away.\n *\n * @param {Object} obj the object to set the property on\n * @param {string} key the key for the property to set\n * @param {Function} getValue the function used to get the value when it is needed.\n * @param {boolean} setter whether a setter should be allowed or not\n */\nfunction defineLazyProperty(obj, key, getValue, setter = true) {\n const set = value => Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n writable: true\n });\n const options = {\n configurable: true,\n enumerable: true,\n get() {\n const value = getValue();\n set(value);\n return value;\n }\n };\n if (setter) {\n options.set = set;\n }\n return Object.defineProperty(obj, key, options);\n}\n\nvar Obj = /*#__PURE__*/Object.freeze({\n __proto__: null,\n each: each,\n reduce: reduce,\n isObject: isObject,\n isPlain: isPlain,\n merge: merge$1,\n defineLazyProperty: defineLazyProperty\n});\n\n/**\n * @file browser.js\n * @module browser\n */\n\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_IPOD = false;\n\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @type {string|null}\n */\nlet IOS_VERSION = null;\n\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_ANDROID = false;\n\n/**\n * The detected Android version - or `null` if not Android or indeterminable.\n *\n * @static\n * @type {number|string|null}\n */\nlet ANDROID_VERSION;\n\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_FIREFOX = false;\n\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_EDGE = false;\n\n/**\n * Whether or not this is any Chromium Browser\n *\n * @static\n * @type {Boolean}\n */\nlet IS_CHROMIUM = false;\n\n/**\n * Whether or not this is any Chromium browser that is not Edge.\n *\n * This will also be `true` for Chrome on iOS, which will have different support\n * as it is actually Safari under the hood.\n *\n * Depreacted, as the behaviour to not match Edge was to prevent Legacy Edge's UA matching.\n * IS_CHROMIUM should be used instead.\n * \"Chromium but not Edge\" could be explicitly tested with IS_CHROMIUM && !IS_EDGE\n *\n * @static\n * @deprecated\n * @type {Boolean}\n */\nlet IS_CHROME = false;\n\n/**\n * The detected Chromium version - or `null`.\n *\n * @static\n * @type {number|null}\n */\nlet CHROMIUM_VERSION = null;\n\n/**\n * The detected Google Chrome version - or `null`.\n * This has always been the _Chromium_ version, i.e. would return on Chromium Edge.\n * Depreacted, use CHROMIUM_VERSION instead.\n *\n * @static\n * @deprecated\n * @type {number|null}\n */\nlet CHROME_VERSION = null;\n\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @deprecated\n * @type {number|null}\n */\nlet IE_VERSION = null;\n\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_SAFARI = false;\n\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_WINDOWS = false;\n\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_IPAD = false;\n\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @type {Boolean}\n */\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\nlet IS_IPHONE = false;\n\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\nconst UAD = window$1.navigator && window$1.navigator.userAgentData;\nif (UAD) {\n // If userAgentData is present, use it instead of userAgent to avoid warnings\n // Currently only implemented on Chromium\n // userAgentData does not expose Android version, so ANDROID_VERSION remains `null`\n\n IS_ANDROID = UAD.platform === 'Android';\n IS_EDGE = Boolean(UAD.brands.find(b => b.brand === 'Microsoft Edge'));\n IS_CHROMIUM = Boolean(UAD.brands.find(b => b.brand === 'Chromium'));\n IS_CHROME = !IS_EDGE && IS_CHROMIUM;\n CHROMIUM_VERSION = CHROME_VERSION = (UAD.brands.find(b => b.brand === 'Chromium') || {}).version || null;\n IS_WINDOWS = UAD.platform === 'Windows';\n}\n\n// If the broser is not Chromium, either userAgentData is not present which could be an old Chromium browser,\n// or it's a browser that has added userAgentData since that we don't have tests for yet. In either case,\n// the checks need to be made agiainst the regular userAgent string.\nif (!IS_CHROMIUM) {\n const USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\n IS_IPOD = /iPod/i.test(USER_AGENT);\n IOS_VERSION = function () {\n const match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) {\n return match[1];\n }\n return null;\n }();\n IS_ANDROID = /Android/i.test(USER_AGENT);\n ANDROID_VERSION = function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n const match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n if (!match) {\n return null;\n }\n const major = match[1] && parseFloat(match[1]);\n const minor = match[2] && parseFloat(match[2]);\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n return null;\n }();\n IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n IS_EDGE = /Edg/i.test(USER_AGENT);\n IS_CHROMIUM = /Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT);\n IS_CHROME = !IS_EDGE && IS_CHROMIUM;\n CHROMIUM_VERSION = CHROME_VERSION = function () {\n const match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n return null;\n }();\n IE_VERSION = function () {\n const result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n let version = result && parseFloat(result[1]);\n if (!version && /Trident\\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {\n // IE 11 has a different user agent string than other IE versions\n version = 11.0;\n }\n return version;\n }();\n IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;\n IS_WINDOWS = /Windows/i.test(USER_AGENT);\n IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n}\n\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get IS_IPOD () { return IS_IPOD; },\n get IOS_VERSION () { return IOS_VERSION; },\n get IS_ANDROID () { return IS_ANDROID; },\n get ANDROID_VERSION () { return ANDROID_VERSION; },\n get IS_FIREFOX () { return IS_FIREFOX; },\n get IS_EDGE () { return IS_EDGE; },\n get IS_CHROMIUM () { return IS_CHROMIUM; },\n get IS_CHROME () { return IS_CHROME; },\n get CHROMIUM_VERSION () { return CHROMIUM_VERSION; },\n get CHROME_VERSION () { return CHROME_VERSION; },\n get IE_VERSION () { return IE_VERSION; },\n get IS_SAFARI () { return IS_SAFARI; },\n get IS_WINDOWS () { return IS_WINDOWS; },\n get IS_IPAD () { return IS_IPAD; },\n get IS_IPHONE () { return IS_IPHONE; },\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n\n/**\n * @file dom.js\n * @module dom\n */\n\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @private\n * @param {string} str\n * The string to check\n *\n * @return {boolean}\n * Will be `true` if the string is non-blank, `false` otherwise.\n *\n */\nfunction isNonBlankString(str) {\n // we use str.trim as it will trim any whitespace characters\n // from the front or back of non-whitespace characters. aka\n // Any string that contains non-whitespace characters will\n // still contain them after `trim` but whitespace only strings\n // will have a length of 0, failing this check.\n return typeof str === 'string' && Boolean(str.trim());\n}\n\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @private\n * @param {string} str\n * The string to check for whitespace.\n *\n * @throws {Error}\n * Throws an error if there is whitespace in the string.\n */\nfunction throwIfWhitespace(str) {\n // str.indexOf instead of regex because str.indexOf is faster performance wise.\n if (str.indexOf(' ') >= 0) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n\n/**\n * Whether the current DOM interface appears to be real (i.e. not simulated).\n *\n * @return {boolean}\n * Will be `true` if the DOM appears to be real, `false` otherwise.\n */\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document === window$1.document;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {Mixed} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\n\n/**\n * Determines if the current DOM is embedded in an iframe.\n *\n * @return {boolean}\n * Will be `true` if the DOM is embedded in an iframe, `false`\n * otherwise.\n */\nfunction isInFrame() {\n // We need a try/catch here because Safari will throw errors when attempting\n // to get either `parent` or `self`\n try {\n return window$1.parent !== window$1.self;\n } catch (x) {\n return true;\n }\n}\n\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @private\n * @param {string} method\n * The method to create the query with.\n *\n * @return {Function}\n * The query method\n */\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document[method](null);\n }\n if (isNonBlankString(context)) {\n context = document.querySelector(context);\n }\n const ctx = isEl(context) ? context : document;\n return ctx[method] && ctx[method](selector);\n };\n}\n\n/**\n * Creates an element and applies properties, attributes, and inserts content.\n *\n * @param {string} [tagName='div']\n * Name of tag to be created.\n *\n * @param {Object} [properties={}]\n * Element properties to be applied.\n *\n * @param {Object} [attributes={}]\n * Element attributes to be applied.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\nfunction createEl(tagName = 'div', properties = {}, attributes = {}, content) {\n const el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n const val = properties[propName];\n\n // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n if (propName === 'textContent') {\n textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n if (content) {\n appendContent(el, content);\n }\n return el;\n}\n\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} el\n * The element to add text content into\n *\n * @param {string} text\n * The text content to add.\n *\n * @return {Element}\n * The element with added text content.\n */\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child\n * Element to insert\n *\n * @param {Element} parent\n * Element to insert child into\n */\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Check if an element has a class name.\n *\n * @param {Element} element\n * Element to check\n *\n * @param {string} classToCheck\n * Class name to check for\n *\n * @return {boolean}\n * Will be `true` if the element has a class, `false` otherwise.\n *\n * @throws {Error}\n * Throws an error if `classToCheck` has white space.\n */\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n return element.classList.contains(classToCheck);\n}\n\n/**\n * Add a class name to an element.\n *\n * @param {Element} element\n * Element to add class name to.\n *\n * @param {...string} classesToAdd\n * One or more class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\nfunction addClass(element, ...classesToAdd) {\n element.classList.add(...classesToAdd.reduce((prev, current) => prev.concat(current.split(/\\s+/)), []));\n return element;\n}\n\n/**\n * Remove a class name from an element.\n *\n * @param {Element} element\n * Element to remove a class name from.\n *\n * @param {...string} classesToRemove\n * One or more class name to remove.\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\nfunction removeClass(element, ...classesToRemove) {\n // Protect in case the player gets disposed\n if (!element) {\n log$1.warn(\"removeClass was called with an element that doesn't exist\");\n return null;\n }\n element.classList.remove(...classesToRemove.reduce((prev, current) => prev.concat(current.split(/\\s+/)), []));\n return element;\n}\n\n/**\n * The callback definition for toggleClass.\n *\n * @callback module:dom~PredicateCallback\n * @param {Element} element\n * The DOM element of the Component.\n *\n * @param {string} classToToggle\n * The `className` that wants to be toggled\n *\n * @return {boolean|undefined}\n * If `true` is returned, the `classToToggle` will be added to the\n * `element`. If `false`, the `classToToggle` will be removed from\n * the `element`. If `undefined`, the callback will be ignored.\n */\n\n/**\n * Adds or removes a class name to/from an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @param {Element} element\n * The element to toggle a class name on.\n *\n * @param {string} classToToggle\n * The class that should be toggled.\n *\n * @param {boolean|module:dom~PredicateCallback} [predicate]\n * See the return value for {@link module:dom~PredicateCallback}\n *\n * @return {Element}\n * The element with a class that has been toggled.\n */\nfunction toggleClass(element, classToToggle, predicate) {\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n if (typeof predicate !== 'boolean') {\n predicate = undefined;\n }\n classToToggle.split(/\\s+/).forEach(className => element.classList.toggle(className, predicate));\n return element;\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el\n * Element to add attributes to.\n *\n * @param {Object} [attributes]\n * Attributes to be applied.\n */\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n const attrValue = attributes[attrName];\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag.\n *\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute.\n *\n * @param {Element} tag\n * Element from which to get tag attributes.\n *\n * @return {Object}\n * All attributes of the element. Boolean attributes will be `true` or\n * `false`, others will be strings.\n */\nfunction getAttributes(tag) {\n const obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but not all browsers\n // and not all tags know about these attributes, so, we still want to check them manually\n const knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';\n if (tag && tag.attributes && tag.attributes.length > 0) {\n const attrs = tag.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n const attrName = attrs[i].name;\n let attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n obj[attrName] = attrVal;\n }\n }\n return obj;\n}\n\n/**\n * Get the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to get the value of.\n *\n * @return {string}\n * The value of the attribute.\n */\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\n\n/**\n * Set the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n */\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\n\n/**\n * Remove an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to remove.\n */\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n\n/**\n * Attempt to block the ability to select text.\n */\nfunction blockTextSelection() {\n document.body.focus();\n document.onselectstart = function () {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking.\n */\nfunction unblockTextSelection() {\n document.onselectstart = function () {\n return true;\n };\n}\n\n/**\n * Identical to the native `getBoundingClientRect` function, but ensures that\n * the method is supported at all (it is in all browsers we claim to support)\n * and that the element is in the DOM before continuing.\n *\n * This wrapper function also shims properties which are not provided by some\n * older browsers (namely, IE8).\n *\n * Additionally, some browsers do not support adding properties to a\n * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard\n * properties (except `x` and `y` which are not widely supported). This helps\n * avoid implementations where keys are non-enumerable.\n *\n * @param {Element} el\n * Element whose `ClientRect` we want to calculate.\n *\n * @return {Object|undefined}\n * Always returns a plain object - or `undefined` if it cannot.\n */\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n const rect = el.getBoundingClientRect();\n const result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(k => {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n return result;\n }\n}\n\n/**\n * Represents the position of a DOM element on the page.\n *\n * @typedef {Object} module:dom~Position\n *\n * @property {number} left\n * Pixels to the left.\n *\n * @property {number} top\n * Pixels from the top.\n */\n\n/**\n * Get the position of an element in the DOM.\n *\n * Uses `getBoundingClientRect` technique from John Resig.\n *\n * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el\n * Element from which to get offset.\n *\n * @return {module:dom~Position}\n * The position of the element that was passed in.\n */\nfunction findPosition(el) {\n if (!el || el && !el.offsetParent) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n }\n const width = el.offsetWidth;\n const height = el.offsetHeight;\n let left = 0;\n let top = 0;\n while (el.offsetParent && el !== document[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n return {\n left,\n top,\n width,\n height\n };\n}\n\n/**\n * Represents x and y coordinates for a DOM element or mouse pointer.\n *\n * @typedef {Object} module:dom~Coordinates\n *\n * @property {number} x\n * x coordinate in pixels\n *\n * @property {number} y\n * y coordinate in pixels\n */\n\n/**\n * Get the pointer position within an element.\n *\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el\n * Element on which to get the pointer position on.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\nfunction getPointerPosition(el, event) {\n const translated = {\n x: 0,\n y: 0\n };\n if (IS_IOS) {\n let item = el;\n while (item && item.nodeName.toLowerCase() !== 'html') {\n const transform = computedStyle(item, 'transform');\n if (/^matrix/.test(transform)) {\n const values = transform.slice(7, -1).split(/,\\s/).map(Number);\n translated.x += values[4];\n translated.y += values[5];\n } else if (/^matrix3d/.test(transform)) {\n const values = transform.slice(9, -1).split(/,\\s/).map(Number);\n translated.x += values[12];\n translated.y += values[13];\n }\n item = item.parentNode;\n }\n }\n const position = {};\n const boxTarget = findPosition(event.target);\n const box = findPosition(el);\n const boxW = box.width;\n const boxH = box.height;\n let offsetY = event.offsetY - (box.top - boxTarget.top);\n let offsetX = event.offsetX - (box.left - boxTarget.left);\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\n }\n }\n position.y = 1 - Math.max(0, Math.min(1, offsetY / boxH));\n position.x = Math.max(0, Math.min(1, offsetX / boxW));\n return position;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} value\n * Check if this value is a text node.\n *\n * @return {boolean}\n * Will be `true` if the value is a text node, `false` otherwise.\n */\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\n\n/**\n * Empties the contents of an element.\n *\n * @param {Element} el\n * The element to empty children from\n *\n * @return {Element}\n * The element with no children\n */\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n return el;\n}\n\n/**\n * This is a mixed value that describes content to be injected into the DOM\n * via some method. It can be of the following types:\n *\n * Type | Description\n * -----------|-------------\n * `string` | The value will be normalized into a text node.\n * `Element` | The value will be accepted as-is.\n * `TextNode` | The value will be accepted as-is.\n * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).\n * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.\n *\n * @typedef {string|Element|TextNode|Array|Function} module:dom~ContentDescriptor\n */\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but helps protect\n * from falling into the trap of simply writing to `innerHTML`, which could\n * be an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Array}\n * All of the content that was passed in, normalized to an array of\n * elements or text nodes.\n */\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n }\n\n // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n return (Array.isArray(content) ? content : [content]).map(value => {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(value => value);\n}\n\n/**\n * Normalizes and appends content to an element.\n *\n * @param {Element} el\n * Element to append normalized content to.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(node => el.appendChild(node));\n return el;\n}\n\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @param {Element} el\n * Element to insert normalized content into.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n\n/**\n * Check if an event was a single left click.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\nfunction isSingleLeftClick(event) {\n // Note: if you create something draggable, be sure to\n // call it on both `mousedown` and `mousemove` event,\n // otherwise `mousedown` should be enough for a button\n\n if (event.button === undefined && event.buttons === undefined) {\n // Why do we need `buttons` ?\n // Because, middle mouse sometimes have this:\n // e.button === 0 and e.buttons === 4\n // Furthermore, we want to prevent combination click, something like\n // HOLD middlemouse then left click, that would be\n // e.button === 0, e.buttons === 5\n // just `button` is not gonna work\n\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n\n return true;\n }\n if (event.button === 0 && event.buttons === undefined) {\n // Touch screen, sometimes on some specific device, `buttons`\n // doesn't have anything (safari on ios, blackberry...)\n\n return true;\n }\n\n // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n if (event.button !== 0 || event.buttons !== 1) {\n // This is the reason we have those if else block above\n // if any special case we can catch and let it slide\n // we do it above, when get to here, this definitely\n // is-not-left-click\n\n return false;\n }\n return true;\n}\n\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n * The element that was found or null.\n */\nconst $ = createQuerier('querySelector');\n\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n * A element list of elements that were found. Will be empty if none\n * were found.\n *\n */\nconst $$ = createQuerier('querySelectorAll');\n\n/**\n * A safe getComputedStyle.\n *\n * This is needed because in Firefox, if the player is loaded in an iframe with\n * `display:none`, then `getComputedStyle` returns `null`, so, we do a\n * null-check to make sure that the player doesn't break in these cases.\n *\n * @param {Element} el\n * The element you want the computed style of\n *\n * @param {string} prop\n * The property name you want\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n if (typeof window$1.getComputedStyle === 'function') {\n let computedStyleValue;\n try {\n computedStyleValue = window$1.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n return '';\n}\n\nvar Dom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isReal: isReal,\n isEl: isEl,\n isInFrame: isInFrame,\n createEl: createEl,\n textContent: textContent,\n prependTo: prependTo,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n toggleClass: toggleClass,\n setAttributes: setAttributes,\n getAttributes: getAttributes,\n getAttribute: getAttribute,\n setAttribute: setAttribute,\n removeAttribute: removeAttribute,\n blockTextSelection: blockTextSelection,\n unblockTextSelection: unblockTextSelection,\n getBoundingClientRect: getBoundingClientRect,\n findPosition: findPosition,\n getPointerPosition: getPointerPosition,\n isTextNode: isTextNode,\n emptyEl: emptyEl,\n normalizeContent: normalizeContent,\n appendContent: appendContent,\n insertContent: insertContent,\n isSingleLeftClick: isSingleLeftClick,\n $: $,\n $$: $$,\n computedStyle: computedStyle\n});\n\n/**\n * @file setup.js - Functions for setting up a player without\n * user interaction based on the data-setup `attribute` of the video tag.\n *\n * @module setup\n */\nlet _windowLoaded = false;\nlet videojs$1;\n\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\nconst autoSetup = function () {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n const vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n const audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n const divs = Array.prototype.slice.call(document.getElementsByTagName('video-js'));\n const mediaEls = vids.concat(audios, divs);\n\n // Check if any media elements exist\n if (mediaEls && mediaEls.length > 0) {\n for (let i = 0, e = mediaEls.length; i < e; i++) {\n const mediaEl = mediaEls[i];\n\n // Check if element exists, has getAttribute func.\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n const options = mediaEl.getAttribute('data-setup');\n\n // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n }\n\n // If getAttribute isn't defined, we need to wait for the DOM.\n } else {\n autoSetupTimeout(1);\n break;\n }\n }\n\n // No videos were found, so keep looping unless page is finished loading.\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n\n/**\n * Wait until the page is loaded before running autoSetup. This will be called in\n * autoSetup if `hasLoaded` returns false.\n *\n * @param {number} wait\n * How long to wait in ms\n *\n * @param {module:videojs} [vjs]\n * The videojs library function\n */\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n if (vjs) {\n videojs$1 = vjs;\n }\n window$1.setTimeout(autoSetup, wait);\n}\n\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\nif (isReal()) {\n if (document.readyState === 'complete') {\n setWindowLoaded();\n } else {\n /**\n * Listen for the load event on window, and set _windowLoaded to true.\n *\n * We use a standard event listener here to avoid incrementing the GUID\n * before any players are created.\n *\n * @listens load\n */\n window$1.addEventListener('load', setWindowLoaded);\n }\n}\n\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n\n/**\n * Create a DOM syle element given a className for it.\n *\n * @param {string} className\n * The className to add to the created style element.\n *\n * @return {Element}\n * The element that was created.\n */\nconst createStyleElement = function (className) {\n const style = document.createElement('style');\n style.className = className;\n return style;\n};\n\n/**\n * Add text to a DOM element.\n *\n * @param {Element} el\n * The Element to add text content to.\n *\n * @param {string} content\n * The text to add to the element.\n */\nconst setTextContent = function (el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file dom-data.js\n * @module dom-data\n */\n\n/**\n * Element Data Store.\n *\n * Allows for binding data to an element without putting it directly on the\n * element. Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nvar DomData = new WeakMap();\n\n/**\n * @file guid.js\n * @module guid\n */\n\n// Default value for GUIDs. This allows us to reset the GUID counter in tests.\n//\n// The initial GUID is 3 because some users have come to rely on the first\n// default player ID ending up as `vjs_video_3`.\n//\n// See: https://github.com/videojs/video.js/pull/6216\nconst _initialGuid = 3;\n\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\nlet _guid = _initialGuid;\n\n/**\n * Get a unique auto-incrementing ID by number that has not been returned before.\n *\n * @return {number}\n * A new unique ID.\n */\nfunction newGUID() {\n return _guid++;\n}\n\n/**\n * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n *\n * @file events.js\n * @module events\n */\n\n/**\n * Clean up the listener cache and dispatchers\n *\n * @param {Element|Object} elem\n * Element to clean up\n *\n * @param {string} type\n * Type of event to clean up\n */\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n const data = DomData.get(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData.delete(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn\n * The event method we want to use.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} callback\n * Event listener.\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n // Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event\n * Event object to fix.\n *\n * @return {Object}\n * Fixed event object.\n */\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n const old = event || window$1.event;\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (const key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n // Lighthouse complains if Event.path is copied\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY' && key !== 'path') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX !== null && event.clientX !== undefined) {\n const doc = document.documentElement;\n const body = document.body;\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n /* eslint-disable */\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n /* eslint-enable */\n }\n }\n\n event.fixed_ = true;\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Whether passive event listeners are supported\n */\nlet _supportsPassive;\nconst supportsPassive = function () {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {\n // disregard\n }\n }\n return _supportsPassive;\n};\n\n/**\n * Touch events Chrome expects to be passive\n */\nconst passiveEvents = ['touchstart', 'touchmove'];\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string|string[]} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} fn\n * Event listener.\n */\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n const data = DomData.get(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) {\n data.handlers = {};\n }\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n data.handlers[type].push(fn);\n if (!data.dispatcher) {\n data.disabled = false;\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n event = fixEvent(event);\n const handlers = data.handlers[event.type];\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n const handlersCopy = handlers.slice(0);\n for (let m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n try {\n handlersCopy[m].call(elem, event, hash);\n } catch (e) {\n log$1.error(e);\n }\n }\n }\n }\n };\n }\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n let options = false;\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\n }\n elem.addEventListener(type, data.dispatcher, options);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem\n * Object to remove listeners from.\n *\n * @param {string|string[]} [type]\n * Type of listener to remove. Don't include to remove all events from element.\n *\n * @param {EventTarget~EventListener} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!DomData.has(elem)) {\n return;\n }\n const data = DomData.get(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) {\n return;\n }\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n const removeType = function (el, t) {\n data.handlers[t] = [];\n _cleanUpEvents(el, t);\n };\n\n // Are we removing all bound events?\n if (type === undefined) {\n for (const t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n return;\n }\n const handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) {\n return;\n }\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(elem, type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem\n * Element to trigger an event on\n *\n * @param {EventTarget~Event|string} event\n * A string (the type) or an event object with a type attribute\n *\n * @param {Object} [hash]\n * data hash to pass along with the event\n *\n * @return {boolean|undefined}\n * Returns the opposite of `defaultPrevented` if default was\n * prevented. Otherwise, returns `undefined`\n */\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n const elemData = DomData.has(elem) ? DomData.get(elem) : {};\n const parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n }\n\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented && event.target && event.target[event.type]) {\n if (!DomData.has(event.target)) {\n DomData.set(event.target, {});\n }\n const targetData = DomData.get(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event.\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n const func = function () {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\n\n/**\n * Trigger a listener only once and then turn if off for all\n * configured events\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\nfunction any(elem, type, fn) {\n const func = function () {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || newGUID();\n\n // multiple ons, but one off for everything\n on(elem, type, func);\n}\n\nvar Events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixEvent: fixEvent,\n on: on,\n off: off,\n trigger: trigger,\n one: one,\n any: any\n});\n\n/**\n * @file fn.js\n * @module fn\n */\nconst UPDATE_REFRESH_INTERVAL = 30;\n\n/**\n * A private, internal-only function for changing the context of a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @private\n * @function\n * @param {Mixed} context\n * The object to bind as scope.\n *\n * @param {Function} fn\n * The function to be bound to a scope.\n *\n * @param {number} [uid]\n * An optional unique ID for the function to be set\n *\n * @return {Function}\n * The new function that will be bound into the context given\n */\nconst bind_ = function (context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n // Create the new function that changes the context\n const bound = fn.bind(context);\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\n\n/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\nconst throttle = function (fn, wait) {\n let last = window$1.performance.now();\n const throttled = function (...args) {\n const now = window$1.performance.now();\n if (now - last >= wait) {\n fn(...args);\n last = now;\n }\n };\n return throttled;\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [immediate]\n * Whether or not to invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function.\n */\nconst debounce = function (func, wait, immediate, context = window$1) {\n let timeout;\n const cancel = () => {\n context.clearTimeout(timeout);\n timeout = null;\n };\n\n /* eslint-disable consistent-this */\n const debounced = function () {\n const self = this;\n const args = arguments;\n let later = function () {\n timeout = null;\n later = null;\n if (!immediate) {\n func.apply(self, args);\n }\n };\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n context.clearTimeout(timeout);\n timeout = context.setTimeout(later, wait);\n };\n /* eslint-enable consistent-this */\n\n debounced.cancel = cancel;\n return debounced;\n};\n\nvar Fn = /*#__PURE__*/Object.freeze({\n __proto__: null,\n UPDATE_REFRESH_INTERVAL: UPDATE_REFRESH_INTERVAL,\n bind_: bind_,\n throttle: throttle,\n debounce: debounce\n});\n\n/**\n * @file src/js/event-target.js\n */\nlet EVENT_MAP;\n\n/**\n * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It\n * adds shorthand functions that wrap around lengthy functions. For example:\n * the `on` function is a wrapper around `addEventListener`.\n *\n * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}\n * @class EventTarget\n */\nclass EventTarget$2 {\n /**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to call with `EventTarget`s\n */\n on(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n on(this, type, fn);\n this.addEventListener = ael;\n }\n /**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to remove.\n */\n off(type, fn) {\n off(this, type, fn);\n }\n /**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to be called once for each event name.\n */\n one(type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n one(this, type, fn);\n this.addEventListener = ael;\n }\n any(type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n any(this, type, fn);\n this.addEventListener = ael;\n }\n /**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|EventTarget~Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n */\n trigger(event) {\n const type = event.type || event;\n\n // deprecation\n // In a future version we should default target to `this`\n // similar to how we default the target to `elem` in\n // `Events.trigger`. Right now the default `target` will be\n // `document` due to the `Event.fixEvent` call.\n if (typeof event === 'string') {\n event = {\n type\n };\n }\n event = fixEvent(event);\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n trigger(this, event);\n }\n queueTrigger(event) {\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n const type = event.type || event;\n let map = EVENT_MAP.get(this);\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n const oldTimeout = map.get(type);\n map.delete(type);\n window$1.clearTimeout(oldTimeout);\n const timeout = window$1.setTimeout(() => {\n map.delete(type);\n // if we cleared out all timeouts for the current target, delete its map\n if (map.size === 0) {\n map = null;\n EVENT_MAP.delete(this);\n }\n this.trigger(event);\n }, 0);\n map.set(type, timeout);\n }\n}\n\n/**\n * A Custom DOM event.\n *\n * @typedef {EventTarget} Event\n * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}\n */\n\n/**\n * All event listeners should follow the following format.\n *\n * @callback EventTarget~EventListener\n * @this {EventTarget}\n *\n * @param {EventTarget~Event} event\n * the event that triggered this function\n *\n * @param {Object} [hash]\n * hash of data sent during the event\n */\n\n/**\n * An object containing event names as keys and booleans as values.\n *\n * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}\n * will have extra functionality. See that function for more information.\n *\n * @property EventTarget.prototype.allowedEvents_\n * @private\n */\nEventTarget$2.prototype.allowedEvents_ = {};\n\n/**\n * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#on}\n */\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\n\n/**\n * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#off}\n */\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\n\n/**\n * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#trigger}\n */\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\nconst objName = obj => {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n if (obj.name_) {\n return obj.name_;\n }\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n return typeof obj;\n};\n\n/**\n * Returns whether or not an object has had the evented mixin applied.\n *\n * @param {Object} object\n * An object to test.\n *\n * @return {boolean}\n * Whether or not the object appears to be evented.\n */\nconst isEvented = object => object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(k => typeof object[k] === 'function');\n\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} object\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\nconst addEventedCallback = (target, callback) => {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n target.eventedCallbacks.push(callback);\n }\n};\n\n/**\n * Whether a value is a valid event type - non-empty string or array.\n *\n * @private\n * @param {string|Array} type\n * The type value to test.\n *\n * @return {boolean}\n * Whether or not the type is a valid event type.\n */\nconst isValidEventType = type =>\n// The regex here verifies that the `type` contains at least one non-\n// whitespace character.\ntypeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length;\n\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the target does not appear to be a valid event target.\n *\n * @param {Object} target\n * The object to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\nconst validateTarget = (target, obj, fnName) => {\n if (!target || !target.nodeName && !isEvented(target)) {\n throw new Error(`Invalid target for ${objName(obj)}#${fnName}; must be a DOM node or evented object.`);\n }\n};\n\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the type does not appear to be a valid event type.\n *\n * @param {string|Array} type\n * The type to test.\n *\n * @param {Object} obj\n* The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\nconst validateEventType = (type, obj, fnName) => {\n if (!isValidEventType(type)) {\n throw new Error(`Invalid event type for ${objName(obj)}#${fnName}; must be a non-empty string or array.`);\n }\n};\n\n/**\n * Validates a value to determine if it is a valid listener. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the listener is not a function.\n *\n * @param {Function} listener\n * The listener to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\nconst validateListener = (listener, obj, fnName) => {\n if (typeof listener !== 'function') {\n throw new Error(`Invalid listener for ${objName(obj)}#${fnName}; must be a function.`);\n }\n};\n\n/**\n * Takes an array of arguments given to `on()` or `one()`, validates them, and\n * normalizes them into an object.\n *\n * @private\n * @param {Object} self\n * The evented object on which `on()` or `one()` was called. This\n * object will be bound as the `this` value for the listener.\n *\n * @param {Array} args\n * An array of arguments passed to `on()` or `one()`.\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n *\n * @return {Object}\n * An object containing useful values for `on()` or `one()` calls.\n */\nconst normalizeListenArgs = (self, args, fnName) => {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n const isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n let target;\n let type;\n let listener;\n if (isTargetingSelf) {\n target = self.eventBusEl_;\n\n // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n if (args.length >= 3) {\n args.shift();\n }\n [type, listener] = args;\n } else {\n [target, type, listener] = args;\n }\n validateTarget(target, self, fnName);\n validateEventType(type, self, fnName);\n validateListener(listener, self, fnName);\n listener = bind_(self, listener);\n return {\n isTargetingSelf,\n target,\n type,\n listener\n };\n};\n\n/**\n * Adds the listener to the event type(s) on the target, normalizing for\n * the type of target.\n *\n * @private\n * @param {Element|Object} target\n * A DOM node or evented object.\n *\n * @param {string} method\n * The event binding method to use (\"on\" or \"one\").\n *\n * @param {string|Array} type\n * One or more event type(s).\n *\n * @param {Function} listener\n * A listener function.\n */\nconst listen = (target, method, type, listener) => {\n validateTarget(target, target, method);\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\n};\n\n/**\n * Contains methods that provide event capabilities to an object which is passed\n * to {@link module:evented|evented}.\n *\n * @mixin EventedMixin\n */\nconst EventedMixin = {\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n on(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'on');\n listen(target, 'on', type, listener);\n\n // If this object is listening to another evented object.\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n const removeListenerOnDispose = () => this.off(target, type, listener);\n\n // Use the same function ID as the listener so we can remove it later it\n // using the ID of the original listener.\n removeListenerOnDispose.guid = listener.guid;\n\n // Add a listener to the target's dispose event as well. This ensures\n // that if the target is disposed BEFORE this object, we remove the\n // removal listener that was just added. Otherwise, we create a memory leak.\n const removeRemoverOnTargetDispose = () => this.off('dispose', removeListenerOnDispose);\n\n // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\n },\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will be called once per event and then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n one(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'one');\n\n // Targeting this evented object.\n if (isTargetingSelf) {\n listen(target, 'one', type, listener);\n\n // Targeting another evented object.\n } else {\n // TODO: This wrapper is incorrect! It should only\n // remove the wrapper for the event type that called it.\n // Instead all listners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n const wrapper = (...largs) => {\n this.off(target, type, wrapper);\n listener.apply(null, largs);\n };\n\n // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\n },\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will only be called once for the first event that is triggered\n * then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n any(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'any');\n\n // Targeting this evented object.\n if (isTargetingSelf) {\n listen(target, 'any', type, listener);\n\n // Targeting another evented object.\n } else {\n const wrapper = (...largs) => {\n this.off(target, type, wrapper);\n listener.apply(null, largs);\n };\n\n // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\n },\n /**\n * Removes listener(s) from event(s) on an evented object.\n *\n * @param {string|Array|Element|Object} [targetOrType]\n * If this is a string or array, it represents the event type(s).\n *\n * Another evented object can be passed here instead, in which case\n * ALL 3 arguments are _required_.\n *\n * @param {string|Array|Function} [typeOrListener]\n * If the first argument was a string or array, this may be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function; otherwise, _all_ listeners bound to the\n * event type(s) will be removed.\n */\n off(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener);\n\n // Targeting another evented object.\n } else {\n const target = targetOrType;\n const type = typeOrListener;\n\n // Fail fast and in a meaningful way!\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off');\n\n // Ensure there's at least a guid, even if the function hasn't been used\n listener = bind_(this, listener);\n\n // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n this.off('dispose', listener);\n if (target.nodeName) {\n off(target, type, listener);\n off(target, 'dispose', listener);\n } else if (isEvented(target)) {\n target.off(type, listener);\n target.off('dispose', listener);\n }\n }\n },\n /**\n * Fire an event on this evented object, causing its listeners to be called.\n *\n * @param {string|Object} event\n * An event type or an object with a type property.\n *\n * @param {Object} [hash]\n * An additional object to pass along to listeners.\n *\n * @return {boolean}\n * Whether or not the default behavior was prevented.\n */\n trigger(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n const type = event && typeof event !== 'string' ? event.type : event;\n if (!isValidEventType(type)) {\n throw new Error(`Invalid event type for ${objName(this)}#trigger; ` + 'must be a non-empty string or object with a type key that has a non-empty value.');\n }\n return trigger(this.eventBusEl_, event, hash);\n }\n};\n\n/**\n * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.\n *\n * @param {Object} target\n * The object to which to add event methods.\n *\n * @param {Object} [options={}]\n * Options for customizing the mixin behavior.\n *\n * @param {string} [options.eventBusKey]\n * By default, adds a `eventBusEl_` DOM element to the target object,\n * which is used as an event bus. If the target object already has a\n * DOM element that should be used, pass its key here.\n *\n * @return {Object}\n * The target object.\n */\nfunction evented(target, options = {}) {\n const {\n eventBusKey\n } = options;\n\n // Set or create the eventBusEl_.\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(`The eventBusKey \"${eventBusKey}\" does not refer to an element.`);\n }\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n Object.assign(target, EventedMixin);\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(callback => {\n callback();\n });\n }\n\n // When any evented object is disposed, it removes all its listeners.\n target.on('dispose', () => {\n target.off();\n [target, target.el_, target.eventBusEl_].forEach(function (val) {\n if (val && DomData.has(val)) {\n DomData.delete(val);\n }\n });\n window$1.setTimeout(() => {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\nconst StatefulMixin = {\n /**\n * A hash containing arbitrary keys and values representing the state of\n * the object.\n *\n * @type {Object}\n */\n state: {},\n /**\n * Set the state of an object by mutating its\n * {@link module:stateful~StatefulMixin.state|state} object in place.\n *\n * @fires module:stateful~StatefulMixin#statechanged\n * @param {Object|Function} stateUpdates\n * A new set of properties to shallow-merge into the plugin state.\n * Can be a plain object or a function returning a plain object.\n *\n * @return {Object|undefined}\n * An object containing changes that occurred. If no changes\n * occurred, returns `undefined`.\n */\n setState(stateUpdates) {\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n let changes;\n each(stateUpdates, (value, key) => {\n // Record the change if the value is different from what's in the\n // current state.\n if (this.state[key] !== value) {\n changes = changes || {};\n changes[key] = {\n from: this.state[key],\n to: value\n };\n }\n this.state[key] = value;\n });\n\n // Only trigger \"statechange\" if there were changes AND we have a trigger\n // function. This allows us to not require that the target object be an\n // evented object.\n if (changes && isEvented(this)) {\n /**\n * An event triggered on an object that is both\n * {@link module:stateful|stateful} and {@link module:evented|evented}\n * indicating that its state has changed.\n *\n * @event module:stateful~StatefulMixin#statechanged\n * @type {Object}\n * @property {Object} changes\n * A hash containing the properties that were changed and\n * the values they were changed `from` and `to`.\n */\n this.trigger({\n changes,\n type: 'statechanged'\n });\n }\n return changes;\n }\n};\n\n/**\n * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target\n * object.\n *\n * If the target object is {@link module:evented|evented} and has a\n * `handleStateChanged` method, that method will be automatically bound to the\n * `statechanged` event on itself.\n *\n * @param {Object} target\n * The object to be made stateful.\n *\n * @param {Object} [defaultState]\n * A default set of properties to populate the newly-stateful object's\n * `state` property.\n *\n * @return {Object}\n * Returns the `target`.\n */\nfunction stateful(target, defaultState) {\n Object.assign(target, StatefulMixin);\n\n // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n target.state = Object.assign({}, target.state, defaultState);\n\n // Auto-bind the `handleStateChanged` method of the target object if it exists.\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n return target;\n}\n\n/**\n * @file str.js\n * @module to-lower-case\n */\n\n/**\n * Lowercase the first letter of a string.\n *\n * @param {string} string\n * String to be lowercased\n *\n * @return {string}\n * The string with a lowercased first letter\n */\nconst toLowerCase = function (string) {\n if (typeof string !== 'string') {\n return string;\n }\n return string.replace(/./, w => w.toLowerCase());\n};\n\n/**\n * Uppercase the first letter of a string.\n *\n * @param {string} string\n * String to be uppercased\n *\n * @return {string}\n * The string with an uppercased first letter\n */\nconst toTitleCase$1 = function (string) {\n if (typeof string !== 'string') {\n return string;\n }\n return string.replace(/./, w => w.toUpperCase());\n};\n\n/**\n * Compares the TitleCase versions of the two strings for equality.\n *\n * @param {string} str1\n * The first string to compare\n *\n * @param {string} str2\n * The second string to compare\n *\n * @return {boolean}\n * Whether the TitleCase versions of the strings are equal\n */\nconst titleCaseEquals = function (str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\nvar Str = /*#__PURE__*/Object.freeze({\n __proto__: null,\n toLowerCase: toLowerCase,\n toTitleCase: toTitleCase$1,\n titleCaseEquals: titleCaseEquals\n});\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n\n/**\n * Base class for all UI Components.\n * Components are UI objects which represent both a javascript object and an element\n * in the DOM. They can be children of other components, and can have\n * children themselves.\n *\n * Components can also use methods from {@link EventTarget}\n */\nclass Component$1 {\n /**\n * A callback that is called when a component is ready. Does not have any\n * parameters and any callback value will be ignored.\n *\n * @callback Component~ReadyCallback\n * @this Component\n */\n\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of component options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to intialize this component with. Children objects have\n * a name property that will be used if more than one component of the same type needs to be\n * added.\n *\n * @param {string} [options.className]\n * A class or space separated list of classes to add the component\n *\n * @param {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n constructor(player, options, ready) {\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n this.isDisposed_ = false;\n\n // Hold the reference to the parent component via `addChild` method\n this.parentComponent_ = null;\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = merge$1({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = merge$1(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || options.el && options.el.id;\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n const id = player && player.id && player.id() || 'no_player';\n this.id_ = `${id}_component_${newGUID()}`;\n }\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n if (options.className && this.el_) {\n options.className.split(' ').forEach(c => this.addClass(c));\n }\n\n // if evented is anything except false, we want to mixin in evented\n if (options.evented !== false) {\n // Make this an evented object and use `el_`, if available, as its event bus\n evented(this, {\n eventBusKey: this.el_ ? 'el_' : null\n });\n this.handleLanguagechange = this.handleLanguagechange.bind(this);\n this.on(this.player_, 'languagechange', this.handleLanguagechange);\n }\n stateful(this, this.constructor.defaultState);\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n this.setTimeoutIds_ = new Set();\n this.setIntervalIds_ = new Set();\n this.rafIds_ = new Set();\n this.namedRafs_ = new Map();\n this.clearingTimersOnDispose_ = false;\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n // Don't want to trigger ready here or it will go before init is actually\n // finished for all children that run this constructor\n this.ready(ready);\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n *\n * @param {Object} options\n * @param {Element} options.originalEl element with which to replace player element\n */\n dispose(options = {}) {\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {EventTarget~Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true;\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n if (options.restoreEl) {\n this.el_.parentNode.replaceChild(options.restoreEl, this.el_);\n } else {\n this.el_.parentNode.removeChild(this.el_);\n }\n }\n this.el_ = null;\n }\n\n // remove reference to the player after disposing of the element\n this.player_ = null;\n }\n\n /**\n * Determine whether or not this component has been disposed.\n *\n * @return {boolean}\n * If the component has been disposed, will be `true`. Otherwise, `false`.\n */\n isDisposed() {\n return Boolean(this.isDisposed_);\n }\n\n /**\n * Return the {@link Player} that the `Component` has attached to.\n *\n * @return {Player}\n * The player that this `Component` has attached to.\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects with new options.\n * > Note: When both `obj` and `options` contain properties whose values are objects.\n * The two properties get merged using {@link module:obj.merge}\n *\n * @param {Object} obj\n * The object that contains new options.\n *\n * @return {Object}\n * A new object of `this.options_` and `obj` merged together.\n */\n options(obj) {\n if (!obj) {\n return this.options_;\n }\n this.options_ = merge$1(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the `Component`s DOM element.\n *\n * @param {string} [tagName]\n * Element's DOM node type. e.g. 'div'\n *\n * @param {Object} [properties]\n * An object of properties that should be set.\n *\n * @param {Object} [attributes]\n * An object of attributes that should be set.\n *\n * @return {Element}\n * The element that gets created.\n */\n createEl(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\n\n /**\n * Localize a string given the string in english.\n *\n * If tokens are provided, it'll try and run a simple token replacement on the provided string.\n * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.\n *\n * If a `defaultValue` is provided, it'll use that over `string`,\n * if a value isn't found in provided language files.\n * This is useful if you want to have a descriptive key for token replacement\n * but have a succinct localized string and not require `en.json` to be included.\n *\n * Currently, it is used for the progress bar timing.\n * ```js\n * {\n * \"progress bar timing: currentTime={1} duration={2}\": \"{1} of {2}\"\n * }\n * ```\n * It is then used like so:\n * ```js\n * this.localize('progress bar timing: currentTime={1} duration{2}',\n * [this.player_.currentTime(), this.player_.duration()],\n * '{1} of {2}');\n * ```\n *\n * Which outputs something like: `01:23 of 24:56`.\n *\n *\n * @param {string} string\n * The string to localize and the key to lookup in the language files.\n * @param {string[]} [tokens]\n * If the current item has token replacements, provide the tokens here.\n * @param {string} [defaultValue]\n * Defaults to `string`. Can be a default value to use for token replacement\n * if the lookup key is needed to be separate.\n *\n * @return {string}\n * The localized string or if no localization exists the english string.\n */\n localize(string, tokens, defaultValue = string) {\n const code = this.player_.language && this.player_.language();\n const languages = this.player_.languages && this.player_.languages();\n const language = languages && languages[code];\n const primaryCode = code && code.split('-')[0];\n const primaryLang = languages && languages[primaryCode];\n let localizedString = defaultValue;\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n const value = tokens[index - 1];\n let ret = value;\n if (typeof value === 'undefined') {\n ret = match;\n }\n return ret;\n });\n }\n return localizedString;\n }\n\n /**\n * Handles language change for the player in components. Should be overriden by sub-components.\n *\n * @abstract\n */\n handleLanguagechange() {}\n\n /**\n * Return the `Component`s DOM element. This is where children get inserted.\n * This will usually be the the same as the element returned in {@link Component#el}.\n *\n * @return {Element}\n * The content element for this `Component`.\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the `Component`s name. The name gets used to reference the `Component`\n * and is set during registration.\n *\n * @return {string}\n * The name of this `Component`.\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns the child `Component` with the given `id`.\n *\n * @param {string} id\n * The id of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `id` or undefined.\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns the child `Component` with the given `name`.\n *\n * @param {string} name\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `name` or undefined.\n */\n getChild(name) {\n if (!name) {\n return;\n }\n return this.childNameIndex_[name];\n }\n\n /**\n * Returns the descendant `Component` following the givent\n * descendant `names`. For instance ['foo', 'bar', 'baz'] would\n * try to get 'foo' on the current component, 'bar' on the 'foo'\n * component and 'baz' on the 'bar' component and return undefined\n * if any of those don't exist.\n *\n * @param {...string[]|...string} names\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The descendant `Component` following the given descendant\n * `names` or undefined.\n */\n getDescendant(...names) {\n // flatten array argument into the main array\n names = names.reduce((acc, n) => acc.concat(n), []);\n let currentChild = this;\n for (let i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n return currentChild;\n }\n\n /**\n * Add a child `Component` inside the current `Component`.\n *\n *\n * @param {string|Component} child\n * The name or instance of a child to add.\n *\n * @param {Object} [options={}]\n * The key/value store of options that will get passed to children of\n * the child.\n *\n * @param {number} [index=this.children_.length]\n * The index to attempt to add a child into.\n *\n * @return {Component}\n * The `Component` that gets added as a child. When using a string the\n * `Component` will get created by this process.\n */\n addChild(child, options = {}, index = this.children_.length) {\n let component;\n let componentName;\n\n // If child is a string, create component with options\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n const componentClassName = options.componentClass || componentName;\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n const ComponentClass = Component$1.getComponent(componentClassName);\n if (!ComponentClass) {\n throw new Error(`Component ${componentClassName} does not exist`);\n }\n\n // data stored directly on the videojs object may be\n // misidentified as a component to retain\n // backwards-compatibility with 4.x. check to make sure the\n // component class can be instantiated.\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || component.name && toTitleCase$1(component.name());\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n let refNode = null;\n if (this.children_[index + 1]) {\n // Most children are components, but the video tech is an HTML element\n if (this.children_[index + 1].el_) {\n refNode = this.children_[index + 1].el_;\n } else if (isEl(this.children_[index + 1])) {\n refNode = this.children_[index + 1];\n }\n }\n this.contentEl().insertBefore(component.el(), refNode);\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child `Component` from this `Component`s list of children. Also removes\n * the child `Component`s element from this `Component`s element.\n *\n * @param {Component} component\n * The child `Component` to remove.\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n if (!component || !this.children_) {\n return;\n }\n let childFound = false;\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n if (!childFound) {\n return;\n }\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase$1(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n const compEl = component.el();\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n initChildren() {\n const children = this.options_.children;\n if (children) {\n // `this` is `parent`\n const parentOptions = this.options_;\n const handleAdd = child => {\n const name = child.name;\n let opts = child.opts;\n\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options\n // to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n const newChild = this.addChild(name, opts);\n if (newChild) {\n this[name] = newChild;\n }\n };\n\n // Allow for an array of children details to passed in the options\n let workingChildren;\n const Tech = Component$1.getComponent('Tech');\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n workingChildren\n // children that are in this.options_ but also in workingChildren would\n // give us extra children we do not want. So, we want to filter them out.\n .concat(Object.keys(this.options_).filter(function (child) {\n return !workingChildren.some(function (wchild) {\n if (typeof wchild === 'string') {\n return child === wchild;\n }\n return child === wchild.name;\n });\n })).map(child => {\n let name;\n let opts;\n if (typeof child === 'string') {\n name = child;\n opts = children[name] || this.options_[name] || {};\n } else {\n name = child.name;\n opts = child;\n }\n return {\n name,\n opts\n };\n }).filter(child => {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registerd as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n const c = Component$1.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n\n /**\n * Builds the default DOM class name. Should be overriden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Component~ReadyCallback} fn\n * Function that gets called when the `Component` is ready.\n *\n * @return {Component}\n * Returns itself; method can be chained.\n */\n ready(fn, sync = false) {\n if (!fn) {\n return;\n }\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n }\n\n /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggered asynchronously\n this.setTimeout(function () {\n const readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {EventTarget~Event}\n */\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Find a single DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {Element|null}\n * the dom element that was found, or null\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n $(selector, context) {\n return $(selector, context || this.contentEl());\n }\n\n /**\n * Finds all DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {NodeList}\n * a list of dom elements that were found\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n $$(selector, context) {\n return $$(selector, context || this.contentEl());\n }\n\n /**\n * Check if a component's element has a CSS class name.\n *\n * @param {string} classToCheck\n * CSS class name to check.\n *\n * @return {boolean}\n * - True if the `Component` has the class.\n * - False if the `Component` does not have the class`\n */\n hasClass(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {...string} classesToAdd\n * One or more CSS class name to add.\n */\n addClass(...classesToAdd) {\n addClass(this.el_, ...classesToAdd);\n }\n\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {...string} classesToRemove\n * One or more CSS class name to remove.\n */\n removeClass(...classesToRemove) {\n removeClass(this.el_, ...classesToRemove);\n }\n\n /**\n * Add or remove a CSS class name from the component's element.\n * - `classToToggle` gets added when {@link Component#hasClass} would return false.\n * - `classToToggle` gets removed when {@link Component#hasClass} would return true.\n *\n * @param {string} classToToggle\n * The class to add or remove based on (@link Component#hasClass}\n *\n * @param {boolean|Dom~predicate} [predicate]\n * An {@link Dom~predicate} function or a boolean\n */\n toggleClass(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n show() {\n this.removeClass('vjs-hidden');\n }\n\n /**\n * Hide the `Component`s element if it is currently showing by adding the\n * 'vjs-hidden` class name to it.\n */\n hide() {\n this.addClass('vjs-hidden');\n }\n\n /**\n * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'\n * class name to it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n }\n\n /**\n * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'\n * class name from it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\n\n /**\n * Get the value of an attribute on the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to get the value from.\n *\n * @return {string|null}\n * - The value of the attribute that was asked for.\n * - Can be an empty string on some browsers if the attribute does not exist\n * or has no value\n * - Most browsers will return null if the attibute does not exist or has\n * no value.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}\n */\n getAttribute(attribute) {\n return getAttribute(this.el_, attribute);\n }\n\n /**\n * Set the value of an attribute on the `Component`'s element\n *\n * @param {string} attribute\n * Name of the attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}\n */\n setAttribute(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\n\n /**\n * Remove an attribute from the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to remove.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}\n */\n removeAttribute(attribute) {\n removeAttribute(this.el_, attribute);\n }\n\n /**\n * Get or set the width of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The width that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The height that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both the width and height of the `Component` element at the same time.\n *\n * @param {number|string} width\n * Width to set the `Component`s element to.\n *\n * @param {number|string} height\n * Height to set the `Component`s element to.\n */\n dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\n\n /**\n * Get or set width or height of the `Component` element. This is the shared code\n * for the {@link Component#width} and {@link Component#height}.\n *\n * Things to know:\n * - If the width or height in an number this will return the number postfixed with 'px'.\n * - If the width/height is a percent this will return the percent postfixed with '%'\n * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function\n * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.\n * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}\n * for more information\n * - If you want the computed style of the component, use {@link Component#currentWidth}\n * and {@link {Component#currentHeight}\n *\n * @fires Component#componentresize\n *\n * @param {string} widthOrHeight\n 8 'width' or 'height'\n *\n * @param {number|string} [num]\n 8 New dimension\n *\n * @param {boolean} [skipListeners]\n * Skip componentresize event trigger\n *\n * @return {number}\n * The dimension when getting or 0 if unset\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {EventTarget~Event}\n */\n this.trigger('componentresize');\n }\n return;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n const val = this.el_.style[widthOrHeight];\n const pxIndex = val.indexOf('px');\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\n }\n\n /**\n * Get the computed width or the height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @param {string} widthOrHeight\n * A string containing 'width' or 'height'. Whichever one you want to get.\n *\n * @return {number}\n * The dimension that gets asked for or 0 if nothing was set\n * for that dimension.\n */\n currentDimension(widthOrHeight) {\n let computedWidthOrHeight = 0;\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight);\n\n // remove 'px' from variable and parse as integer\n computedWidthOrHeight = parseFloat(computedWidthOrHeight);\n\n // if the computed value is still 0, it's possible that the browser is lying\n // and we want to check the offset values.\n // This code also runs wherever getComputedStyle doesn't exist.\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n const rule = `offset${toTitleCase$1(widthOrHeight)}`;\n computedWidthOrHeight = this.el_[rule];\n }\n return computedWidthOrHeight;\n }\n\n /**\n * An object that contains width and height values of the `Component`s\n * computed style. Uses `window.getComputedStyle`.\n *\n * @typedef {Object} Component~DimensionObject\n *\n * @property {number} width\n * The width of the `Component`s computed style.\n *\n * @property {number} height\n * The height of the `Component`s computed style.\n */\n\n /**\n * Get an object that contains computed width and height values of the\n * component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {Component~DimensionObject}\n * The computed dimensions of the component's element.\n */\n currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\n }\n\n /**\n * Get the computed width of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed width of the component's element.\n */\n currentWidth() {\n return this.currentDimension('width');\n }\n\n /**\n * Get the computed height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed height of the component's element.\n */\n currentHeight() {\n return this.currentDimension('height');\n }\n\n /**\n * Set the focus to this component\n */\n focus() {\n this.el_.focus();\n }\n\n /**\n * Remove the focus from this component\n */\n blur() {\n this.el_.blur();\n }\n\n /**\n * When this Component receives a `keydown` event which it does not process,\n * it passes the event to the Player for handling.\n *\n * @param {EventTarget~Event} event\n * The `keydown` event that caused this function to be called.\n */\n handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser. Exclude Tab for focus trapping.\n if (!keycode.isEventKey(event, 'Tab')) {\n event.stopPropagation();\n }\n this.player_.handleKeyDown(event);\n }\n }\n\n /**\n * Many components used to have a `handleKeyPress` method, which was poorly\n * named because it listened to a `keydown` event. This method name now\n * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`\n * will not see their method calls stop working.\n *\n * @param {EventTarget~Event} event\n * The event that caused this function to be called.\n */\n handleKeyPress(event) {\n this.handleKeyDown(event);\n }\n\n /**\n * Emit a 'tap' events when touch event support gets detected. This gets used to\n * support toggling the controls through a tap on the video. They get enabled\n * because every sub-component would have extra overhead otherwise.\n *\n * @private\n * @fires Component#tap\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchleave\n * @listens Component#touchcancel\n * @listens Component#touchend\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15,\n // so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n let couldBeTap;\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy pageX/pageY from the object\n firstTouch = {\n pageX: event.touches[0].pageX,\n pageY: event.touches[0].pageY\n };\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = window$1.performance.now();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n const noTap = function () {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function (event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = window$1.performance.now() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n /**\n * Triggered when a `Component` is tapped.\n *\n * @event Component#tap\n * @type {EventTarget~Event}\n */\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * This function reports user activity whenever touch events happen. This can get\n * turned off by any sub-components that wants touch events to act another way.\n *\n * Report user touch activity when touch events occur. User activity gets used to\n * determine when controls should show/hide. It is simple when it comes to mouse\n * events, because any mouse event should show the controls. So we capture mouse\n * events that bubble up to the player and report activity when that happens.\n * With touch events it isn't as easy as `touchstart` and `touchend` toggle player\n * controls. So touch events can't help us at the player level either.\n *\n * User activity gets checked asynchronously. So what could happen is a tap event\n * on the video turns the controls off. Then the `touchend` event bubbles up to\n * the player. Which, if it reported user activity, would turn the controls right\n * back on. We also don't want to completely block touch events from bubbling up.\n * Furthermore a `touchmove` event and anything other than a tap, should not turn\n * controls back on.\n *\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchend\n * @listens Component#touchcancel\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = bind_(this.player(), this.player().reportUserActivity);\n let touchHolding;\n this.on('touchstart', function () {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n const touchEnd = function (event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * A callback that has no parameters and is bound into `Component`s context.\n *\n * @callback Component~GenericCallback\n * @this Component\n */\n\n /**\n * Creates a function that runs after an `x` millisecond timeout. This function is a\n * wrapper around `window.setTimeout`. There are a few reasons to use this one\n * instead though:\n * 1. It gets cleared via {@link Component#clearTimeout} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will gets turned into a {@link Component~GenericCallback}\n *\n * > Note: You can't use `window.clearTimeout` on the id returned by this function. This\n * will cause its dispose listener not to get cleaned up! Please use\n * {@link Component#clearTimeout} or {@link Component#dispose} instead.\n *\n * @param {Component~GenericCallback} fn\n * The function that will be run after `timeout`.\n *\n * @param {number} timeout\n * Timeout in milliseconds to delay before executing the specified function.\n *\n * @return {number}\n * Returns a timeout ID that gets used to identify the timeout. It can also\n * get used in {@link Component#clearTimeout} to clear the timeout that\n * was set.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}\n */\n setTimeout(fn, timeout) {\n // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n var timeoutId;\n fn = bind_(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(() => {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_.delete(timeoutId);\n }\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\n\n /**\n * Clears a timeout that gets created via `window.setTimeout` or\n * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}\n * use this function instead of `window.clearTimout`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} timeoutId\n * The id of the timeout to clear. The return value of\n * {@link Component#setTimeout} or `window.setTimeout`.\n *\n * @return {number}\n * Returns the timeout id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}\n */\n clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_.delete(timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n return timeoutId;\n }\n\n /**\n * Creates a function that gets run every `x` milliseconds. This function is a wrapper\n * around `window.setInterval`. There are a few reasons to use this one instead though.\n * 1. It gets cleared via {@link Component#clearInterval} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will be a {@link Component~GenericCallback}\n *\n * @param {Component~GenericCallback} fn\n * The function to run every `x` seconds.\n *\n * @param {number} interval\n * Execute the specified function every `x` milliseconds.\n *\n * @return {number}\n * Returns an id that can be used to identify the interval. It can also be be used in\n * {@link Component#clearInterval} to clear the interval.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}\n */\n setInterval(fn, interval) {\n fn = bind_(this, fn);\n this.clearTimersOnDispose_();\n const intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an inteval via {@link Component#setInterval}\n * use this function instead of `window.clearInterval`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} intervalId\n * The id of the interval to clear. The return value of\n * {@link Component#setInterval} or `window.setInterval`.\n *\n * @return {number}\n * Returns the interval id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}\n */\n clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_.delete(intervalId);\n window$1.clearInterval(intervalId);\n }\n return intervalId;\n }\n\n /**\n * Queues up a callback to be passed to requestAnimationFrame (rAF), but\n * with a few extra bonuses:\n *\n * - Supports browsers that do not support rAF by falling back to\n * {@link Component#setTimeout}.\n *\n * - The callback is turned into a {@link Component~GenericCallback} (i.e.\n * bound to the component).\n *\n * - Automatic cancellation of the rAF callback is handled if the component\n * is disposed before it is called.\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n *\n * @return {number}\n * Returns an rAF ID that gets used to identify the timeout. It can\n * also be used in {@link Component#cancelAnimationFrame} to cancel\n * the animation frame callback.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}\n */\n requestAnimationFrame(fn) {\n this.clearTimersOnDispose_();\n\n // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n var id;\n fn = bind_(this, fn);\n id = window$1.requestAnimationFrame(() => {\n if (this.rafIds_.has(id)) {\n this.rafIds_.delete(id);\n }\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\n\n /**\n * Request an animation frame, but only one named animation\n * frame will be queued. Another will never be added until\n * the previous one finishes.\n *\n * @param {string} name\n * The name to give this requestAnimationFrame\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n */\n requestNamedAnimationFrame(name, fn) {\n if (this.namedRafs_.has(name)) {\n return;\n }\n this.clearTimersOnDispose_();\n fn = bind_(this, fn);\n const id = this.requestAnimationFrame(() => {\n fn();\n if (this.namedRafs_.has(name)) {\n this.namedRafs_.delete(name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\n\n /**\n * Cancels a current named animation frame if it exists.\n *\n * @param {string} name\n * The name of the requestAnimationFrame to cancel.\n */\n cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_.delete(name);\n }\n\n /**\n * Cancels a queued callback passed to {@link Component#requestAnimationFrame}\n * (rAF).\n *\n * If you queue an rAF callback via {@link Component#requestAnimationFrame},\n * use this function instead of `window.cancelAnimationFrame`. If you don't,\n * your dispose listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} id\n * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.\n *\n * @return {number}\n * Returns the rAF ID that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}\n */\n cancelAnimationFrame(id) {\n if (this.rafIds_.has(id)) {\n this.rafIds_.delete(id);\n window$1.cancelAnimationFrame(id);\n }\n return id;\n }\n\n /**\n * A function to setup `requestAnimationFrame`, `setTimeout`,\n * and `setInterval`, clearing on dispose.\n *\n * > Previously each timer added and removed dispose listeners on it's own.\n * For better performance it was decided to batch them all, and use `Set`s\n * to track outstanding timer ids.\n *\n * @private\n */\n clearTimersOnDispose_() {\n if (this.clearingTimersOnDispose_) {\n return;\n }\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', () => {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(([idName, cancelName]) => {\n // for a `Set` key will actually be the value again\n // so forEach((val, val) =>` but for maps we want to use\n // the key.\n this[idName].forEach((val, key) => this[cancelName](key));\n });\n this.clearingTimersOnDispose_ = false;\n });\n }\n\n /**\n * Register a `Component` with `videojs` given the name and the component.\n *\n * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s\n * should be registered using {@link Tech.registerTech} or\n * {@link videojs:videojs.registerTech}.\n *\n * > NOTE: This function can also be seen on videojs as\n * {@link videojs:videojs.registerComponent}.\n *\n * @param {string} name\n * The name of the `Component` to register.\n *\n * @param {Component} ComponentToRegister\n * The `Component` class to register.\n *\n * @return {Component}\n * The `Component` that was registered.\n */\n static registerComponent(name, ComponentToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(`Illegal component name, \"${name}\"; must be a non-empty string.`);\n }\n const Tech = Component$1.getComponent('Tech');\n\n // We need to make sure this check is only done if Tech has been registered.\n const isTech = Tech && Tech.isTech(ComponentToRegister);\n const isComp = Component$1 === ComponentToRegister || Component$1.prototype.isPrototypeOf(ComponentToRegister.prototype);\n if (isTech || !isComp) {\n let reason;\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n throw new Error(`Illegal component, \"${name}\"; ${reason}.`);\n }\n name = toTitleCase$1(name);\n if (!Component$1.components_) {\n Component$1.components_ = {};\n }\n const Player = Component$1.getComponent('Player');\n if (name === 'Player' && Player && Player.players) {\n const players = Player.players;\n const playerNames = Object.keys(players);\n\n // If we have players that were disposed, then their name will still be\n // in Players.players. So, we must loop through and verify that the value\n // for each item is not null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n if (players && playerNames.length > 0 && playerNames.map(pname => players[pname]).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n Component$1.components_[name] = ComponentToRegister;\n Component$1.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\n\n /**\n * Get a `Component` based on the name it was registered with.\n *\n * @param {string} name\n * The Name of the component to get.\n *\n * @return {Component}\n * The `Component` that got registered under the given name.\n */\n static getComponent(name) {\n if (!name || !Component$1.components_) {\n return;\n }\n return Component$1.components_[name];\n }\n}\nComponent$1.registerComponent('Component', Component$1);\n\n/**\n * @file time.js\n * @module time\n */\n\n/**\n * Returns the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @typedef {Function} TimeRangeIndex\n *\n * @param {number} [index=0]\n * The range number to return the time for.\n *\n * @return {number}\n * The time offset at the specified index.\n *\n * @deprecated The index argument must be provided.\n * In the future, leaving it out will throw an error.\n */\n\n/**\n * An object that contains ranges of time.\n *\n * @typedef {Object} TimeRange\n *\n * @property {number} length\n * The number of time ranges represented by this object.\n *\n * @property {module:time~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time~TimeRangeIndex} end\n * Returns the time offset at which a specified time range ends.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges\n */\n\n/**\n * Check if any of the time ranges are over the maximum index.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {number} index\n * The index to check\n *\n * @param {number} maxIndex\n * The maximum possible index\n *\n * @throws {Error} if the timeRanges provided are over the maxIndex\n */\nfunction rangeCheck(fnName, index, maxIndex) {\n if (typeof index !== 'number' || index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is non-numeric or out of bounds (0-${maxIndex}).`);\n }\n}\n\n/**\n * Get the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {string} valueIndex\n * The property that should be used to get the time. should be\n * 'start' or 'end'\n *\n * @param {Array} ranges\n * An array of time ranges\n *\n * @param {Array} [rangeIndex=0]\n * The index to start the search at\n *\n * @return {number}\n * The time that offset at the specified index.\n *\n * @deprecated rangeIndex must be set to a value, in the future this will throw an error.\n * @throws {Error} if rangeIndex is more than the length of ranges\n */\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\n/**\n * Create a time range object given ranges of time.\n *\n * @private\n * @param {Array} [ranges]\n * An array of time ranges.\n */\nfunction createTimeRangesObj(ranges) {\n let timeRangesObj;\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start() {\n throw new Error('This TimeRanges object is empty');\n },\n end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n } else {\n timeRangesObj = {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n }\n if (window$1.Symbol && window$1.Symbol.iterator) {\n timeRangesObj[window$1.Symbol.iterator] = () => (ranges || []).values();\n }\n return timeRangesObj;\n}\n\n/**\n * Create a `TimeRange` object which mimics an\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.\n *\n * @param {number|Array[]} start\n * The start of a single range (a number) or an array of ranges (an\n * array of arrays of two numbers each).\n *\n * @param {number} end\n * The end of a single range. Cannot be used with the array form of\n * the `start` argument.\n */\nfunction createTimeRanges$1(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS. Supplying a guide (in\n * seconds) will force a number of leading zeros to cover the length of the\n * guide.\n *\n * @private\n * @param {number} seconds\n * Number of seconds to be turned into a string\n *\n * @param {number} guide\n * Number (in seconds) to model the string after\n *\n * @return {string}\n * Time formatted as H:MM:SS or M:SS\n */\nconst defaultImplementation = function (seconds, guide) {\n seconds = seconds < 0 ? 0 : seconds;\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = s < 10 ? '0' + s : s;\n return h + m + s;\n};\n\n// Internal pointer to the current implementation.\nlet implementation = defaultImplementation;\n\n/**\n * Replaces the default formatTime implementation with a custom implementation.\n *\n * @param {Function} customImplementation\n * A function which will be used in place of the default formatTime\n * implementation. Will receive the current time in seconds and the\n * guide (in seconds) as arguments.\n */\nfunction setFormatTime(customImplementation) {\n implementation = customImplementation;\n}\n\n/**\n * Resets formatTime to the default implementation.\n */\nfunction resetFormatTime() {\n implementation = defaultImplementation;\n}\n\n/**\n * Delegates to either the default time formatting function or a custom\n * function supplied via `setFormatTime`.\n *\n * Formats seconds as a time string (H:MM:SS or M:SS). Supplying a\n * guide (in seconds) will force a number of leading zeros to cover the\n * length of the guide.\n *\n * @example formatTime(125, 600) === \"02:05\"\n * @param {number} seconds\n * Number of seconds to be turned into a string\n *\n * @param {number} guide\n * Number (in seconds) to model the string after\n *\n * @return {string}\n * Time formatted as H:MM:SS or M:SS\n */\nfunction formatTime(seconds, guide = seconds) {\n return implementation(seconds, guide);\n}\n\nvar Time = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createTimeRanges: createTimeRanges$1,\n createTimeRange: createTimeRanges$1,\n setFormatTime: setFormatTime,\n resetFormatTime: resetFormatTime,\n formatTime: formatTime\n});\n\n/**\n * @file buffer.js\n * @module buffer\n */\n\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRange` object representing buffered time ranges\n *\n * @param {number} duration\n * Total duration of the media\n *\n * @return {number}\n * Percent buffered of the total duration in decimal form.\n */\nfunction bufferedPercent(buffered, duration) {\n let bufferedDuration = 0;\n let start;\n let end;\n if (!duration) {\n return 0;\n }\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges$1(0, 0);\n }\n for (let i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n bufferedDuration += end - start;\n }\n return bufferedDuration / duration;\n}\n\n/**\n * @file media-error.js\n */\n\n/**\n * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.\n *\n * @param {number|string|Object|MediaError} value\n * This can be of multiple types:\n * - number: should be a standard error code\n * - string: an error message (the code will be 0)\n * - Object: arbitrary properties\n * - `MediaError` (native): used to populate a video.js `MediaError` object\n * - `MediaError` (video.js): will return itself if it's already a\n * video.js `MediaError` object.\n *\n * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}\n * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}\n *\n * @class MediaError\n */\nfunction MediaError(value) {\n // Allow redundant calls to this constructor to avoid having `instanceof`\n // checks peppered around the code.\n if (value instanceof MediaError) {\n return value;\n }\n if (typeof value === 'number') {\n this.code = value;\n } else if (typeof value === 'string') {\n // default code is zero, so this is a custom error\n this.message = value;\n } else if (isObject(value)) {\n // We assign the `code` property manually because native `MediaError` objects\n // do not expose it as an own/enumerable property of the object.\n if (typeof value.code === 'number') {\n this.code = value.code;\n }\n Object.assign(this, value);\n }\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\nMediaError.prototype.code = 0;\n\n/**\n * An optional message that to show with the error. Message is not part of the HTML5\n * video spec but allows for more informative custom errors.\n *\n * @type {String}\n */\nMediaError.prototype.message = '';\n\n/**\n * An optional status code that can be set by plugins to allow even more detail about\n * the error. For example a plugin might provide a specific HTTP status code and an\n * error message for that code. Then when the plugin gets that error this class will\n * know how to display an error message for it. This allows a custom message to show\n * up on the `Player` error overlay.\n *\n * @type {Array}\n */\nMediaError.prototype.status = null;\n\n/**\n * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the\n * specification listed under {@link MediaError} for more information.\n *\n * @enum {array}\n * @readonly\n * @property {string} 0 - MEDIA_ERR_CUSTOM\n * @property {string} 1 - MEDIA_ERR_ABORTED\n * @property {string} 2 - MEDIA_ERR_NETWORK\n * @property {string} 3 - MEDIA_ERR_DECODE\n * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED\n * @property {string} 5 - MEDIA_ERR_ENCRYPTED\n */\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n};\n\n// Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\nfor (let errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum;\n // values should be accessible on both the class and instance\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n}\n\n/**\n * Returns whether an object is `Promise`-like (i.e. has a `then` method).\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n *\n * @return {boolean}\n * Whether or not the object is `Promise`-like.\n */\nfunction isPromise(value) {\n return value !== undefined && value !== null && typeof value.then === 'function';\n}\n\n/**\n * Silence a Promise-like object.\n *\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n */\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, e => {});\n }\n}\n\n/**\n * @file text-track-list-converter.js Utilities for capturing text track state and\n * re-creating tracks based on a capture.\n *\n * @module text-track-list-converter\n */\n\n/**\n * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that\n * represents the {@link TextTrack}'s state.\n *\n * @param {TextTrack} track\n * The text track to query.\n *\n * @return {Object}\n * A serializable javascript representation of the TextTrack.\n * @private\n */\nconst trackToJson_ = function (track) {\n const ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce((acc, prop, i) => {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\n return acc;\n }, {\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n })\n });\n return ret;\n};\n\n/**\n * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the\n * state of all {@link TextTrack}s currently configured. The return array is compatible with\n * {@link text-track-list-converter:jsonToTextTracks}.\n *\n * @param {Tech} tech\n * The tech object to query\n *\n * @return {Array}\n * A serializable javascript representation of the {@link Tech}s\n * {@link TextTrackList}.\n */\nconst textTracksToJson = function (tech) {\n const trackEls = tech.$$('track');\n const trackObjs = Array.prototype.map.call(trackEls, t => t.track);\n const tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n const json = trackToJson_(trackEl.track);\n if (trackEl.src) {\n json.src = trackEl.src;\n }\n return json;\n });\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript\n * object {@link TextTrack} representations.\n *\n * @param {Array} json\n * An array of `TextTrack` representation objects, like those that would be\n * produced by `textTracksToJson`.\n *\n * @param {Tech} tech\n * The `Tech` to create the `TextTrack`s on.\n */\nconst jsonToTextTracks = function (json, tech) {\n json.forEach(function (track) {\n const addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach(cue => addedTrack.addCue(cue));\n }\n });\n return tech.textTracks();\n};\nvar textTrackConverter = {\n textTracksToJson,\n jsonToTextTracks,\n trackToJson_\n};\n\n/**\n * @file modal-dialog.js\n */\nconst MODAL_CLASS_NAME = 'vjs-modal-dialog';\n\n/**\n * The `ModalDialog` displays over the video and its controls, which blocks\n * interaction with the player until it is closed.\n *\n * Modal dialogs include a \"Close\" button and will close when that button\n * is activated - or when ESC is pressed anywhere.\n *\n * @extends Component\n */\nclass ModalDialog extends Component$1 {\n /**\n * Create an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Mixed} [options.content=undefined]\n * Provide customized content for this modal.\n *\n * @param {string} [options.description]\n * A text description for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.fillAlways=false]\n * Normally, modals are automatically filled only the first time\n * they open. This tells the modal to refresh its content\n * every time it opens.\n *\n * @param {string} [options.label]\n * A text label for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.pauseOnOpen=true]\n * If `true`, playback will will be paused if playing when\n * the modal opens, and resumed when it closes.\n *\n * @param {boolean} [options.temporary=true]\n * If `true`, the modal can only be opened once; it will be\n * disposed as soon as it's closed.\n *\n * @param {boolean} [options.uncloseable=false]\n * If `true`, the user will not be able to close the modal\n * through the UI in the normal ways. Programmatic closing is\n * still possible.\n */\n constructor(player, options) {\n super(player, options);\n this.handleKeyDown_ = e => this.handleKeyDown(e);\n this.close_ = e => this.close(e);\n this.opened_ = this.hasBeenOpened_ = this.hasBeenFilled_ = false;\n this.closeable(!this.options_.uncloseable);\n this.content(this.options_.content);\n\n // Make sure the contentEl is defined AFTER any children are initialized\n // because we only want the contents of the modal in the contentEl\n // (not the UI elements like the close button).\n this.contentEl_ = createEl('div', {\n className: `${MODAL_CLASS_NAME}-content`\n }, {\n role: 'document'\n });\n this.descEl_ = createEl('p', {\n className: `${MODAL_CLASS_NAME}-description vjs-control-text`,\n id: this.el().getAttribute('aria-describedby')\n });\n textContent(this.descEl_, this.description());\n this.el_.appendChild(this.descEl_);\n this.el_.appendChild(this.contentEl_);\n }\n\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass(),\n tabIndex: -1\n }, {\n 'aria-describedby': `${this.id()}_description`,\n 'aria-hidden': 'true',\n 'aria-label': this.label(),\n 'role': 'dialog'\n });\n }\n dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n super.dispose();\n }\n\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n buildCSSClass() {\n return `${MODAL_CLASS_NAME} vjs-hidden ${super.buildCSSClass()}`;\n }\n\n /**\n * Returns the label string for this modal. Primarily used for accessibility.\n *\n * @return {string}\n * the localized or raw label of this modal.\n */\n label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\n\n /**\n * Returns the description string for this modal. Primarily used for\n * accessibility.\n *\n * @return {string}\n * The localized or raw description of this modal.\n */\n description() {\n let desc = this.options_.description || this.localize('This is a modal window.');\n\n // Append a universal closeability message if the modal is closeable.\n if (this.closeable()) {\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\n }\n return desc;\n }\n\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n open() {\n if (!this.opened_) {\n const player = this.player();\n\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalopen');\n this.opened_ = true;\n\n // Fill content if the modal has never opened before and\n // never been filled.\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n }\n\n // If the player was playing, pause it and take note of its previously\n // playing state.\n this.wasPlaying_ = !player.paused();\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n this.on('keydown', this.handleKeyDown_);\n\n // Hide controls and note if they were enabled.\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {EventTarget~Event}\n */\n this.trigger('modalopen');\n this.hasBeenOpened_ = true;\n }\n }\n\n /**\n * If the `ModalDialog` is currently open or closed.\n *\n * @param {boolean} [value]\n * If given, it will open (`true`) or close (`false`) the modal.\n *\n * @return {boolean}\n * the current open state of the modaldialog\n */\n opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n return this.opened_;\n }\n\n /**\n * Closes the modal, does nothing if the `ModalDialog` is\n * not open.\n *\n * @fires ModalDialog#beforemodalclose\n * @fires ModalDialog#modalclose\n */\n close() {\n if (!this.opened_) {\n return;\n }\n const player = this.player();\n\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalclose');\n this.opened_ = false;\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n this.off('keydown', this.handleKeyDown_);\n if (this.hadControls_) {\n player.controls(true);\n }\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {EventTarget~Event}\n */\n this.trigger('modalclose');\n this.conditionalBlur_();\n if (this.options_.temporary) {\n this.dispose();\n }\n }\n\n /**\n * Check to see if the `ModalDialog` is closeable via the UI.\n *\n * @param {boolean} [value]\n * If given as a boolean, it will set the `closeable` option.\n *\n * @return {boolean}\n * Returns the final value of the closable option.\n */\n closeable(value) {\n if (typeof value === 'boolean') {\n const closeable = this.closeable_ = !!value;\n let close = this.getChild('closeButton');\n\n // If this is being made closeable and has no close button, add one.\n if (closeable && !close) {\n // The close button should be a child of the modal - not its\n // content element, so temporarily change the content element.\n const temp = this.contentEl_;\n this.contentEl_ = this.el_;\n close = this.addChild('closeButton', {\n controlText: 'Close Modal Dialog'\n });\n this.contentEl_ = temp;\n this.on(close, 'close', this.close_);\n }\n\n // If this is being made uncloseable and has a close button, remove it.\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n return this.closeable_;\n }\n\n /**\n * Fill the modal's content element with the modal's \"content\" option.\n * The content element will be emptied before this change takes place.\n */\n fill() {\n this.fillWith(this.content());\n }\n\n /**\n * Fill the modal's content element with arbitrary content.\n * The content element will be emptied before this change takes place.\n *\n * @fires ModalDialog#beforemodalfill\n * @fires ModalDialog#modalfill\n *\n * @param {Mixed} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n fillWith(content) {\n const contentEl = this.contentEl();\n const parentEl = contentEl.parentNode;\n const nextSiblingEl = contentEl.nextSibling;\n\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true;\n\n // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n parentEl.removeChild(contentEl);\n this.empty();\n insertContent(contentEl, content);\n /**\n * Fired just after a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#modalfill\n * @type {EventTarget~Event}\n */\n this.trigger('modalfill');\n\n // Re-inject the re-filled content element.\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n }\n\n // make sure that the close button is last in the dialog DOM\n const closeButton = this.getChild('closeButton');\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n }\n\n /**\n * Empties the content element. This happens anytime the modal is filled.\n *\n * @fires ModalDialog#beforemodalempty\n * @fires ModalDialog#modalempty\n */\n empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {EventTarget~Event}\n */\n this.trigger('modalempty');\n }\n\n /**\n * Gets or sets the modal content, which gets normalized before being\n * rendered into the DOM.\n *\n * This does not update the DOM or fill the modal, but it is called during\n * that process.\n *\n * @param {Mixed} [value]\n * If defined, sets the internal content value to be used on the\n * next call(s) to `fill`. This value is normalized before being\n * inserted. To \"clear\" the internal content value, pass `null`.\n *\n * @return {Mixed}\n * The current content of the modal dialog\n */\n content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n return this.content_;\n }\n\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n conditionalFocus_() {\n const activeEl = document.activeElement;\n const playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n handleKeyDown(event) {\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n if (keycode.isEventKey(event, 'Escape') && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n }\n\n // exit early if it isn't a tab key\n if (!keycode.isEventKey(event, 'Tab')) {\n return;\n }\n const focusableEls = this.focusableEls_();\n const activeEl = this.el_.querySelector(':focus');\n let focusIndex;\n for (let i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n if (document.activeElement === this.el_) {\n focusIndex = 0;\n }\n if (event.shiftKey && focusIndex === 0) {\n focusableEls[focusableEls.length - 1].focus();\n event.preventDefault();\n } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {\n focusableEls[0].focus();\n event.preventDefault();\n }\n }\n\n /**\n * get all focusable elements\n *\n * @private\n */\n focusableEls_() {\n const allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, child => {\n return (child instanceof window$1.HTMLAnchorElement || child instanceof window$1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window$1.HTMLInputElement || child instanceof window$1.HTMLSelectElement || child instanceof window$1.HTMLTextAreaElement || child instanceof window$1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window$1.HTMLIFrameElement || child instanceof window$1.HTMLObjectElement || child instanceof window$1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n }\n}\n\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * @file track-list.js\n */\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\nclass TrackList extends EventTarget$2 {\n /**\n * Create an instance of this class\n *\n * @param {Track[]} tracks\n * A list of tracks to initialize the list with.\n *\n * @abstract\n */\n constructor(tracks = []) {\n super();\n this.tracks_ = [];\n\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.tracks_.length;\n }\n });\n for (let i = 0; i < tracks.length; i++) {\n this.addTrack(tracks[i]);\n }\n }\n\n /**\n * Add a {@link Track} to the `TrackList`\n *\n * @param {Track} track\n * The audio, video, or text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n const index = this.tracks_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get() {\n return this.tracks_[index];\n }\n });\n }\n\n // Do not add duplicate tracks\n if (this.tracks_.indexOf(track) === -1) {\n this.tracks_.push(track);\n /**\n * Triggered when a track is added to a track list.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n this.trigger({\n track,\n type: 'addtrack',\n target: this\n });\n }\n\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n track.labelchange_ = () => {\n this.trigger({\n track,\n type: 'labelchange',\n target: this\n });\n };\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\n }\n\n /**\n * Remove a {@link Track} from the `TrackList`\n *\n * @param {Track} rtrack\n * The audio, video, or text track to remove from the list.\n *\n * @fires TrackList#removetrack\n */\n removeTrack(rtrack) {\n let track;\n for (let i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n if (track.off) {\n track.off();\n }\n this.tracks_.splice(i, 1);\n break;\n }\n }\n if (!track) {\n return;\n }\n\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n this.trigger({\n track,\n type: 'removetrack',\n target: this\n });\n }\n\n /**\n * Get a Track from the TrackList by a tracks id\n *\n * @param {string} id - the id of the track to get\n * @method getTrackById\n * @return {Track}\n * @private\n */\n getTrackById(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n const track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n return result;\n }\n}\n\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {EventTarget~Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @private\n */\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (const event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n\n/**\n * @file audio-track-list.js\n */\n\n/**\n * Anywhere we call this function we diverge from the spec\n * as we only support one enabled audiotrack at a time\n *\n * @param {AudioTrackList} list\n * list to work on\n *\n * @param {AudioTrack} track\n * The track to skip\n *\n * @private\n */\nconst disableOthers$1 = function (list, track) {\n for (let i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n }\n // another audio track is enabled, disable it\n list[i].enabled = false;\n }\n};\n\n/**\n * The current list of {@link AudioTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}\n * @extends TrackList\n */\nclass AudioTrackList extends TrackList {\n /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n constructor(tracks = []) {\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (let i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n super(tracks);\n this.changing_ = false;\n }\n\n /**\n * Add an {@link AudioTrack} to the `AudioTrackList`.\n *\n * @param {AudioTrack} track\n * The AudioTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n super.addTrack(track);\n // native tracks don't have this\n if (!track.addEventListener) {\n return;\n }\n track.enabledChange_ = () => {\n // when we are disabling other tracks (since we don't support\n // more than one track at a time) we will set changing_\n // to true so that we don't trigger additional change events\n if (this.changing_) {\n return;\n }\n this.changing_ = true;\n disableOthers$1(this, track);\n this.changing_ = false;\n this.trigger('change');\n };\n\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n track.addEventListener('enabledchange', track.enabledChange_);\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n }\n}\n\n/**\n * @file video-track-list.js\n */\n\n/**\n * Un-select all other {@link VideoTrack}s that are selected.\n *\n * @param {VideoTrackList} list\n * list to work on\n *\n * @param {VideoTrack} track\n * The track to skip\n *\n * @private\n */\nconst disableOthers = function (list, track) {\n for (let i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n }\n // another video track is enabled, disable it\n list[i].selected = false;\n }\n};\n\n/**\n * The current list of {@link VideoTrack} for a video.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}\n * @extends TrackList\n */\nclass VideoTrackList extends TrackList {\n /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n constructor(tracks = []) {\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (let i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n super(tracks);\n this.changing_ = false;\n\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n Object.defineProperty(this, 'selectedIndex', {\n get() {\n for (let i = 0; i < this.length; i++) {\n if (this[i].selected) {\n return i;\n }\n }\n return -1;\n },\n set() {}\n });\n }\n\n /**\n * Add a {@link VideoTrack} to the `VideoTrackList`.\n *\n * @param {VideoTrack} track\n * The VideoTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n if (track.selected) {\n disableOthers(this, track);\n }\n super.addTrack(track);\n // native tracks don't have this\n if (!track.addEventListener) {\n return;\n }\n track.selectedChange_ = () => {\n if (this.changing_) {\n return;\n }\n this.changing_ = true;\n disableOthers(this, track);\n this.changing_ = false;\n this.trigger('change');\n };\n\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n track.addEventListener('selectedchange', track.selectedChange_);\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n }\n}\n\n/**\n * @file text-track-list.js\n */\n\n/**\n * The current list of {@link TextTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}\n * @extends TrackList\n */\nclass TextTrackList extends TrackList {\n /**\n * Add a {@link TextTrack} to the `TextTrackList`\n *\n * @param {TextTrack} track\n * The text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n addTrack(track) {\n super.addTrack(track);\n if (!this.queueChange_) {\n this.queueChange_ = () => this.queueTrigger('change');\n }\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = () => this.trigger('selectedlanguagechange');\n }\n\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n track.addEventListener('modechange', this.queueChange_);\n const nonLanguageTextTrackKind = ['metadata', 'chapters'];\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n\n // manually remove the event handlers we added\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n }\n}\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nclass HtmlTrackElementList {\n /**\n * Create an instance of this class.\n *\n * @param {HtmlTrackElement[]} [tracks=[]]\n * A list of `HtmlTrackElement` to instantiate the list with.\n */\n constructor(trackElements = []) {\n this.trackElements_ = [];\n\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.trackElements_.length;\n }\n });\n for (let i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\n }\n\n /**\n * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to add to the list.\n *\n * @private\n */\n addTrackElement_(trackElement) {\n const index = this.trackElements_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get() {\n return this.trackElements_[index];\n }\n });\n }\n\n // Do not add duplicate elements\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\n }\n\n /**\n * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an\n * {@link TextTrack}.\n *\n * @param {TextTrack} track\n * The track associated with a track element.\n *\n * @return {HtmlTrackElement|undefined}\n * The track element that was found or undefined.\n *\n * @private\n */\n getTrackElementByTrack_(track) {\n let trackElement_;\n for (let i = 0, length = this.trackElements_.length; i < length; i++) {\n if (track === this.trackElements_[i].track) {\n trackElement_ = this.trackElements_[i];\n break;\n }\n }\n return trackElement_;\n }\n\n /**\n * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to remove from the list.\n *\n * @private\n */\n removeTrackElement_(trackElement) {\n for (let i = 0, length = this.trackElements_.length; i < length; i++) {\n if (trackElement === this.trackElements_[i]) {\n if (this.trackElements_[i].track && typeof this.trackElements_[i].track.off === 'function') {\n this.trackElements_[i].track.off();\n }\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n }\n}\n\n/**\n * @file text-track-cue-list.js\n */\n\n/**\n * @typedef {Object} TextTrackCueList~TextTrackCue\n *\n * @property {string} id\n * The unique id for this text track cue\n *\n * @property {number} startTime\n * The start time for this text track cue\n *\n * @property {number} endTime\n * The end time for this text track cue\n *\n * @property {boolean} pauseOnExit\n * Pause when the end time is reached if true.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}\n */\n\n/**\n * A List of TextTrackCues.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}\n */\nclass TextTrackCueList {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n constructor(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.length_;\n }\n });\n }\n\n /**\n * A setter for cues in this list. Creates getters\n * an an index for the cues.\n *\n * @param {Array} cues\n * An array of cues to set\n *\n * @private\n */\n setCues_(cues) {\n const oldLength = this.length || 0;\n let i = 0;\n const l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n const defineProp = function (index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get() {\n return this.cues_[index];\n }\n });\n }\n };\n if (oldLength < l) {\n i = oldLength;\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n }\n\n /**\n * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.\n *\n * @param {string} id\n * The id of the cue that should be searched for.\n *\n * @return {TextTrackCueList~TextTrackCue|null}\n * A single cue or null if none was found.\n */\n getCueById(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n const cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n return result;\n }\n}\n\n/**\n * @file track-kinds.js\n */\n\n/**\n * All possible `VideoTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind\n * @typedef VideoTrack~Kind\n * @enum\n */\nconst VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\n\n/**\n * All possible `AudioTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind\n * @typedef AudioTrack~Kind\n * @enum\n */\nconst AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\n\n/**\n * All possible `TextTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind\n * @typedef TextTrack~Kind\n * @enum\n */\nconst TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\n\n/**\n * All possible `TextTrackMode`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n * @typedef TextTrack~Mode\n * @enum\n */\nconst TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n\n/**\n * @file track.js\n */\n\n/**\n * A Track class that contains all of the common functionality for {@link AudioTrack},\n * {@link VideoTrack}, and {@link TextTrack}.\n *\n * > Note: This class should not be used directly\n *\n * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}\n * @extends EventTarget\n * @abstract\n */\nclass Track extends EventTarget$2 {\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid kind for the track type you are creating.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @abstract\n */\n constructor(options = {}) {\n super();\n const trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n let label = options.label || '';\n\n /**\n * @memberof Track\n * @member {string} id\n * The id of this track. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} kind\n * The kind of track that this is. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} language\n * The two letter language code for this track. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n\n for (const key in trackProps) {\n Object.defineProperty(this, key, {\n get() {\n return trackProps[key];\n },\n set() {}\n });\n }\n\n /**\n * @memberof Track\n * @member {string} label\n * The label of this track. Cannot be changed after creation.\n * @instance\n *\n * @fires Track#labelchange\n */\n Object.defineProperty(this, 'label', {\n get() {\n return label;\n },\n set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n\n /**\n * An event that fires when label changes on this track.\n *\n * > Note: This is not part of the spec!\n *\n * @event Track#labelchange\n * @type {EventTarget~Event}\n */\n this.trigger('labelchange');\n }\n }\n });\n }\n}\n\n/**\n * @file url.js\n * @module url\n */\n\n/**\n * @typedef {Object} url:URLObject\n *\n * @property {string} protocol\n * The protocol of the url that was parsed.\n *\n * @property {string} hostname\n * The hostname of the url that was parsed.\n *\n * @property {string} port\n * The port of the url that was parsed.\n *\n * @property {string} pathname\n * The pathname of the url that was parsed.\n *\n * @property {string} search\n * The search query of the url that was parsed.\n *\n * @property {string} hash\n * The hash of the url that was parsed.\n *\n * @property {string} host\n * The host of the url that was parsed.\n */\n\n/**\n * Resolve and parse the elements of a URL.\n *\n * @function\n * @param {String} url\n * The url to parse\n *\n * @return {url:URLObject}\n * An object of url details\n */\nconst parseUrl = function (url) {\n // This entire method can be replace with URL once we are able to drop IE11\n\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n const a = document.createElement('a');\n a.href = url;\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE because the anchor loses its\n // properties when it's removed from the dom\n const details = {};\n for (let i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n if (!details.protocol) {\n details.protocol = window$1.location.protocol;\n }\n\n /* istanbul ignore if */\n if (!details.host) {\n details.host = window$1.location.host;\n }\n return details;\n};\n\n/**\n * Get absolute version of relative URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n *\n * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n */\nconst getAbsoluteURL = function (url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Add the url to an anchor and let the browser parse it to convert to an absolute url\n const a = document.createElement('a');\n a.href = url;\n url = a.href;\n }\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string\n * if passed an invalid path.\n *\n * @function\n * @param {string} path\n * The fileName path like '/path/to/file.mp4'\n *\n * @return {string}\n * The extension in lower case or an empty string if no\n * extension could be found.\n */\nconst getFileExtension = function (path) {\n if (typeof path === 'string') {\n const splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n const pathParts = splitPathRe.exec(path);\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @function\n * @param {string} url\n * The url to check.\n *\n * @param {Object} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @param {string} [winLoc.protocol]\n * The window location protocol defaults to window.location.protocol\n *\n * @param {string} [winLoc.host]\n * The window location host defaults to window.location.host\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\nconst isCrossOrigin = function (url, winLoc = window$1.location) {\n const urlInfo = parseUrl(url);\n\n // IE8 protocol relative urls will return ':' for protocol\n const srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n return crossOrigin;\n};\n\nvar Url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseUrl: parseUrl,\n getAbsoluteURL: getAbsoluteURL,\n getFileExtension: getFileExtension,\n isCrossOrigin: isCrossOrigin\n});\n\n/**\n * @file text-track.js\n */\n\n/**\n * Takes a webvtt file contents and parses it into cues\n *\n * @param {string} srcContent\n * webVTT file contents\n *\n * @param {TextTrack} track\n * TextTrack to add cues to. Cues come from the srcContent.\n *\n * @private\n */\nconst parseCues = function (srcContent, track) {\n const parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n const errors = [];\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n parser.parse(srcContent);\n if (errors.length > 0) {\n if (window$1.console && window$1.console.groupCollapsed) {\n window$1.console.groupCollapsed(`Text Track parsing errors for ${track.src}`);\n }\n errors.forEach(error => log$1.error(error));\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n parser.flush();\n};\n\n/**\n * Load a `TextTrack` from a specified url.\n *\n * @param {string} src\n * Url to load track from.\n *\n * @param {TextTrack} track\n * Track to add cues to. Comes from the content at the end of `url`.\n *\n * @private\n */\nconst loadTrack = function (src, track) {\n const opts = {\n uri: src\n };\n const crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n const withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n XHR(opts, bind_(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n track.loaded_ = true;\n\n // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n if (typeof window$1.WebVTT !== 'function') {\n if (track.tech_) {\n // to prevent use before define eslint error, we define loadHandler\n // as a let here\n track.tech_.any(['vttjsloaded', 'vttjserror'], event => {\n if (event.type === 'vttjserror') {\n log$1.error(`vttjs failed to load, stopping trying to process ${track.src}`);\n return;\n }\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n\n/**\n * A representation of a single `TextTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}\n * @extends Track\n */\nclass TextTrack extends Track {\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this TextTrack.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n constructor(options = {}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n const settings = merge$1(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n let mode = TextTrackMode[settings.mode] || 'disabled';\n const default_ = settings.default;\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n super(settings);\n this.tech_ = settings.tech;\n this.cues_ = [];\n this.activeCues_ = [];\n this.preload_ = this.tech_.preloadTextTracks !== false;\n const cues = new TextTrackCueList(this.cues_);\n const activeCues = new TextTrackCueList(this.activeCues_);\n let changed = false;\n this.timeupdateHandler = bind_(this, function (event = {}) {\n if (this.tech_.isDisposed()) {\n return;\n }\n if (!this.tech_.isReady_) {\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n return;\n }\n\n // Accessing this.activeCues for the side-effects of updating itself\n // due to its nature as a getter function. Do not remove or cues will\n // stop updating!\n // Use the setter to prevent deletion from uglify (pure_getters rule)\n this.activeCues = this.activeCues;\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n });\n const disposeHandler = () => {\n this.stopTracking();\n };\n this.tech_.one('dispose', disposeHandler);\n if (mode !== 'disabled') {\n this.startTracking();\n }\n Object.defineProperties(this, {\n /**\n * @memberof TextTrack\n * @member {boolean} default\n * If this track was set to be on or off by default. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n default: {\n get() {\n return default_;\n },\n set() {}\n },\n /**\n * @memberof TextTrack\n * @member {string} mode\n * Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will\n * not be set if setting to an invalid mode.\n * @instance\n *\n * @fires TextTrack#modechange\n */\n mode: {\n get() {\n return mode;\n },\n set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n if (mode === newMode) {\n return;\n }\n mode = newMode;\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n this.stopTracking();\n if (mode !== 'disabled') {\n this.startTracking();\n }\n /**\n * An event that fires when mode changes on this track. This allows\n * the TextTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec!\n *\n * @event TextTrack#modechange\n * @type {EventTarget~Event}\n */\n this.trigger('modechange');\n }\n },\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} cues\n * The text track cue list for this TextTrack.\n * @instance\n */\n cues: {\n get() {\n if (!this.loaded_) {\n return null;\n }\n return cues;\n },\n set() {}\n },\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} activeCues\n * The list text track cues that are currently active for this TextTrack.\n * @instance\n */\n activeCues: {\n get() {\n if (!this.loaded_) {\n return null;\n }\n\n // nothing to do\n if (this.cues.length === 0) {\n return activeCues;\n }\n const ct = this.tech_.currentTime();\n const active = [];\n for (let i = 0, l = this.cues.length; i < l; i++) {\n const cue = this.cues[i];\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n }\n }\n changed = false;\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (this.activeCues_.indexOf(active[i]) === -1) {\n changed = true;\n }\n }\n }\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n return activeCues;\n },\n // /!\\ Keep this setter empty (see the timeupdate handler above)\n set() {}\n }\n });\n if (settings.src) {\n this.src = settings.src;\n if (!this.preload_) {\n // Tracks will load on-demand.\n // Act like we're loaded for other purposes.\n this.loaded_ = true;\n }\n if (this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(this.src, this);\n }\n } else {\n this.loaded_ = true;\n }\n }\n startTracking() {\n // More precise cues based on requestVideoFrameCallback with a requestAnimationFram fallback\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n // Also listen to timeupdate in case rVFC/rAF stops (window in background, audio in video el)\n this.tech_.on('timeupdate', this.timeupdateHandler);\n }\n stopTracking() {\n if (this.rvf_) {\n this.tech_.cancelVideoFrameCallback(this.rvf_);\n this.rvf_ = undefined;\n }\n this.tech_.off('timeupdate', this.timeupdateHandler);\n }\n\n /**\n * Add a cue to the internal list of cues.\n *\n * @param {TextTrack~Cue} cue\n * The cue to add to our internal list\n */\n addCue(originalCue) {\n let cue = originalCue;\n if (window$1.vttjs && !(originalCue instanceof window$1.vttjs.VTTCue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n for (const prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n }\n\n // make sure that `id` is copied over\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n const tracks = this.tech_.textTracks();\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n\n /**\n * Remove a cue from our internal list\n *\n * @param {TextTrack~Cue} removeCue\n * The cue to remove from our internal list\n */\n removeCue(removeCue) {\n let i = this.cues_.length;\n while (i--) {\n const cue = this.cues_[i];\n if (cue === removeCue || cue.originalCue_ && cue.originalCue_ === removeCue) {\n this.cues_.splice(i, 1);\n this.cues.setCues_(this.cues_);\n break;\n }\n }\n }\n}\n\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n\n/**\n * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}\n * only one `AudioTrack` in the list will be enabled at a time.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}\n * @extends Track\n */\nclass AudioTrack extends Track {\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {AudioTrack~Kind} [options.kind='']\n * A valid audio track kind\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.enabled]\n * If this track is the one that is currently playing. If this track is part of\n * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.\n */\n constructor(options = {}) {\n const settings = merge$1(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n super(settings);\n let enabled = false;\n\n /**\n * @memberof AudioTrack\n * @member {boolean} enabled\n * If this `AudioTrack` is enabled or not. When setting this will\n * fire {@link AudioTrack#enabledchange} if the state of enabled is changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n Object.defineProperty(this, 'enabled', {\n get() {\n return enabled;\n },\n set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n enabled = newEnabled;\n\n /**\n * An event that fires when enabled changes on this track. This allows\n * the AudioTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event AudioTrack#enabledchange\n * @type {EventTarget~Event}\n */\n this.trigger('enabledchange');\n }\n });\n\n // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n if (settings.enabled) {\n this.enabled = settings.enabled;\n }\n this.loaded_ = true;\n }\n}\n\n/**\n * A representation of a single `VideoTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}\n * @extends Track\n */\nclass VideoTrack extends Track {\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid {@link VideoTrack~Kind}\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.selected]\n * If this track is the one that is currently playing.\n */\n constructor(options = {}) {\n const settings = merge$1(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n super(settings);\n let selected = false;\n\n /**\n * @memberof VideoTrack\n * @member {boolean} selected\n * If this `VideoTrack` is selected or not. When setting this will\n * fire {@link VideoTrack#selectedchange} if the state of selected changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n Object.defineProperty(this, 'selected', {\n get() {\n return selected;\n },\n set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n selected = newSelected;\n\n /**\n * An event that fires when selected changes on this track. This allows\n * the VideoTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event VideoTrack#selectedchange\n * @type {EventTarget~Event}\n */\n this.trigger('selectedchange');\n }\n });\n\n // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n if (settings.selected) {\n this.selected = settings.selected;\n }\n }\n}\n\n/**\n * @file html-track-element.js\n */\n\n/**\n * A single track represented in the DOM.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}\n * @extends EventTarget\n */\nclass HTMLTrackElement extends EventTarget$2 {\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this HTMLTrackElement.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n constructor(options = {}) {\n super();\n let readyState;\n const track = new TextTrack(options);\n this.kind = track.kind;\n this.src = track.src;\n this.srclang = track.language;\n this.label = track.label;\n this.default = track.default;\n Object.defineProperties(this, {\n /**\n * @memberof HTMLTrackElement\n * @member {HTMLTrackElement~ReadyState} readyState\n * The current ready state of the track element.\n * @instance\n */\n readyState: {\n get() {\n return readyState;\n }\n },\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get() {\n return track;\n }\n }\n });\n readyState = HTMLTrackElement.NONE;\n\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n track.addEventListener('loadeddata', () => {\n readyState = HTMLTrackElement.LOADED;\n this.trigger({\n type: 'load',\n target: this\n });\n });\n }\n}\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\n\n/**\n * The text track not loaded state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.NONE = 0;\n\n/**\n * The text track loading state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.LOADING = 1;\n\n/**\n * The text track loaded state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.LOADED = 2;\n\n/**\n * The text track failed to load state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.ERROR = 3;\n\n/*\n * This file contains all track properties that are used in\n * player.js, tech.js, html5.js and possibly other techs in the future.\n */\n\nconst NORMAL = {\n audio: {\n ListClass: AudioTrackList,\n TrackClass: AudioTrack,\n capitalName: 'Audio'\n },\n video: {\n ListClass: VideoTrackList,\n TrackClass: VideoTrack,\n capitalName: 'Video'\n },\n text: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'Text'\n }\n};\nObject.keys(NORMAL).forEach(function (type) {\n NORMAL[type].getterName = `${type}Tracks`;\n NORMAL[type].privateName = `${type}Tracks_`;\n});\nconst REMOTE = {\n remoteText: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'RemoteText',\n getterName: 'remoteTextTracks',\n privateName: 'remoteTextTracks_'\n },\n remoteTextEl: {\n ListClass: HtmlTrackElementList,\n TrackClass: HTMLTrackElement,\n capitalName: 'RemoteTextTrackEls',\n getterName: 'remoteTextTrackEls',\n privateName: 'remoteTextTrackEls_'\n }\n};\nconst ALL = Object.assign({}, NORMAL, REMOTE);\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n\n/**\n * @file tech.js\n */\n\n/**\n * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string\n * that just contains the src url alone.\n * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`\n * `var SourceString = 'http://example.com/some-video.mp4';`\n *\n * @typedef {Object|string} Tech~SourceObject\n *\n * @property {string} src\n * The url to the source\n *\n * @property {string} type\n * The mime type of the source\n */\n\n/**\n * A function used by {@link Tech} to create a new {@link TextTrack}.\n *\n * @private\n *\n * @param {Tech} self\n * An instance of the Tech class.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @param {Object} [options={}]\n * An object with additional text track options\n *\n * @return {TextTrack}\n * The text track that was created.\n */\nfunction createTrackHelper(self, kind, label, language, options = {}) {\n const tracks = self.textTracks();\n options.kind = kind;\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n const track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\nclass Tech extends Component$1 {\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Component~ReadyCallback} [ready]\n * Callback function to call when the `HTML5` Tech is ready.\n */\n constructor(options = {}, ready = function () {}) {\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n super(null, options, ready);\n this.onDurationChange_ = e => this.onDurationChange(e);\n this.trackProgress_ = e => this.trackProgress(e);\n this.trackCurrentTime_ = e => this.trackCurrentTime(e);\n this.stopTrackingCurrentTime_ = e => this.stopTrackingCurrentTime(e);\n this.disposeSourceHandler_ = e => this.disposeSourceHandler(e);\n this.queuedHanders_ = new Set();\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function () {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n ALL.names.forEach(name => {\n const props = ALL[name];\n if (options && options[props.getterName]) {\n this[props.privateName] = options[props.getterName];\n }\n });\n\n // Manually track progress in cases where the browser/tech doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/tech doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n ['Text', 'Audio', 'Video'].forEach(track => {\n if (options[`native${track}Tracks`] === false) {\n this[`featuresNative${track}Tracks`] = false;\n }\n });\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n this.featuresNativeTextTracks = false;\n } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {\n this.featuresNativeTextTracks = true;\n }\n if (!this.featuresNativeTextTracks) {\n this.emulateTextTracks();\n }\n this.preloadTextTracks = options.preloadTextTracks !== false;\n this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n this.initTrackListeners();\n\n // Turn on component tap events only if not using native controls\n if (!options.nativeControlsForTouch) {\n this.emitTapEvents();\n }\n if (this.constructor) {\n this.name_ = this.constructor.name || 'Unknown Tech';\n }\n }\n\n /**\n * A special function to trigger source set in a way that will allow player\n * to re-trigger if the player or tech are not ready yet.\n *\n * @fires Tech#sourceset\n * @param {string} src The source string at the time of the source changing.\n */\n triggerSourceset(src) {\n if (!this.isReady_) {\n // on initial ready we have to trigger source set\n // 1ms after ready so that player can watch for it.\n this.one('ready', () => this.setTimeout(() => this.triggerSourceset(src), 1));\n }\n\n /**\n * Fired when the source is set on the tech causing the media element\n * to reload.\n *\n * @see {@link Player#event:sourceset}\n * @event Tech#sourceset\n * @type {EventTarget~Event}\n */\n this.trigger({\n src,\n type: 'sourceset'\n });\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n\n /**\n * Polyfill the `progress` event for browsers that don't support it natively.\n *\n * @see {@link Tech#trackProgress}\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress_);\n }\n\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\n }\n\n /**\n * This is used to trigger a `progress` event when the buffered percent changes. It\n * sets an interval function that will be called every 500 milliseconds to check if the\n * buffer end percent has changed.\n *\n * > This function is called by {@link Tech#manualProgressOn}\n *\n * @param {EventTarget~Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n trackProgress(event) {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(bind_(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n\n const numBufferedPercent = this.bufferedPercent();\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {EventTarget~Event}\n */\n this.trigger('progress');\n }\n this.bufferedPercent_ = numBufferedPercent;\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {EventTarget~Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n onDurationChange(event) {\n this.duration_ = this.duration();\n }\n\n /**\n * Get and create a `TimeRange` object for buffering.\n *\n * @return {TimeRange}\n * The time range object that was created.\n */\n buffered() {\n return createTimeRanges$1(0, 0);\n }\n\n /**\n * Get the percentage of the current video that is currently buffered.\n *\n * @return {number}\n * A number from 0 to 1 that represents the decimal percentage of the\n * video that is buffered.\n *\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n * Stop manually tracking progress events by clearing the interval that was set in\n * {@link Tech#trackProgress}.\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\n }\n\n /**\n * Sets up an interval function to track current time and trigger `timeupdate` every\n * 250 milliseconds.\n *\n * @listens Tech#play\n * @triggers Tech#timeupdate\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n this.currentTimeInterval = this.setInterval(function () {\n /**\n * Triggered at an interval of 250ms to indicated that time is passing in the video.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n\n // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\n\n /**\n * Stop the interval function created in {@link Tech#trackCurrentTime} so that the\n * `timeupdate` event is no longer triggered.\n *\n * @listens {Tech#pause}\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n\n /**\n * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},\n * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.\n *\n * @fires Component#dispose\n */\n dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names);\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n super.dispose();\n }\n\n /**\n * Clear out a single `TrackList` or an array of `TrackLists` given their names.\n *\n * > Note: Techs without source handlers should call this between sources for `video`\n * & `audio` tracks. You don't want to use them between tracks!\n *\n * @param {string[]|string} types\n * TrackList names to clear, valid names are `video`, `audio`, and\n * `text`.\n */\n clearTracks(types) {\n types = [].concat(types);\n // clear out all tracks because we can't reuse them between techs\n types.forEach(type => {\n const list = this[`${type}Tracks`]() || [];\n let i = list.length;\n while (i--) {\n const track = list[i];\n if (type === 'text') {\n this.removeRemoteTextTrack(track);\n }\n list.removeTrack(track);\n }\n });\n }\n\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n cleanupAutoTextTracks() {\n const list = this.autoRemoteTextTracks_ || [];\n let i = list.length;\n while (i--) {\n const track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n reset() {}\n\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n crossOrigin() {}\n\n /**\n * Set the value of `crossOrigin` on the tech.\n *\n * @abstract\n *\n * @param {string} crossOrigin the crossOrigin value\n * @see {Html5#setCrossOrigin}\n */\n setCrossOrigin() {}\n\n /**\n * Get or set an error on the Tech.\n *\n * @param {MediaError} [err]\n * Error to set on the Tech\n *\n * @return {MediaError|null}\n * The current error object on the tech, or null if there isn't one.\n */\n error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Returns the `TimeRange`s that have been played through for the current source.\n *\n * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.\n * It only checks whether the source has played at all or not.\n *\n * @return {TimeRange}\n * - A single time range if this video has played\n * - An empty set of ranges if not.\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRanges$1(0, 0);\n }\n return createTimeRanges$1();\n }\n\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n play() {}\n\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#setScrubbing}\n */\n setScrubbing() {}\n\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n scrubbing() {}\n\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @fires Tech#timeupdate\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n }\n\n /**\n * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and\n * {@link TextTrackList} events.\n *\n * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.\n *\n * @fires Tech#audiotrackchange\n * @fires Tech#videotrackchange\n * @fires Tech#texttrackchange\n */\n initTrackListeners() {\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {EventTarget~Event}\n */\n NORMAL.names.forEach(name => {\n const props = NORMAL[name];\n const trackListChanges = () => {\n this.trigger(`${name}trackchange`);\n };\n const tracks = this[props.getterName]();\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n this.on('dispose', () => {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n addWebVttScript_() {\n if (window$1.WebVTT) {\n return;\n }\n\n // Initially, Tech.el_ is a child of a dummy-div wait until the Component system\n // signals that the Tech is ready at which point Tech.el_ is part of the DOM\n // before inserting the WebVTT script\n if (document.body.contains(this.el())) {\n // load via require if available and vtt.js script location was not passed in\n // as an option. novtt builds will turn the above require call into an empty object\n // which will cause this if check to always fail.\n if (!this.options_['vtt.js'] && isPlain(vtt) && Object.keys(vtt).length > 0) {\n this.trigger('vttjsloaded');\n return;\n }\n\n // load vtt.js via the script location option or the cdn of no location was\n // passed in\n const script = document.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n script.onload = () => {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n this.trigger('vttjsloaded');\n };\n script.onerror = () => {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n this.trigger('vttjserror');\n };\n this.on('dispose', () => {\n script.onload = null;\n script.onerror = null;\n });\n // but have not loaded yet and we set it to true before the inject so that\n // we don't overwrite the injected window.WebVTT if it loads right away\n window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n\n /**\n * Emulate texttracks\n *\n */\n emulateTextTracks() {\n const tracks = this.textTracks();\n const remoteTracks = this.remoteTextTracks();\n const handleAddTrack = e => tracks.addTrack(e.track);\n const handleRemoveTrack = e => tracks.removeTrack(e.track);\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n const updateDisplay = () => this.trigger('texttrackchange');\n const textTracksChanges = () => {\n updateDisplay();\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n };\n textTracksChanges();\n tracks.addEventListener('change', textTracksChanges);\n tracks.addEventListener('addtrack', textTracksChanges);\n tracks.addEventListener('removetrack', textTracksChanges);\n this.on('dispose', function () {\n remoteTracks.off('addtrack', handleAddTrack);\n remoteTracks.off('removetrack', handleRemoveTrack);\n tracks.removeEventListener('change', textTracksChanges);\n tracks.removeEventListener('addtrack', textTracksChanges);\n tracks.removeEventListener('removetrack', textTracksChanges);\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\n });\n }\n\n /**\n * Create and returns a remote {@link TextTrack} object.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @return {TextTrack}\n * The TextTrack that gets created.\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Create an emulated TextTrack for use by addRemoteTextTrack\n *\n * This is intended to be overridden by classes that inherit from\n * Tech in order to create native or custom TextTracks.\n *\n * @param {Object} options\n * The object should contain the options to initialize the TextTrack with.\n *\n * @param {string} [options.kind]\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).\n *\n * @param {string} [options.label].\n * Label to identify the text track\n *\n * @param {string} [options.language]\n * Two letter language abbreviation.\n *\n * @return {HTMLTrackElement}\n * The track element that gets created.\n */\n createRemoteTextTrack(options) {\n const track = merge$1(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\n\n /**\n * Creates a remote text track object and returns an html track element.\n *\n * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.\n *\n * @param {Object} options\n * See {@link Tech#createRemoteTextTrack} for more detailed properties.\n *\n * @param {boolean} [manualCleanup=false]\n * - When false: the TextTrack will be automatically removed from the video\n * element whenever the source changes\n * - When True: The TextTrack will have to be cleaned up manually\n *\n * @return {HTMLTrackElement}\n * An Html Track Element.\n *\n */\n addRemoteTextTrack(options = {}, manualCleanup) {\n const htmlTrackElement = this.createRemoteTextTrack(options);\n if (typeof manualCleanup !== 'boolean') {\n manualCleanup = false;\n }\n\n // store HTMLTrackElement and TextTrack to remote list\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n if (manualCleanup === false) {\n // create the TextTrackList if it doesn't exist\n this.ready(() => this.autoRemoteTextTracks_.addTrack(htmlTrackElement.track));\n }\n return htmlTrackElement;\n }\n\n /**\n * Remove a remote text track from the remote `TextTrackList`.\n *\n * @param {TextTrack} track\n * `TextTrack` to remove from the `TextTrackList`\n */\n removeRemoteTextTrack(track) {\n const trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track);\n\n // remove HTMLTrackElement and TextTrack from remote list\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\n\n /**\n * Gets available media playback quality metrics as specified by the W3C's Media\n * Playback Quality API.\n *\n * @see [Spec]{@link https://wicg.github.io/media-playback-quality}\n *\n * @return {Object}\n * An object with supported media playback quality metrics\n *\n * @abstract\n */\n getVideoPlaybackQuality() {\n return {};\n }\n\n /**\n * Attempt to create a floating video window always on top of other windows\n * so that users may continue consuming media while they interact with other\n * content sites, or applications on their device.\n *\n * @see [Spec]{@link https://wicg.github.io/picture-in-picture}\n *\n * @return {Promise|undefined}\n * A promise with a Picture-in-Picture window if the browser supports\n * Promises (or one was passed in as an option). It returns undefined\n * otherwise.\n *\n * @abstract\n */\n requestPictureInPicture() {\n return Promise.reject();\n }\n\n /**\n * A method to check for the value of the 'disablePictureInPicture'