{"version":3,"sources":["webpack:///./src/views/Urunler/urunlerDetail.vue?7ed9","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./src/views/Admin/Edit/product/product-edit.vue?3721","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./src/views/Urunler/urunler.vue?5eda","webpack:///src/views/Urunler/urunler.vue","webpack:///./src/views/Urunler/urunler.vue?a11f","webpack:///./src/views/Urunler/urunler.vue","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/es.object.proto.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./src/views/Urunler/swiper.vue?24e5","webpack:///src/views/Urunler/swiper.vue","webpack:///./src/views/Urunler/swiper.vue?f771","webpack:///./src/views/Urunler/swiper.vue","webpack:///./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tr.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/td.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/th.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/table/table.js","webpack:///./src/views/home/components/Navbar.vue?5a0c","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-brand.js","webpack:///./node_modules/bootstrap-vue/esm/directives/toggle/toggle.js","webpack:///./node_modules/bootstrap-vue/esm/components/navbar/navbar-toggle.js","webpack:///src/views/home/components/Navbar.vue","webpack:///./src/views/home/components/Navbar.vue?d751","webpack:///./src/views/home/components/Navbar.vue","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./src/views/Admin/Edit/product/product-edit.vue?3997","webpack:///src/views/Admin/Edit/product/product-edit.vue","webpack:///./src/views/Admin/Edit/product/product-edit.vue?6de7","webpack:///./src/views/Admin/Edit/product/product-edit.vue","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress-bar.js","webpack:///./node_modules/bootstrap-vue/esm/components/progress/progress.js","webpack:///./node_modules/vue-select/dist/vue-select.js","webpack:///./src/views/Admin/Edit/product/product-edit.vue?fa11","webpack:///./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack:///./src/views/home/components/footer.vue?dbc0","webpack:///src/views/home/components/footer.vue","webpack:///./src/views/home/components/footer.vue?5b8f","webpack:///./src/views/home/components/footer.vue","webpack:///./src/views/home/components/Navbar.vue?65da","webpack:///./src/assets/images/logo/YBMLogo.png","webpack:///./src/assets/images/logo/YBM.gif","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./src/views/Urunler/swiper.vue?7c6e","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/dom7/dist/dom7.modular.js","webpack:///./node_modules/swiper/js/swiper.esm.bundle.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/buffer/index.js","webpack:///./src/@core/mixins/ui/transition.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./src/views/Admin/Edit/form-utils.js","webpack:///./src/views/Urunler/urunler.vue?f554","webpack:///./node_modules/isarray/index.js","webpack:///./src/views/Urunler/urunlerDetail.vue?8c0c","webpack:///src/views/Urunler/urunlerDetail.vue","webpack:///./src/views/Urunler/urunlerDetail.vue?5430","webpack:///./src/views/Urunler/urunlerDetail.vue","webpack:///./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack:///./node_modules/bootstrap-vue/esm/utils/noop.js","webpack:///./src/views/home/components/footer.vue?99f8","webpack:///./src/views/home/components/footer.vue?5669"],"names":["global","setToStringTag","JSON","props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","$","setPrototypeOf","target","stat","_vm","this","_h","$createElement","_c","_self","staticClass","imgDataUrl","groupedData","allDatas","_e","AdressData","staticRenderFns","components","Navbar","urunlerDetailVue","swiper","footerVue","BImg","BRow","BCol","undefined","mounted","getData","methods","_this","languageCode","localStorage","getItem","axios","get","concat","then","result","getCommunications","success","splitData","console","error","message","catch","myData","_this2","forEach","item","componentId","push","image","_this3","response","component","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","done","Promise","_asyncToGenerator","fn","self","args","arguments","apply","err","DESCRIPTORS","defineBuiltInAccessor","isObject","toObject","requireObjectCoercible","getPrototypeOf","Object","ObjectPrototype","prototype","PROTO","configurable","set","proto","O","exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","join","extraBytes","parts","maxChunkLength","len2","Math","swiperOptions","$store","state","appConfig","isRTL","_l","index","slot","Swiper","SwiperSlide","ProductSwiperData","effect","grabCursor","cubeEffect","slideShadows","shadowOffset","shadowScale","autoplay","delay","disableOnInteraction","pagination","el","hasListenerMixin","hasListener","$listeners","$events","_events","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","writable","LIGHT","DARK","variant","BTr","mixins","listeners","provide","bvTableTr","inject","bvTableRowGroup","default","inheritAttrs","computed","inTbody","isTbody","inThead","isThead","inTfoot","isTfoot","isDark","isStacked","isResponsive","isStickyHeader","hasStickyHeader","tableVariant","headVariant","footVariant","isRowDark","trClasses","trAttrs","role","bvAttrs","on","bvListeners","normalizeSlot","bottomRowMixin","renderBottomRow","fields","computedFields","stacked","tbodyTrClass","tbodyTrAttr","hasNormalizedSlot","columns","colspan","rowspan","stackedHeading","stickyColumn","BTd","tag","isStackedCell","isStickyColumn","rowVariant","computedColspan","computedRowspan","cellClasses","cellAttrs","headOrFoot","scope","$content","MODEL_PROP_NAME_BUSY","MODEL_EVENT_NAME_BUSY","busyMixin","localBusy","computedBusy","watch","newValue","oldValue","$emit","stopIfBusy","event","renderBusy","caption","captionHtml","captionMixin","captionId","safeId","renderCaption","$caption","hasCaptionSlot","domProps","html","colgroupMixin","renderColgroup","$colgroup","emptyFilteredHtml","emptyFilteredText","emptyHtml","emptyText","showEmpty","emptyMixin","renderEmpty","items","computedItems","$empty","isFiltered","stringifyObjectValues","sort","map","k","v","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","reduce","EVENT_FILTER","row","ignoreFields","includeFields","fieldsObj","formattedRow","field","filterByFormatted","formatter","allowedKeys","array","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","o","minLen","_arrayLikeToArray","n","toString","call","slice","constructor","from","test","iter","Symbol","iterator","isArray","arr2","DEBOUNCE_DEPRECATED_MSG","filterDebounce","String","filterFunction","filterIgnoredFields","filterIncludedFields","filteringMixin","localFilter","filterSanitize","computedFilterIgnored","identity","computedFilterIncluded","computedFilterDebounce","ms","warn","localFiltering","hasProvider","noProviderFiltering","filteredCheck","filteredItems","localItems","localFilterFn","criteria","filterFn","filterFnFactory","defaultFilterFnFactory","$_filterTimer","clearFilterTimer","deep","handler","newCriteria","timeout","setTimeout","created","$nextTick","Boolean","beforeDestroy","clearTimeout","regExp","pattern","replace","RegExp","lastIndex","computedFieldsObj","label","origFields","f","sample","memo","_makeModelMixin","type","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","primaryKey","itemsMixin","$parent","paginatedItems","sortedItems","context","sortBy","localSortBy","sortDesc","localSortDesc","perPage","math","currentPage","apiUrl","getFieldFormatter","paginationMixin","localPaging","noProviderPaging","ROOT_EVENT_NAME_REFRESHED","ROOT_ACTION_EVENT_NAME_REFRESH","noProviderSorting","providerMixin","providerTriggerContext","ctx","_providerUpdate","listenOnRoot","refresh","$off","$on","clearSelected","_providerSetLocal","emitOnRoot","e","_props","_watch","SELECT_MODES","noSelectOnClick","selectMode","selectable","selectedVariant","selectableMixin","selectedRows","selectedLastRow","isSelectable","hasSelectableRowClick","supportsSelectableRows","selectableHasSelection","some","selectableIsMultiSelect","selectableTableClasses","selectableTableAttrs","equal","setSelectionHandlers","_selectedRows","idx","beforeMount","selectRow","isRowSelected","selectedLastClicked","unselectRow","selectAllRows","selectableRowClasses","dark","selectableRowAttrs","method","selectionHandler","selected","shiftKey","ctrlKey","metaKey","a","b","_ref$sortBy","_ref$formatter","_ref$locale","locale","_ref$localeOptions","localeOptions","_ref$nullLast","nullLast","aa","bb","localeCompare","MODEL_PROP_NAME_SORT_BY","MODEL_EVENT_NAME_SORT_BY","MODEL_PROP_NAME_SORT_DESC","MODEL_EVENT_NAME_SORT_DESC","SORT_DIRECTION_ASC","SORT_DIRECTION_DESC","SORT_DIRECTION_LAST","SORT_DIRECTIONS","labelSortAsc","labelSortClear","labelSortDesc","noFooterSorting","noLocalSorting","noSortReset","numeric","sortingMixin","localSorting","isSortable","sortable","sortCompareLocale","sortNullLast","sortCompare","sortCompareOptions","usage","sortByFormatted","handleSort","isFoot","sortChanged","toggleLocalSortDesc","sortDirection","sortKey","sortTheadThClasses","sortIconLeft","sortTheadThAttrs","ariaSort","sortTheadThLabel","labelSorting","stackedMixin","isStackedAlways","stackedTableClasses","bordered","borderless","captionTop","fixed","hover","noBorderCollapse","outlined","responsive","small","stickyHeader","striped","tableClass","tableRendererMixin","bvTable","wrapperClasses","wrapperStyles","maxHeight","tableClasses","isTableSimple","border","tableAttrs","adb","ariaAttrs","rowCount","renderThead","renderTbody","renderTfoot","$table","style","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTransitionGroup","tbodyAttrs","tbodyProps","nativeOn","TABLE_TAG_NAMES","disabled","tagName","labelFor","input","document","sel","trim","containsNode","BTh","extends","detailsTdClass","tbodyRowMixin","getTdValues","tdValue","getThValues","thValue","getFormattedValue","toggleDetailsFactory","hasDetailsSlot","$set","rowHovered","tbodyRowEvtStopped","emitTbodyRowEvent","rowUnhovered","renderTbodyRowCell","colIndex","rowIndex","isRowHeader","formatted","cellTag","cellVariant","tdClass","thAttr","tdAttr","slotScope","unformatted","toggleDetails","detailsShowing","rowSelected","slotName","$_bodyFieldSlotNameCache","$childNodes","renderTbodyRow","rowShowDetails","hasRowClickHandler","$rows","detailsId","$tds","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableAttrs","userTrClasses","userTrAttrs","tabindex","mouseenter","mouseleave","ref","refInFor","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","getTbodyTrs","$refs","tbody","$el","trs","tr","getTbodyTrIndex","onTbodyRowKeydown","keyCode","tabIndex","onTBodyRowClicked","shift","onTbodyRowMiddleMouseRowClicked","which","onTbodyRowContextmenu","onTbodyRowDblClicked","renderTopRow","$busy","cache","defaultSlotName","lowercaseSlotName","toLowerCase","handlers","auxclick","contextmenu","dblclick","click","keydown","$tbody","$props","BTfoot","tfootClasses","tfootAttrs","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","renderTFootCustom","BThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","headClicked","hasHeadClickListener","noop","makeCell","labelHtml","ariaLabel","headerTitle","sortAttrs","sortClass","sortLabel","thStyle","abbr","headerAbbr","title","slotNames","column","$srLabel","$cells","$trs","topRowMixin","BTable","$event","$router","_v","_s","getNavItemText","onLanguageChange","model","callback","$$v","expression","options","text","linkProps","href","to","BNavbarBrand","isLink","CLASS_BV_TOGGLE_COLLAPSED","CLASS_BV_TOGGLE_NOT_COLLAPSED","BV_BASE","BV_TOGGLE_ROOT_HANDLER","BV_TOGGLE_CLICK_HANDLER","BV_TOGGLE_STATE","BV_TOGGLE_TARGETS","STRING_FALSE","STRING_TRUE","ATTR_ARIA_CONTROLS","ATTR_ARIA_EXPANDED","ATTR_ROLE","ATTR_TABINDEX","STYLE_OVERFLOW_ANCHOR","ROOT_ACTION_EVENT_NAME_TOGGLE","ROOT_EVENT_NAME_STATE","ROOT_EVENT_NAME_SYNC_STATE","ROOT_ACTION_EVENT_NAME_REQUEST_STATE","KEYDOWN_KEY_CODES","modifiers","targets","split","t","vnode","$root","removeRootListeners","resetProp","binding","VBToggle","bind","componentUpdated","updated","unbind","CLASS_NAME","BNavbarToggle","directives","toggleState","handleStateEvt","onClick","expanded","BNavbar","BCollapse","BNavbarNav","BNav","BNavItem","BFormCheckbox","BFormGroup","Ripple","checkboxState","log","setItem","location","reload","route","getEnglishText","getDefaultText","fails","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","forced","sham","it","homeEdit","option","categorySelected","rawName","clearData","listeYenile","editModal","deleteModal","snowOption","blogFile","inputImageRenderer1","updateBtn","saveButton","deleteData","BCard","BModal","BCardTitle","BCardFooter","BCardText","BLink","BMediaAside","BCardBody","BAvatar","BMedia","BMediaBody","BButton","BFormInput","BProgress","BBadge","BFormFile","vSelect","quillEditor","VBModal","heightTransition","TabloItems","selectedCardComponent","siteCompId","isTabloItem","isTitle","isText","isImage","addNew","editTitle","editContent","editImage","theme","yeni","eski","getAllData","kapaliyaCevir","Urunler","UrunlerDetail","$route","meta","beforeEach","_regeneratorRuntime","mark","_callee","next","isAuthenticated","wrap","_context","prev","matched","record","requiresAuth","stop","_x","_x2","_x3","setup","refInputEl","refPreviewEl","refInputEl2","refPreviewEl2","_useInputImageRendere","useInputImageRenderer","base64","src","inputImageRenderer","_useInputImageRendere2","inputImageRenderer2","newSliderInfo","url","language","post","$bvToast","toast","saveImg","img","_this4","formData","FormData","append","headers","_this5","animated","max","precision","showProgress","showValue","BProgressBar","bvProgress","progressBarClasses","computedAnimated","computedVariant","computedStriped","progressBarStyles","width","computedValue","computedMax","computedPrecision","computedProgress","p","computedShowProgress","computedShowValue","$children","progressBarProps","height","progressHeight","module","646","713","860","206","319","s","8","__esModule","d","hasOwnProperty","r","toStringTag","VueSelect","m","_","l","autoscroll","typeAheadPointer","maybeAdjustScroll","open","dropdownMenu","getDropdownViewport","getBoundingClientRect","top","bottom","scrollTop","offsetTop","c","filteredOptions","typeAheadToLastSelected","selectedValue","typeAheadUp","typeAheadDown","typeAheadSelect","select","u","loading","mutableLoading","search","toggleLoading","_compiled","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$options","shadowRoot","_injectStyles","beforeCreate","Deselect","xmlns","OpenIndicator","inserted","appendToBody","toggle","left","window","scrollX","pageXOffset","scrollY","pageYOffset","unbindPosition","calculatePosition","body","appendChild","parentNode","removeChild","stringify","y","g","clearable","deselectFromDropdown","searchable","multiple","placeholder","transition","clearSearchOnSelect","closeOnSelect","autocomplete","Function","getOptionLabel","getOptionKey","onTab","selectOnTab","isComposing","taggable","Number","pushTags","filterable","filterBy","toLocaleLowerCase","createOption","optionList","resetOnOptionsChange","validator","includes","clearSearchOnBlur","noDrop","inputId","dir","selectOnKeyCodes","searchInputQuerySelector","mapKeydown","dropdownShouldOpen","uid","pushedTags","_value","isTrackingValues","propsData","$data","searchEl","$scopedSlots","selectedOptions","querySelector","searching","attributes","searchPlaceholder","readonly","dropdownOpen","events","compositionstart","compositionend","onSearchKeyDown","keypress","onSearchKeyPress","blur","onSearchBlur","focus","onSearchFocus","spinner","noOptions","openIndicator","listHeader","listFooter","header","deselect","footer","childComponents","stateClasses","isValueEmpty","optionExists","unshift","showClearButton","clearSelection","setInternalValueFromOptions","immediate","pushTag","findOptionFromReducedValue","isOptionSelected","updateValue","onAfterSelect","optionComparator","toggleDropdown","preventDefault","deselectButtons","clearButton","contains","isOptionDeselectable","find","closeSearchOptions","maybeDeleteValue","normalizeOptionForSlot","onEscape","mousedown","onMousedown","onMouseUp","9","27","38","40","_t","_g","_b","mouseup","mouseover","stopPropagation","staticStyle","display","visibility","ajax","pointer","pointerScroll","SwiperClass","Vue","CoreNames","ComponentEvents","ComponentPropNames","DEFAULT_CLASSES","freeze","containerClass","wrapperClass","slideClass","SWIPER_EVENTS","__spreadArrays","il","j","jl","SlotNames","kebabcase","string","handleClickSlideEvent","emit","_a","eventPath","composedPath","path","slides_1","slides","paths","clickedIndex","reallyIndex","clickedSlide","dataset","swiperSlideIndex","reallyIndexValue","isInteger","ClickSlide","bindSwiperEvents","eventName","arguments$1","_i","kebabcaseName","INSTANCE_NAME_KEY","getDirective","globalOptions","getStandardisedOptionByAttrs","_d","getSwiperInstanceName","element","SwiperInstance","getSwiperInstance","instanceName","getSwipeOptions","getBooleanValueByInput","getEventEmiter","componentOptions","handle","fns","className","addEventListener","emitEvent","vueContext","destroyed","Ready","_f","_j","_k","_m","autoUpdate","AutoUpdate","isLoop","loop","loopDestroy","update","navigation","loopCreate","autoDestroy","AutoDestroy","initialized","destroy","DeleteInstanceOnDestroy","CleanupStylesOnDestroy","getSwiperComponent","SwiperComponent","defaultOptions","required","swiperInstance","handleSwiperClick","autoReLoopSwiper","updateSwiper","destroySwiper","initSwiper","activated","createElement","$slots","ParallaxBg","Pagination","PrevButton","NextButton","Scrollbar","SwiperSlideComponent","getInstaller","install","installed","directive","SwiperDirective","exporter","version","VueAwesomeSwiper","address","phone","email","scrollToTop","kvkkText","BTab","BTabs","errorMsg","submitting","linkedinProfile","scrollTo","behavior","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","pow","write","rt","abs","isNaN","floor","LN2","root","factory","modules","installedModules","__webpack_require__","moduleId","getter","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","query","register","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","__proto__","__","ParchmentError","_super","classes","tags","types","match","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","TYPE","Definitions","Definition","blotName","attrName","keyName","toUpperCase","tagNames","diff","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","newOp","retain","lastOp","splice","chop","pop","predicate","partition","passed","failed","initial","changeLength","elem","delete","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","min","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copy","copyIsArray","clone","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","receiver","desc","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","formats","values","attribute","BLOCK_ATTRIBUTE","format","def","endsWith","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","descendants","leaf","lines","tail","head","remove","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","_slicedToArray","sliceIterator","_arr","_n","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","container","innerHTML","classList","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","keyboard","addModule","clipboard","history","init","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","contents","convert","setContents","clear","readOnly","disable","limit","level","imports","overwrite","startsWith","refNode","setRange","_overload","_overload2","deleteText","enable","enabled","scrollIntoView","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","right","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","import","themeConfig","config","moduleNames","moduleConfig","moduleClass","toolbar","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","_map","pos","_map2","_map3","_map4","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","_len","_key","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","_len2","_key2","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","objEquiv","isUndefinedOrNull","isBuffer","x","ka","kb","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","CONTENTS","oldText","newText","diffDelta","combined","merged","list","bullet","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","lengthLeft","detach","childBlot","refBlot","insertInto","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","normalize","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","parseInt","sanitize","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","togglePicker","escape","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","close","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","camelize","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","undo","redo","dest","stack","changeDelta","undoDelta","timestamp","now","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","str","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","nodeType","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","parseFloat","marginTop","marginBottom","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","getBuiltIn","defineWellKnownSymbol","boundary","script","size","color","background","font","assign","_options","_content","content","initialize","pasteHTML","setText","esModule","lengthOfArrayLike","doesNotExceedSafeInteger","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","wellKnownSymbol","V8_VERSION","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","FORCED","arity","E","A","doc","ssrDocument","nodeName","getElementById","getElementsByTagName","createElementNS","importNode","hash","host","hostname","origin","pathname","win","ssrWindow","replaceState","pushState","go","back","CustomEvent","getPropertyValue","screen","matchMedia","Dom7","els","tempParent","toCreate","unique","uniqueArray","addClass","removeClass","hasClass","toggleClass","removeAttr","dom7ElementDataStorage","dataKey","elStyle","webkitTransform","duration","webkitTransitionDuration","transitionDuration","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","is","parents","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","dom7proxy","detail","bubbles","cancelable","dataIndex","transitionEnd","dom","fireCallBack","includeMargins","box","clientTop","clientLeft","scrollLeft","css","each","matchedItems","compareWith","webkitMatchesSelector","msMatchesSelector","eq","returnIndex","newChild","tempDiv","firstChild","prepend","nextAll","nextEls","previousElementSibling","prevAll","prevEls","closest","foundElements","found","toAdd","Methods","outerWidth","outerHeight","methodName","Utils","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","params","param","urlToParse","paramsPart","decodeURIComponent","nextSource","keysArray","nextIndex","nextKey","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","supportsPassive","gestures","eventsListeners","onceHandler","f7proxy","eventHandler","eventsArray","instanceParams","moduleName","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","use","static","installModule","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidesNumberEvenToRows","slideSize","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginRight","slidesPerColumn","slidesPerView","slidesPerColumnFill","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","swiperSlideSize","centeredSlides","slidesPerGroupSkip","newSlidesGrid","setWrapperSize","slidesGridItem","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","z","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionStart","slideTo","initialSlide","allowSlideNext","allowSlidePrev","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopFix","_clientLeft","slidePrev","val","normalizedTranslate","normalizedSnapGrid","prevIndex","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","nextTick","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","snapTranslate","slideChanged","setGrabCursor","moving","simulateTouch","isLocked","unsetGrabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","screenWidth","screenHeight","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","onTouchEnd","touchEndTime","timeDiff","lastClickTime","currentPos","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","nextEl","prevEl","onResize","breakpoints","setBreakpoint","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","passiveListeners","passive","updateOnWindowResize","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","containerModifierClass","directionChanged","needsReLoop","changeDirection","points","point","minRatio","innerHeight","innerWidth","addClasses","classNames","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","isPicture","complete","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","checkOverflow$1","defaults","uniqueNavElements","prototypes","images","extendedDefaults","super","prototypeGroup","protoMethod","moduleParamName","swiperParams","useModulesParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","clickTimeout","useModules","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","deleteProps","newDefaults","Device$1","Support$1","support","isSafari","isEdge","isWebView","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","WebkitMutationObserver","ObserverFunc","observerUpdate","requestAnimationFrame","observers","observeParents","containerParents","observeSlideChildren","Observer$1","Virtual","addSlidesBefore","addSlidesAfter","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","overwriteParams","kc","charCode","pageUpDown","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Keyboard$1","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","mouseEntered","mousewheel","eventsTarged","releaseOnEdges","rtlFactor","forceToAxis","invert","newEvent","sign","ignoreWheelEvents","sensitivity","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","raw","animateSlider","releaseScroll","handleMouseEnter","handleMouseLeave","Mousewheel$1","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onNextClick","onPrevClick","Navigation$1","hideOnClick","hiddenClass","isHidden","current","total","paginationType","bullets","firstIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","number","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","opacity","divider","moveDivider","clientX","clientY","dragStartPos","positionRatio","getPointerPosition","setDragPosition","dragTimeout","snapOnRelease","activeListener","onDragStart","onDragMove","onDragEnd","$swiperEl","dragClass","dragEl","draggable","enableDraggable","disableDraggable","Scrollbar$1","Parallax","currentOpacity","currentScale","parallax","setTransform","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","getDistanceBetweenTouches","$imageEl","$imageWrapEl","maxRatio","isScaling","scaleMove","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","out","in","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","activeListenerWithCapture","slideSelector","onGestureStart","onGestureChange","onGestureEnd","Zoom$1","onTransitionEnd","Lazy","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","$pictureEl","sourceIndex","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","loadInSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$1","loadOnTransitionStart","Controller","LinearSpline","binarySearch","guess","i1","i3","interpolate","controller","spline","controlled","controlledTranslate","setControlledTranslate","by","getInterpolateFunction","inverse","setControlledTransition","Controller$1","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","disableEl","makeElNotFocusable","enableEl","makeElFocusable","bulletEl","$bulletEl","addElRole","addElLabel","paginationBulletMessage","onEnterKey","A11y","notificationClass","updateNavigation","updatePagination","hashNavigation","getPathValues","scrollToSlide","setHistoryPopState","pathArray","slugify","currentState","slideHistory","History$1","setHistory","HashNavigation","newHash","activeSlideHash","slideHash","watchState","onHashCange","HashNavigation$1","setHash","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","waitForTransition","Autoplay$1","pause","visibilityState","onVisibilityChange","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","swiperWidth","swiperHeight","$cubeShadowEl","wrapperRotate","shadow","slideAngle","round","tz","shadowBefore","shadowAfter","shadowAngle","sin","cos","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectFlip","Coverflow","coverflowEffect","center","slideOffset","offsetMultiplier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","prefixedPointerEvents","ws","perspectiveOrigin","EffectCoverflow","Thumbs","thumbs","thumbsParams","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","Thumbs$1","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","isEncoding","fromArrayLike","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","res","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","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","toHex","bytes","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","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","trHeight","trAddHeight","heightValue","trTrimHeight","trSetHeight","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","getDataTransferItemEntry","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","all","kind","entry","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","file","$path","directoryReader","entryPromises","readDirectoryEntries","readEntries","entries","accept","browseText","directory","dropPlaceholder","fileNameFormatter","noDropPlaceholder","noTraverse","dragging","dropAllowed","computedAccept","extOrType","startMatch","endMatch","rx","computedCapture","computedAttrs","form","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","allowed","filesTraversed","reset","$_form","$form","isFileValid","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","_unused","$input","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","plain","onChange","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","onDrop","custom","stateClass","focusin","focusout","$label","for","dragenter","dragover","dragleave","drop","asyncIterator","define","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","awrap","async","rval","finish","delegateYield","inputEl","product","urunlerData","pill","active"],"mappings":"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","file":"js/chunk-17579feb.f80298f1.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./urunlerDetail.vue?vue&type=style&index=0&id=0fe58e19&prod&scoped=true&lang=css&\"","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./product-edit.vue?vue&type=style&index=0&id=a0db5c50&prod&lang=scss&\"","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fontBlog\"},[_c('navbar'),_c('b-img',{staticClass:\"aboutImg mt-0\",attrs:{\"src\":_vm.imgDataUrl,\"fluid\":\"\",\"alt\":\"Responsive image\"}}),_c('b-row',[_c('b-col',{attrs:{\"md\":\"1\"}}),_c('b-col',{attrs:{\"md\":\"4\"}},[(_vm.groupedData && _vm.allDatas)?_c('swiper',{attrs:{\"ProductSwiperData\":_vm.groupedData[17]}}):_vm._e()],1),_c('b-col',{attrs:{\"md\":\"6\"}},[(_vm.groupedData && _vm.allDatas)?_c('urunler-detail-vue',{attrs:{\"urunlerData\":_vm.groupedData[18]}}):_vm._e()],1),_c('b-col',{attrs:{\"md\":\"1\"}})],1),_c('footer-vue',{attrs:{\"AdressData\":_vm.AdressData}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./urunler.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./urunler.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./urunler.vue?vue&type=template&id=2b155020&scoped=true&\"\nimport script from \"./urunler.vue?vue&type=script&lang=js&\"\nexport * from \"./urunler.vue?vue&type=script&lang=js&\"\nimport style0 from \"./urunler.vue?vue&type=style&index=0&id=2b155020&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b155020\",\n null\n \n)\n\nexport default component.exports","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n defineBuiltInAccessor(ObjectPrototype, PROTO, {\n configurable: true,\n get: function __proto__() {\n return getPrototypeOf(toObject(this));\n },\n set: function __proto__(proto) {\n var O = requireObjectCoercible(this);\n if (!isObject(proto) && proto !== null || !isObject(O)) return;\n setPrototypeOf(O, proto);\n }\n });\n} catch (error) { /* empty */ }\n","'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","'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"swiper-container mt-5\"},[_c('swiper',{staticClass:\"swiper-cube-effect swiper-custom\",attrs:{\"options\":_vm.swiperOptions,\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr'}},[_vm._l((_vm.ProductSwiperData),function(data,index){return _c('swiper-slide',{key:index},[_c('b-img',{attrs:{\"src\":data.image,\"fluid\":\"\"}})],1)}),_c('div',{staticClass:\"swiper-pagination\",attrs:{\"slot\":\"pagination\"},slot:\"pagination\"})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./swiper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./swiper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./swiper.vue?vue&type=template&id=398ccf1e&scoped=true&\"\nimport script from \"./swiper.vue?vue&type=script&lang=js&\"\nexport * from \"./swiper.vue?vue&type=script&lang=js&\"\nimport style0 from \"./swiper.vue?vue&type=style&index=0&id=398ccf1e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"398ccf1e\",\n null\n \n)\n\nexport default component.exports","// Mixin to determine if an event listener has been registered\n// either via `v-on:name` (in the parent) or programmatically\n// via `vm.$on('name', ...)`\n// See: https://github.com/vuejs/vue/issues/10825\nimport { Vue } from '../vue';\nimport { isArray, isUndefined } from '../utils/inspect'; // @vue/component\n\nexport var hasListenerMixin = Vue.extend({\n methods: {\n hasListener: function hasListener(name) {\n // Only includes listeners registered via `v-on:name`\n var $listeners = this.$listeners || {}; // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n\n var $events = this._events || {}; // Registered listeners in `this._events` are always an array,\n // but might be zero length\n\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar LIGHT = 'light';\nvar DARK = 'dark'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTr = /*#__PURE__*/Vue.extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableTr: this\n };\n },\n inject: {\n bvTableRowGroup: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / ``\n inTbody: function inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `` / ``\n inThead: function inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `` / ``\n inTfoot: function inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `` / ``\n isDark: function isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `` / ``\n isStacked: function isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `` / ``\n isResponsive: function isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `` / ``\n tableVariant: function tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `` / ``\n headVariant: function headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `` / ``\n footVariant: function footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark: function isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ?\n /* istanbul ignore next */\n false : this.headVariant === DARK || this.footVariant === DARK ?\n /* istanbul ignore next */\n true : this.isDark;\n },\n trClasses: function trClasses() {\n var variant = this.variant;\n return [variant ? \"\".concat(this.isRowDark ? 'bg' : 'table', \"-\").concat(variant) : null];\n },\n trAttrs: function trAttrs() {\n return _objectSpread({\n role: 'row'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_BOTTOM_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var bottomRowMixin = Vue.extend({\n props: props,\n methods: {\n renderBottomRow: function renderBottomRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_BOTTOM_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-bottom-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-bottom') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-bottom') : tbodyTrAttr,\n key: 'b-bottom-row'\n }, this.normalizeSlot(SLOT_NAME_BOTTOM_ROW, {\n columns: fields.length,\n fields: fields\n }));\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Helper methods ---\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\n\nvar parseSpan = function parseSpan(value) {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n/* istanbul ignore next */\n\n\nvar spanValidator = function spanValidator(value) {\n return isUndefinedOrNull(value) || parseSpan(value) > 0;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTd = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n bvTableTr: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Overridden by ``\n tag: function tag() {\n return 'td';\n },\n inTbody: function inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead: function inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot: function inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark: function isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked: function isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell: function isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive: function isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn: function isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant: function rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant: function headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant: function footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant: function tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan: function computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan: function computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses: function cellClasses() {\n var variant = this.variant,\n headVariant = this.headVariant,\n isStickyColumn = this.isStickyColumn;\n\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n\n return [variant ? \"\".concat(this.isDark ? 'bg' : 'table', \"-\").concat(variant) : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs: function cellAttrs() {\n var stackedHeading = this.stackedHeading; // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n\n var headOrFoot = this.inThead || this.inTfoot; // Make sure col/rowspan's are > 0 or null\n\n var colspan = this.computedColspan;\n var rowspan = this.computedRowspan; // Default role and scope\n\n var role = 'cell';\n var scope = null; // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n\n return _objectSpread(_objectSpread({\n colspan: colspan,\n rowspan: rowspan,\n role: role,\n scope: scope\n }, this.bvAttrs), {}, {\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ?\n /* istanbul ignore next */\n toString(stackedHeading) : null\n });\n }\n },\n render: function render(h) {\n var $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Constants ---\n\nvar MODEL_PROP_NAME_BUSY = 'busy';\nvar MODEL_EVENT_NAME_BUSY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_BUSY; // --- Props ---\n\nexport var props = _defineProperty({}, MODEL_PROP_NAME_BUSY, makeProp(PROP_TYPE_BOOLEAN, false)); // --- Mixin ---\n// @vue/component\n\nexport var busyMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localBusy: false\n };\n },\n computed: {\n computedBusy: function computedBusy() {\n return this[MODEL_PROP_NAME_BUSY] || this.localBusy;\n }\n },\n watch: {\n localBusy: function localBusy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_BUSY, newValue);\n }\n }\n },\n methods: {\n // Event handler helper\n stopIfBusy: function stopIfBusy(event) {\n // If table is busy (via provider) then don't propagate\n if (this.computedBusy) {\n stopEvent(event);\n return true;\n }\n\n return false;\n },\n // Render the busy indicator or return `null` if not busy\n renderBusy: function renderBusy() {\n var tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Return a busy indicator row, or `null` if not busy\n\n if (this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY)) {\n return h(BTr, {\n staticClass: 'b-table-busy-slot',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, SLOT_NAME_TABLE_BUSY) : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, SLOT_NAME_TABLE_BUSY) : tbodyTrAttr,\n key: 'table-busy-slot'\n }, [h(BTd, {\n props: {\n colspan: this.computedFields.length || null\n }\n }, [this.normalizeSlot(SLOT_NAME_TABLE_BUSY)])]);\n } // We return `null` here so that we can determine if we need to\n // render the table items rows or not\n\n\n return null;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING) // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n\n}; // --- Mixin ---\n// @vue/component\n\nexport var captionMixin = Vue.extend({\n props: props,\n computed: {\n captionId: function captionId() {\n // Even though `this.safeId` looks like a method, it is a computed prop\n // that returns a new function if the underlying ID changes\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption: function renderCaption() {\n var caption = this.caption,\n captionHtml = this.captionHtml;\n var h = this.$createElement;\n var $caption = h();\n var hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n\n return $caption;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var colgroupMixin = Vue.extend({\n methods: {\n renderColgroup: function renderColgroup() {\n var fields = this.computedFields;\n var h = this.$createElement;\n var $colgroup = h();\n\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields: fields\n })]);\n }\n\n return $colgroup;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_EMPTYFILTERED, SLOT_NAME_TABLE_BUSY } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { BTr } from '../tr';\nimport { BTd } from '../td'; // --- Props ---\n\nexport var props = {\n emptyFilteredHtml: makeProp(PROP_TYPE_STRING),\n emptyFilteredText: makeProp(PROP_TYPE_STRING, 'There are no records matching your request'),\n emptyHtml: makeProp(PROP_TYPE_STRING),\n emptyText: makeProp(PROP_TYPE_STRING, 'There are no records to show'),\n showEmpty: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var emptyMixin = Vue.extend({\n props: props,\n methods: {\n renderEmpty: function renderEmpty() {\n var items = this.computedItems;\n var h = this.$createElement;\n var $empty = h();\n\n if (this.showEmpty && (!items || items.length === 0) && !(this.computedBusy && this.hasNormalizedSlot(SLOT_NAME_TABLE_BUSY))) {\n var fields = this.computedFields,\n isFiltered = this.isFiltered,\n emptyText = this.emptyText,\n emptyHtml = this.emptyHtml,\n emptyFilteredText = this.emptyFilteredText,\n emptyFilteredHtml = this.emptyFilteredHtml,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n $empty = this.normalizeSlot(isFiltered ? SLOT_NAME_EMPTYFILTERED : SLOT_NAME_EMPTY, {\n emptyFilteredHtml: emptyFilteredHtml,\n emptyFilteredText: emptyFilteredText,\n emptyHtml: emptyHtml,\n emptyText: emptyText,\n fields: fields,\n // Not sure why this is included, as it will always be an empty array\n items: items\n });\n\n if (!$empty) {\n $empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: isFiltered ? htmlOrText(emptyFilteredHtml, emptyFilteredText) : htmlOrText(emptyHtml, emptyText)\n });\n }\n\n $empty = h(BTd, {\n props: {\n colspan: fields.length || null\n }\n }, [h('div', {\n attrs: {\n role: 'alert',\n 'aria-live': 'polite'\n }\n }, [$empty])]);\n $empty = h(BTr, {\n staticClass: 'b-table-empty-row',\n class: [isFunction(tbodyTrClass) ?\n /* istanbul ignore next */\n tbodyTrClass(null, 'row-empty') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(null, 'row-empty') : tbodyTrAttr,\n key: isFiltered ? 'b-empty-filtered-row' : 'b-empty-row'\n }, [$empty]);\n }\n\n return $empty;\n }\n }\n});","import { isDate, isObject, isUndefinedOrNull } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string'; // Recursively stringifies the values of an object, space separated, in an\n// SSR safe deterministic way (keys are sorted before stringification)\n//\n// ex:\n// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }\n// becomes\n// 'one 3 2 zzz 10 12 11'\n//\n// Strings are returned as-is\n// Numbers get converted to string\n// `null` and `undefined` values are filtered out\n// Dates are converted to their native string format\n\nexport var stringifyObjectValues = function stringifyObjectValues(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n } // Arrays are also object, and keys just returns the array indexes\n // Date objects we convert to strings\n\n\n if (isObject(value) && !isDate(value)) {\n return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables\n .map(function (k) {\n return stringifyObjectValues(value[k]);\n }).filter(function (v) {\n return !!v;\n }) // Ignore empty strings\n .join(' ');\n }\n\n return toString(value);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Constants used by table helpers\nexport var FIELD_KEY_CELL_VARIANT = '_cellVariants';\nexport var FIELD_KEY_ROW_VARIANT = '_rowVariant';\nexport var FIELD_KEY_SHOW_DETAILS = '_showDetails'; // Object of item keys that should be ignored for headers and\n// stringification and filter events\n\nexport var IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, true));\n}, {}); // Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\n\nexport var EVENT_FILTER = ['a', 'a *', // Include content inside links\n'button', 'button *', // Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');","import { arrayIncludes } from '../../../utils/array';\nimport { isArray, isFunction } from '../../../utils/inspect';\nimport { clone, keys, pick } from '../../../utils/object';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Return a copy of a row after all reserved fields have been filtered out\n\nexport var sanitizeRow = function sanitizeRow(row, ignoreFields, includeFields) {\n var fieldsObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // We first need to format the row based on the field configurations\n // This ensures that we add formatted values for keys that may not\n // exist in the row itself\n var formattedRow = keys(fieldsObj).reduce(function (result, key) {\n var field = fieldsObj[key];\n var filterByFormatted = field.filterByFormatted;\n var formatter = isFunction(filterByFormatted) ?\n /* istanbul ignore next */\n filterByFormatted : filterByFormatted ?\n /* istanbul ignore next */\n field.formatter : null;\n\n if (isFunction(formatter)) {\n result[key] = formatter(row[key], key, row);\n }\n\n return result;\n }, clone(row)); // Determine the allowed keys:\n // - Ignore special fields that start with `_`\n // - Ignore fields in the `ignoreFields` array\n // - Include only fields in the `includeFields` array\n\n var allowedKeys = keys(formattedRow).filter(function (key) {\n return !IGNORED_FIELD_KEYS[key] && !(isArray(ignoreFields) && ignoreFields.length > 0 && arrayIncludes(ignoreFields, key)) && !(isArray(includeFields) && includeFields.length > 0 && !arrayIncludes(includeFields, key));\n });\n return pick(formattedRow, allowedKeys);\n};","import { isObject } from '../../../utils/inspect';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\nimport { sanitizeRow } from './sanitize-row'; // Stringifies the values of a record, ignoring any special top level field keys\n// TODO: Add option to stringify `scopedSlot` items\n\nexport var stringifyRecordValues = function stringifyRecordValues(row, ignoreFields, includeFields, fieldsObj) {\n return isObject(row) ? stringifyObjectValues(sanitizeRow(row, ignoreFields, includeFields, fieldsObj)) :\n /* istanbul ignore next */\n '';\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_FILTERED } from '../../../constants/events';\nimport { PROP_TYPE_REG_EXP, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY, PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { RX_DIGITS, RX_SPACES } from '../../../constants/regex';\nimport { concat } from '../../../utils/array';\nimport { cloneDeep } from '../../../utils/clone-deep';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isString, isRegExp } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { toInteger } from '../../../utils/number';\nimport { hasPropFunction, makeProp } from '../../../utils/props';\nimport { escapeRegExp } from '../../../utils/string';\nimport { warn } from '../../../utils/warn';\nimport { stringifyRecordValues } from './stringify-record-values'; // --- Constants ---\n\nvar DEBOUNCE_DEPRECATED_MSG = 'Prop \"filter-debounce\" is deprecated. Use the debounce feature of \"\" instead.'; // --- Props ---\n\nexport var props = {\n filter: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_REG_EXP])),\n filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, function (value) {\n return RX_DIGITS.test(String(value));\n }),\n filterFunction: makeProp(PROP_TYPE_FUNCTION),\n filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),\n filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])\n}; // --- Mixin ---\n// @vue/component\n\nexport var filteringMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n // Flag for displaying which empty slot to show and some event triggering\n isFiltered: false,\n // Where we store the copy of the filter criteria after debouncing\n // We pre-set it with the sanitized filter value\n localFilter: this.filterSanitize(this.filter)\n };\n },\n computed: {\n computedFilterIgnored: function computedFilterIgnored() {\n return concat(this.filterIgnoredFields || []).filter(identity);\n },\n computedFilterIncluded: function computedFilterIncluded() {\n return concat(this.filterIncludedFields || []).filter(identity);\n },\n computedFilterDebounce: function computedFilterDebounce() {\n var ms = toInteger(this.filterDebounce, 0);\n /* istanbul ignore next */\n\n if (ms > 0) {\n warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);\n }\n\n return ms;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? !!this.noProviderFiltering : true;\n },\n // For watching changes to `filteredItems` vs `localItems`\n filteredCheck: function filteredCheck() {\n var filteredItems = this.filteredItems,\n localItems = this.localItems,\n localFilter = this.localFilter;\n return {\n filteredItems: filteredItems,\n localItems: localItems,\n localFilter: localFilter\n };\n },\n // Sanitized/normalize filter-function prop\n localFilterFn: function localFilterFn() {\n // Return `null` to signal to use internal filter function\n var filterFunction = this.filterFunction;\n return hasPropFunction(filterFunction) ? filterFunction : null;\n },\n // Returns the records in `localItems` that match the filter criteria\n // Returns the original `localItems` array if not sorting\n filteredItems: function filteredItems() {\n // Note the criteria is debounced and sanitized\n var items = this.localItems,\n criteria = this.localFilter; // Resolve the filtering function, when requested\n // We prefer the provided filtering function and fallback to the internal one\n // When no filtering criteria is specified the filtering factories will return `null`\n\n var filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null; // We only do local filtering when requested and there are records to filter\n\n return filterFn && items.length > 0 ? items.filter(filterFn) : items;\n }\n },\n watch: {\n // Watch for debounce being set to 0\n computedFilterDebounce: function computedFilterDebounce(newValue) {\n if (!newValue && this.$_filterTimer) {\n this.clearFilterTimer();\n this.localFilter = this.filterSanitize(this.filter);\n }\n },\n // Watch for changes to the filter criteria, and debounce if necessary\n filter: {\n // We need a deep watcher in case the user passes\n // an object when using `filter-function`\n deep: true,\n handler: function handler(newCriteria) {\n var _this = this;\n\n var timeout = this.computedFilterDebounce;\n this.clearFilterTimer();\n\n if (timeout && timeout > 0) {\n // If we have a debounce time, delay the update of `localFilter`\n this.$_filterTimer = setTimeout(function () {\n _this.localFilter = _this.filterSanitize(newCriteria);\n }, timeout);\n } else {\n // Otherwise, immediately update `localFilter` with `newFilter` value\n this.localFilter = this.filterSanitize(newCriteria);\n }\n }\n },\n // Watch for changes to the filter criteria and filtered items vs `localItems`\n // Set visual state and emit events as required\n filteredCheck: function filteredCheck(_ref) {\n var filteredItems = _ref.filteredItems,\n localFilter = _ref.localFilter;\n // Determine if the dataset is filtered or not\n var isFiltered = false;\n\n if (!localFilter) {\n // If filter criteria is falsey\n isFiltered = false;\n } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {\n // If filter criteria is an empty array or object\n isFiltered = false;\n } else if (localFilter) {\n // If filter criteria is truthy\n isFiltered = true;\n }\n\n if (isFiltered) {\n this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);\n }\n\n this.isFiltered = isFiltered;\n },\n isFiltered: function isFiltered(newValue, oldValue) {\n if (newValue === false && oldValue === true) {\n // We need to emit a filtered event if `isFiltered` transitions from `true` to\n // `false` so that users can update their pagination controls\n var localItems = this.localItems;\n this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create private non-reactive props\n this.$_filterTimer = null; // If filter is \"pre-set\", set the criteria\n // This will trigger any watchers/dependents\n // this.localFilter = this.filterSanitize(this.filter)\n // Set the initial filtered state in a `$nextTick()` so that\n // we trigger a filtered event if needed\n\n this.$nextTick(function () {\n _this2.isFiltered = Boolean(_this2.localFilter);\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.clearFilterTimer();\n },\n methods: {\n clearFilterTimer: function clearFilterTimer() {\n clearTimeout(this.$_filterTimer);\n this.$_filterTimer = null;\n },\n filterSanitize: function filterSanitize(criteria) {\n // Sanitizes filter criteria based on internal or external filtering\n if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {\n // If using internal filter function, which only accepts string or RegExp,\n // return '' to signify no filter\n return '';\n } // Could be a string, object or array, as needed by external filter function\n // We use `cloneDeep` to ensure we have a new copy of an object or array\n // without Vue's reactive observers\n\n\n return cloneDeep(criteria);\n },\n // Filter Function factories\n filterFnFactory: function filterFnFactory(filterFn, criteria) {\n // Wrapper factory for external filter functions\n // Wrap the provided filter-function and return a new function\n // Returns `null` if no filter-function defined or if criteria is falsey\n // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`\n // we have it passed, so that the caller computed prop will be reactive to changes\n // in the original filter-function (as this routine is a method)\n if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {\n return null;\n } // Build the wrapped filter test function, passing the criteria to the provided function\n\n\n var fn = function fn(item) {\n // Generated function returns true if the criteria matches part\n // of the serialized data, otherwise false\n return filterFn(item, criteria);\n }; // Return the wrapped function\n\n\n return fn;\n },\n defaultFilterFnFactory: function defaultFilterFnFactory(criteria) {\n var _this3 = this;\n\n // Generates the default filter function, using the given filter criteria\n // Returns `null` if no criteria or criteria format not supported\n if (!criteria || !(isString(criteria) || isRegExp(criteria))) {\n // Built in filter can only support strings or RegExp criteria (at the moment)\n return null;\n } // Build the RegExp needed for filtering\n\n\n var regExp = criteria;\n\n if (isString(regExp)) {\n // Escape special RegExp characters in the string and convert contiguous\n // whitespace to \\s+ matches\n var pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\\\s+'); // Build the RegExp (no need for global flag, as we only need\n // to find the value once in the string)\n\n regExp = new RegExp(\".*\".concat(pattern, \".*\"), 'i');\n } // Generate the wrapped filter test function to use\n\n\n var fn = function fn(item) {\n // This searches all row values (and sub property values) in the entire (excluding\n // special `_` prefixed keys), because we convert the record to a space-separated\n // string containing all the value properties (recursively), even ones that are\n // not visible (not specified in this.fields)\n // Users can ignore filtering on specific fields, or on only certain fields,\n // and can optionall specify searching results of fields with formatter\n //\n // TODO: Enable searching on scoped slots (optional, as it will be SLOW)\n //\n // Generated function returns true if the criteria matches part of\n // the serialized data, otherwise false\n //\n // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag\n regExp.lastIndex = 0;\n return regExp.test(stringifyRecordValues(item, _this3.computedFilterIgnored, _this3.computedFilterIncluded, _this3.computedFieldsObj));\n }; // Return the generated function\n\n\n return fn;\n }\n }\n});","import { identity } from '../../../utils/identity';\nimport { isArray, isFunction, isObject, isString } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants'; // Private function to massage field entry into common object format\n\nvar processField = function processField(key, value) {\n var field = null;\n\n if (isString(value)) {\n // Label shortcut\n field = {\n key: key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key: key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n\n /* istanbul ignore next */\n field = {\n key: key\n };\n }\n\n return field;\n}; // We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\n\n\nexport var normalizeFields = function normalizeFields(origFields, items) {\n var fields = [];\n\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(function (f) {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n\n if (field) {\n fields.push(field);\n }\n }\n });\n } // If no field provided, take a sample from first record (if exits)\n\n\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n var sample = items[0];\n keys(sample).forEach(function (k) {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n } // Ensure we have a unique array of fields and that they have String labels\n\n\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n\n return false;\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isArray, isFunction, isString } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { makeModelMixin } from '../../../utils/model';\nimport { toInteger } from '../../../utils/number';\nimport { clone, sortKeys } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { normalizeFields } from './normalize-fields'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_ARRAY,\n defaultValue: []\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, _defineProperty({\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING)\n}, MODEL_PROP_NAME, makeProp(PROP_TYPE_ARRAY, [])))); // --- Mixin ---\n// @vue/component\n\nexport var itemsMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var items = this.items;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields: function computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj: function computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n var $parent = this.$parent;\n return this.computedFields.reduce(function (obj, f) {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n var formatter = f.formatter;\n\n if (isString(formatter) && isFunction($parent[formatter])) {\n formatter = $parent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n } // Return formatter function or `undefined` if none\n\n\n obj[f.key].formatter = formatter;\n }\n\n return obj;\n }, {});\n },\n computedItems: function computedItems() {\n // Fallback if various mixins not provided\n return (this.paginatedItems || this.sortedItems || this.filteredItems || this.localItems ||\n /* istanbul ignore next */\n []).slice();\n },\n context: function context() {\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(this.perPage, 0), 0),\n currentPage: mathMax(toInteger(this.currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items: function items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems: function computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context: function context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted: function mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter: function getFieldFormatter(key) {\n var field = this.computedFieldsObj[key]; // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n\n return field ? field.formatter : undefined;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';\nimport { mathMax } from '../../../utils/math';\nimport { toInteger } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)\n}; // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n props: props,\n computed: {\n localPaging: function localPaging() {\n return this.hasProvider ? !!this.noProviderPaging : true;\n },\n paginatedItems: function paginatedItems() {\n var items = this.sortedItems || this.filteredItems || this.localItems || [];\n var currentPage = mathMax(toInteger(this.currentPage, 1), 1);\n var perPage = mathMax(toInteger(this.perPage, 0), 0); // Apply local pagination\n\n if (this.localPaging && perPage) {\n // Grab the current page of data (which may be past filtered items limit)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n } // Return the items to display in the table\n\n\n return items;\n }\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_TABLE } from '../../../constants/components';\nimport { EVENT_NAME_REFRESH, EVENT_NAME_REFRESHED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { isArray, isFunction, isPromise } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { warn } from '../../../utils/warn';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);\nvar ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH); // --- Props ---\n\nexport var props = {\n // Passed to the context object\n // Not used by `` directly\n apiUrl: makeProp(PROP_TYPE_STRING),\n // Adds in 'Function' support\n items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),\n noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),\n noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var providerMixin = Vue.extend({\n mixins: [listenOnRootMixin],\n props: props,\n computed: {\n hasProvider: function hasProvider() {\n return isFunction(this.items);\n },\n providerTriggerContext: function providerTriggerContext() {\n // Used to trigger the provider function via a watcher. Only the fields that\n // are needed for triggering a provider update are included. Note that the\n // regular this.context is sent to the provider during fetches though, as they\n // may need all the prop info.\n var ctx = {\n apiUrl: this.apiUrl,\n filter: null,\n sortBy: null,\n sortDesc: null,\n perPage: null,\n currentPage: null\n };\n\n if (!this.noProviderFiltering) {\n // Either a string, or could be an object or array.\n ctx.filter = this.localFilter;\n }\n\n if (!this.noProviderSorting) {\n ctx.sortBy = this.localSortBy;\n ctx.sortDesc = this.localSortDesc;\n }\n\n if (!this.noProviderPaging) {\n ctx.perPage = this.perPage;\n ctx.currentPage = this.currentPage;\n }\n\n return clone(ctx);\n }\n },\n watch: {\n // Provider update triggering\n items: function items(newValue) {\n // If a new provider has been specified, trigger an update\n if (this.hasProvider || isFunction(newValue)) {\n this.$nextTick(this._providerUpdate);\n }\n },\n providerTriggerContext: function providerTriggerContext(newValue, oldValue) {\n // Trigger the provider to update as the relevant context values have changed.\n if (!looseEqual(newValue, oldValue)) {\n this.$nextTick(this._providerUpdate);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Call the items provider if necessary\n if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {\n // Fetch on mount if localItems is empty\n this._providerUpdate();\n } // Listen for global messages to tell us to force refresh the table\n\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, function (id) {\n if (id === _this.id || id === _this) {\n _this.refresh();\n }\n });\n },\n methods: {\n refresh: function refresh() {\n var items = this.items,\n refresh = this.refresh; // Public Method: Force a refresh of the provider function\n\n this.$off(EVENT_NAME_REFRESHED, refresh);\n\n if (this.computedBusy) {\n // Can't force an update when forced busy by user (busy prop === true)\n if (this.localBusy && this.hasProvider) {\n // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted\n this.$on(EVENT_NAME_REFRESHED, refresh);\n }\n } else {\n this.clearSelected();\n\n if (this.hasProvider) {\n this.$nextTick(this._providerUpdate);\n } else {\n /* istanbul ignore next */\n this.localItems = isArray(items) ? items.slice() : [];\n }\n }\n },\n // Provider related methods\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = isArray(items) ? items.slice() : [];\n this.localBusy = false;\n this.$emit(EVENT_NAME_REFRESHED); // New root emit\n\n if (this.id) {\n this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this2 = this;\n\n // Refresh the provider function items.\n if (!this.hasProvider) {\n // Do nothing if no provider\n return;\n } // If table is busy, wait until refreshed before calling again\n\n\n if (this.computedBusy) {\n // Schedule a new refresh once `refreshed` is emitted\n this.$nextTick(this.refresh);\n return;\n } // Set internal busy state\n\n\n this.localBusy = true; // Call provider function with context and optional callback after DOM is fully updated\n\n this.$nextTick(function () {\n try {\n // Call provider function passing it the context and optional callback\n var data = _this2.items(_this2.context, _this2._providerSetLocal);\n\n if (isPromise(data)) {\n // Provider returned Promise\n data.then(function (items) {\n // Provider resolved with items\n _this2._providerSetLocal(items);\n });\n } else if (isArray(data)) {\n // Provider returned Array data\n _this2._providerSetLocal(data);\n } else {\n /* istanbul ignore if */\n if (_this2.items.length !== 2) {\n // Check number of arguments provider function requested\n // Provider not using callback (didn't request second argument), so we clear\n // busy state as most likely there was an error in the provider function\n\n /* istanbul ignore next */\n warn(\"Provider function didn't request callback and did not return a promise or data.\", NAME_TABLE);\n _this2.localBusy = false;\n }\n }\n } catch (e)\n /* istanbul ignore next */\n {\n // Provider function borked on us, so we spew out a warning\n // and clear the busy state\n warn(\"Provider function error [\".concat(e.name, \"] \").concat(e.message, \".\"), NAME_TABLE);\n _this2.localBusy = false;\n\n _this2.$off(EVENT_NAME_REFRESHED, _this2.refresh);\n }\n });\n }\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED, EVENT_NAME_FILTERED, EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_SELECTED } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes, createArray } from '../../../utils/array';\nimport { identity } from '../../../utils/identity';\nimport { isArray, isNumber } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax, mathMin } from '../../../utils/math';\nimport { makeProp } from '../../../utils/props';\nimport { sanitizeRow } from './sanitize-row'; // --- Constants ---\n\nvar SELECT_MODES = ['range', 'multi', 'single']; // --- Props ---\n\nexport var props = {\n // Disable use of click handlers for row selection\n noSelectOnClick: makeProp(PROP_TYPE_BOOLEAN, false),\n selectMode: makeProp(PROP_TYPE_STRING, 'multi', function (value) {\n return arrayIncludes(SELECT_MODES, value);\n }),\n selectable: makeProp(PROP_TYPE_BOOLEAN, false),\n selectedVariant: makeProp(PROP_TYPE_STRING, 'active')\n}; // --- Mixin ---\n// @vue/component\n\nexport var selectableMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n selectedRows: [],\n selectedLastRow: -1\n };\n },\n computed: {\n isSelectable: function isSelectable() {\n return this.selectable && this.selectMode;\n },\n hasSelectableRowClick: function hasSelectableRowClick() {\n return this.isSelectable && !this.noSelectOnClick;\n },\n supportsSelectableRows: function supportsSelectableRows() {\n return true;\n },\n selectableHasSelection: function selectableHasSelection() {\n var selectedRows = this.selectedRows;\n return this.isSelectable && selectedRows && selectedRows.length > 0 && selectedRows.some(identity);\n },\n selectableIsMultiSelect: function selectableIsMultiSelect() {\n return this.isSelectable && arrayIncludes(['range', 'multi'], this.selectMode);\n },\n selectableTableClasses: function selectableTableClasses() {\n var _ref;\n\n var isSelectable = this.isSelectable;\n return _ref = {\n 'b-table-selectable': isSelectable\n }, _defineProperty(_ref, \"b-table-select-\".concat(this.selectMode), isSelectable), _defineProperty(_ref, 'b-table-selecting', this.selectableHasSelection), _defineProperty(_ref, 'b-table-selectable-no-click', isSelectable && !this.hasSelectableRowClick), _ref;\n },\n selectableTableAttrs: function selectableTableAttrs() {\n return {\n // TODO:\n // Should this attribute not be included when no-select-on-click is set\n // since this attribute implies keyboard navigation?\n 'aria-multiselectable': !this.isSelectable ? null : this.selectableIsMultiSelect ? 'true' : 'false'\n };\n }\n },\n watch: {\n computedItems: function computedItems(newValue, oldValue) {\n // Reset for selectable\n var equal = false;\n\n if (this.isSelectable && this.selectedRows.length > 0) {\n // Quick check against array length\n equal = isArray(newValue) && isArray(oldValue) && newValue.length === oldValue.length;\n\n for (var i = 0; equal && i < newValue.length; i++) {\n // Look for the first non-loosely equal row, after ignoring reserved fields\n equal = looseEqual(sanitizeRow(newValue[i]), sanitizeRow(oldValue[i]));\n }\n }\n\n if (!equal) {\n this.clearSelected();\n }\n },\n selectable: function selectable(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(newValue);\n },\n selectMode: function selectMode() {\n this.clearSelected();\n },\n hasSelectableRowClick: function hasSelectableRowClick(newValue) {\n this.clearSelected();\n this.setSelectionHandlers(!newValue);\n },\n selectedRows: function selectedRows(_selectedRows, oldValue) {\n var _this = this;\n\n if (this.isSelectable && !looseEqual(_selectedRows, oldValue)) {\n var items = []; // `.forEach()` skips over non-existent indices (on sparse arrays)\n\n _selectedRows.forEach(function (v, idx) {\n if (v) {\n items.push(_this.computedItems[idx]);\n }\n });\n\n this.$emit(EVENT_NAME_ROW_SELECTED, items);\n }\n }\n },\n beforeMount: function beforeMount() {\n // Set up handlers if needed\n if (this.isSelectable) {\n this.setSelectionHandlers(true);\n }\n },\n methods: {\n // Public methods\n selectRow: function selectRow(index) {\n // Select a particular row (indexed based on computedItems)\n if (this.isSelectable && isNumber(index) && index >= 0 && index < this.computedItems.length && !this.isRowSelected(index)) {\n var selectedRows = this.selectableIsMultiSelect ? this.selectedRows.slice() : [];\n selectedRows[index] = true;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n unselectRow: function unselectRow(index) {\n // Un-select a particular row (indexed based on `computedItems`)\n if (this.isSelectable && isNumber(index) && this.isRowSelected(index)) {\n var selectedRows = this.selectedRows.slice();\n selectedRows[index] = false;\n this.selectedLastClicked = -1;\n this.selectedRows = selectedRows;\n }\n },\n selectAllRows: function selectAllRows() {\n var length = this.computedItems.length;\n\n if (this.isSelectable && length > 0) {\n this.selectedLastClicked = -1;\n this.selectedRows = this.selectableIsMultiSelect ? createArray(length, true) : [true];\n }\n },\n isRowSelected: function isRowSelected(index) {\n // Determine if a row is selected (indexed based on `computedItems`)\n return !!(isNumber(index) && this.selectedRows[index]);\n },\n clearSelected: function clearSelected() {\n // Clear any active selected row(s)\n this.selectedLastClicked = -1;\n this.selectedRows = [];\n },\n // Internal private methods\n selectableRowClasses: function selectableRowClasses(index) {\n if (this.isSelectable && this.isRowSelected(index)) {\n var variant = this.selectedVariant;\n return _defineProperty({\n 'b-table-row-selected': true\n }, \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(variant), variant);\n }\n\n return {};\n },\n selectableRowAttrs: function selectableRowAttrs(index) {\n return {\n 'aria-selected': !this.isSelectable ? null : this.isRowSelected(index) ? 'true' : 'false'\n };\n },\n setSelectionHandlers: function setSelectionHandlers(on) {\n var method = on && !this.noSelectOnClick ? '$on' : '$off'; // Handle row-clicked event\n\n this[method](EVENT_NAME_ROW_CLICKED, this.selectionHandler); // Clear selection on filter, pagination, and sort changes\n\n this[method](EVENT_NAME_FILTERED, this.clearSelected);\n this[method](EVENT_NAME_CONTEXT_CHANGED, this.clearSelected);\n },\n selectionHandler: function selectionHandler(item, index, event) {\n /* istanbul ignore if: should never happen */\n if (!this.isSelectable || this.noSelectOnClick) {\n // Don't do anything if table is not in selectable mode\n this.clearSelected();\n return;\n }\n\n var selectMode = this.selectMode,\n selectedLastRow = this.selectedLastRow;\n var selectedRows = this.selectedRows.slice();\n var selected = !selectedRows[index]; // Note 'multi' mode needs no special event handling\n\n if (selectMode === 'single') {\n selectedRows = [];\n } else if (selectMode === 'range') {\n if (selectedLastRow > -1 && event.shiftKey) {\n // range\n for (var idx = mathMin(selectedLastRow, index); idx <= mathMax(selectedLastRow, index); idx++) {\n selectedRows[idx] = true;\n }\n\n selected = true;\n } else {\n if (!(event.ctrlKey || event.metaKey)) {\n // Clear range selection if any\n selectedRows = [];\n selected = true;\n }\n\n this.selectedLastRow = selected ? index : -1;\n }\n }\n\n selectedRows[index] = selected;\n this.selectedRows = selectedRows;\n }\n }\n});","var _props, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED, EVENT_NAME_SORT_CHANGED, MODEL_EVENT_NAME_PREFIX } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../../constants/props';\nimport { arrayIncludes } from '../../../utils/array';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { stableSort } from '../../../utils/stable-sort';\nimport { trim } from '../../../utils/string';\nimport { defaultSortCompare } from './default-sort-compare'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SORT_BY = 'sortBy';\nvar MODEL_EVENT_NAME_SORT_BY = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_BY;\nvar MODEL_PROP_NAME_SORT_DESC = 'sortDesc';\nvar MODEL_EVENT_NAME_SORT_DESC = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SORT_DESC;\nvar SORT_DIRECTION_ASC = 'asc';\nvar SORT_DIRECTION_DESC = 'desc';\nvar SORT_DIRECTION_LAST = 'last';\nvar SORT_DIRECTIONS = [SORT_DIRECTION_ASC, SORT_DIRECTION_DESC, SORT_DIRECTION_LAST]; // --- Props ---\n\nexport var props = (_props = {\n labelSortAsc: makeProp(PROP_TYPE_STRING, 'Click to sort Ascending'),\n labelSortClear: makeProp(PROP_TYPE_STRING, 'Click to clear sorting'),\n labelSortDesc: makeProp(PROP_TYPE_STRING, 'Click to sort Descending'),\n noFooterSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n noLocalSorting: makeProp(PROP_TYPE_BOOLEAN, false),\n // Another prop that should have had a better name\n // It should be `noSortClear` (on non-sortable headers)\n // We will need to make sure the documentation is clear on what\n // this prop does (as well as in the code for future reference)\n noSortReset: makeProp(PROP_TYPE_BOOLEAN, false)\n}, _defineProperty(_props, MODEL_PROP_NAME_SORT_BY, makeProp(PROP_TYPE_STRING)), _defineProperty(_props, \"sortCompare\", makeProp(PROP_TYPE_FUNCTION)), _defineProperty(_props, \"sortCompareLocale\", makeProp(PROP_TYPE_ARRAY_STRING)), _defineProperty(_props, \"sortCompareOptions\", makeProp(PROP_TYPE_OBJECT, {\n numeric: true\n})), _defineProperty(_props, MODEL_PROP_NAME_SORT_DESC, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortDirection\", makeProp(PROP_TYPE_STRING, SORT_DIRECTION_ASC, function (value) {\n return arrayIncludes(SORT_DIRECTIONS, value);\n})), _defineProperty(_props, \"sortIconLeft\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_props, \"sortNullLast\", makeProp(PROP_TYPE_BOOLEAN, false)), _props); // --- Mixin ---\n// @vue/component\n\nexport var sortingMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localSortBy: this[MODEL_PROP_NAME_SORT_BY] || '',\n localSortDesc: this[MODEL_PROP_NAME_SORT_DESC] || false\n };\n },\n computed: {\n localSorting: function localSorting() {\n return this.hasProvider ? !!this.noProviderSorting : !this.noLocalSorting;\n },\n isSortable: function isSortable() {\n return this.computedFields.some(function (f) {\n return f.sortable;\n });\n },\n // Sorts the filtered items and returns a new array of the sorted items\n // When not sorted, the original items array will be returned\n sortedItems: function sortedItems() {\n var sortBy = this.localSortBy,\n sortDesc = this.localSortDesc,\n locale = this.sortCompareLocale,\n nullLast = this.sortNullLast,\n sortCompare = this.sortCompare,\n localSorting = this.localSorting;\n var items = (this.filteredItems || this.localItems || []).slice();\n\n var localeOptions = _objectSpread(_objectSpread({}, this.sortCompareOptions), {}, {\n usage: 'sort'\n });\n\n if (sortBy && localSorting) {\n var field = this.computedFieldsObj[sortBy] || {};\n var sortByFormatted = field.sortByFormatted;\n var formatter = isFunction(sortByFormatted) ?\n /* istanbul ignore next */\n sortByFormatted : sortByFormatted ? this.getFieldFormatter(sortBy) : undefined; // `stableSort` returns a new array, and leaves the original array intact\n\n return stableSort(items, function (a, b) {\n var result = null; // Call user provided `sortCompare` routine first\n\n if (isFunction(sortCompare)) {\n // TODO:\n // Change the `sortCompare` signature to the one of `defaultSortCompare`\n // with the next major version bump\n result = sortCompare(a, b, sortBy, sortDesc, formatter, localeOptions, locale);\n } // Fallback to built-in `defaultSortCompare` if `sortCompare`\n // is not defined or returns `null`/`false`\n\n\n if (isUndefinedOrNull(result) || result === false) {\n result = defaultSortCompare(a, b, {\n sortBy: sortBy,\n formatter: formatter,\n locale: locale,\n localeOptions: localeOptions,\n nullLast: nullLast\n });\n } // Negate result if sorting in descending order\n\n\n return (result || 0) * (sortDesc ? -1 : 1);\n });\n }\n\n return items;\n }\n },\n watch: (_watch = {\n /* istanbul ignore next: pain in the butt to test */\n isSortable: function isSortable(newValue) {\n if (newValue) {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n } else {\n this.$off(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n }\n }, _defineProperty(_watch, MODEL_PROP_NAME_SORT_DESC, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortDesc) {\n return;\n }\n\n this.localSortDesc = newValue || false;\n }), _defineProperty(_watch, MODEL_PROP_NAME_SORT_BY, function (newValue) {\n /* istanbul ignore next */\n if (newValue === this.localSortBy) {\n return;\n }\n\n this.localSortBy = newValue || '';\n }), _defineProperty(_watch, \"localSortDesc\", function localSortDesc(newValue, oldValue) {\n // Emit update to sort-desc.sync\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_DESC, newValue);\n }\n }), _defineProperty(_watch, \"localSortBy\", function localSortBy(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(MODEL_EVENT_NAME_SORT_BY, newValue);\n }\n }), _watch),\n created: function created() {\n if (this.isSortable) {\n this.$on(EVENT_NAME_HEAD_CLICKED, this.handleSort);\n }\n },\n methods: {\n // Handlers\n // Need to move from thead-mixin\n handleSort: function handleSort(key, field, event, isFoot) {\n var _this = this;\n\n if (!this.isSortable) {\n /* istanbul ignore next */\n return;\n }\n\n if (isFoot && this.noFooterSorting) {\n return;\n } // TODO: make this tri-state sorting\n // cycle desc => asc => none => desc => ...\n\n\n var sortChanged = false;\n\n var toggleLocalSortDesc = function toggleLocalSortDesc() {\n var sortDirection = field.sortDirection || _this.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n _this.localSortDesc = false;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n _this.localSortDesc = true;\n } else {// sortDirection === 'last'\n // Leave at last sort direction from previous column\n }\n };\n\n if (field.sortable) {\n var sortKey = !this.localSorting && field.sortKey ? field.sortKey : key;\n\n if (this.localSortBy === sortKey) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = sortKey; // this.localSortDesc = false\n\n toggleLocalSortDesc();\n }\n\n sortChanged = true;\n } else if (this.localSortBy && !this.noSortReset) {\n this.localSortBy = '';\n toggleLocalSortDesc();\n sortChanged = true;\n }\n\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit(EVENT_NAME_SORT_CHANGED, this.context);\n }\n },\n // methods to compute classes and attrs for thead>th cells\n sortTheadThClasses: function sortTheadThClasses(key, field, isFoot) {\n return {\n // If sortable and sortIconLeft are true, then place sort icon on the left\n 'b-table-sort-icon-left': field.sortable && this.sortIconLeft && !(isFoot && this.noFooterSorting)\n };\n },\n sortTheadThAttrs: function sortTheadThAttrs(key, field, isFoot) {\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No attributes if not a sortable table\n return {};\n }\n\n var sortable = field.sortable; // Assemble the aria-sort attribute value\n\n var ariaSort = sortable && this.localSortBy === key ? this.localSortDesc ? 'descending' : 'ascending' : sortable ? 'none' : null; // Return the attribute\n\n return {\n 'aria-sort': ariaSort\n };\n },\n sortTheadThLabel: function sortTheadThLabel(key, field, isFoot) {\n // A label to be placed in an `.sr-only` element in the header cell\n if (!this.isSortable || isFoot && this.noFooterSorting) {\n // No label if not a sortable table\n return null;\n }\n\n var sortable = field.sortable; // The correctness of these labels is very important for screen-reader users.\n\n var labelSorting = '';\n\n if (sortable) {\n if (this.localSortBy === key) {\n // currently sorted sortable column.\n labelSorting = this.localSortDesc ? this.labelSortAsc : this.labelSortDesc;\n } else {\n // Not currently sorted sortable column.\n // Not using nested ternary's here for clarity/readability\n // Default for ariaLabel\n labelSorting = this.localSortDesc ? this.labelSortDesc : this.labelSortAsc; // Handle sortDirection setting\n\n var sortDirection = this.sortDirection || field.sortDirection;\n\n if (sortDirection === SORT_DIRECTION_ASC) {\n labelSorting = this.labelSortAsc;\n } else if (sortDirection === SORT_DIRECTION_DESC) {\n labelSorting = this.labelSortDesc;\n }\n }\n } else if (!this.noSortReset) {\n // Non sortable column\n labelSorting = this.localSortBy ? this.labelSortClear : '';\n } // Return the sr-only sort label or null if no label\n\n\n return trim(labelSorting) || null;\n }\n }\n});","import { get } from '../../../utils/get';\nimport { isDate, isFunction, isNumber, isNumeric, isUndefinedOrNull } from '../../../utils/inspect';\nimport { toFloat } from '../../../utils/number';\nimport { stringifyObjectValues } from '../../../utils/stringify-object-values';\n\nvar normalizeValue = function normalizeValue(value) {\n if (isUndefinedOrNull(value)) {\n return '';\n }\n\n if (isNumeric(value)) {\n return toFloat(value, value);\n }\n\n return value;\n}; // Default sort compare routine\n//\n// TODO:\n// Add option to sort by multiple columns (tri-state per column,\n// plus order of columns in sort) where `sortBy` could be an array\n// of objects `[ {key: 'foo', sortDir: 'asc'}, {key:'bar', sortDir: 'desc'} ...]`\n// or an array of arrays `[ ['foo','asc'], ['bar','desc'] ]`\n// Multisort will most likely be handled in `mixin-sort.js` by\n// calling this method for each sortBy\n\n\nexport var defaultSortCompare = function defaultSortCompare(a, b) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? null : _ref$sortBy,\n _ref$formatter = _ref.formatter,\n formatter = _ref$formatter === void 0 ? null : _ref$formatter,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? undefined : _ref$locale,\n _ref$localeOptions = _ref.localeOptions,\n localeOptions = _ref$localeOptions === void 0 ? {} : _ref$localeOptions,\n _ref$nullLast = _ref.nullLast,\n nullLast = _ref$nullLast === void 0 ? false : _ref$nullLast;\n\n // Get the value by `sortBy`\n var aa = get(a, sortBy, null);\n var bb = get(b, sortBy, null); // Apply user-provided formatter\n\n if (isFunction(formatter)) {\n aa = formatter(aa, sortBy, a);\n bb = formatter(bb, sortBy, b);\n } // Internally normalize value\n // `null` / `undefined` => ''\n // `'0'` => `0`\n\n\n aa = normalizeValue(aa);\n bb = normalizeValue(bb);\n\n if (isDate(aa) && isDate(bb) || isNumber(aa) && isNumber(bb)) {\n // Special case for comparing dates and numbers\n // Internally dates are compared via their epoch number values\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n } else if (nullLast && aa === '' && bb !== '') {\n // Special case when sorting `null` / `undefined` / '' last\n return 1;\n } else if (nullLast && aa !== '' && bb === '') {\n // Special case when sorting `null` / `undefined` / '' last\n return -1;\n } // Do localized string comparison\n\n\n return stringifyObjectValues(aa).localeCompare(stringifyObjectValues(bb), locale, localeOptions);\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props'; // --- Props ---\n\nexport var props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n}; // --- Mixin ---\n// @vue/component\n\nexport var stackedMixin = Vue.extend({\n props: props,\n computed: {\n isStacked: function isStacked() {\n var stacked = this.stacked; // `true` when always stacked, or returns breakpoint specified\n\n return stacked === '' ? true : stacked;\n },\n isStackedAlways: function isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses: function stackedTableClasses() {\n var isStackedAlways = this.isStackedAlways;\n return _defineProperty({\n 'b-table-stacked': isStackedAlways\n }, \"b-table-stacked-\".concat(this.stacked), !isStackedAlways && this.isStacked);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs'; // Main `` render mixin\n// Includes all main table styling options\n// --- Props ---\n\nexport var props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tableRendererMixin = Vue.extend({\n mixins: [attrsMixin],\n provide: function provide() {\n return {\n bvTable: this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `
`\n inheritAttrs: false,\n props: props,\n computed: {\n // Layout related computed props\n isResponsive: function isResponsive() {\n var responsive = this.responsive;\n responsive = responsive === '' ? true : responsive;\n return this.isStacked ? false : responsive;\n },\n isStickyHeader: function isStickyHeader() {\n var stickyHeader = this.stickyHeader;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses: function wrapperClasses() {\n var isResponsive = this.isResponsive;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? \"table-responsive-\".concat(this.responsive) : ''].filter(identity);\n },\n wrapperStyles: function wrapperStyles() {\n var isStickyHeader = this.isStickyHeader;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses: function tableClasses() {\n var hover = this.hover,\n tableVariant = this.tableVariant;\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !this.computedBusy;\n return [// User supplied classes\n this.tableClass, // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n border: this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? \"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(tableVariant) : '', // Stacked table classes\n this.stackedTableClasses, // Selectable classes\n this.selectableTableClasses];\n },\n tableAttrs: function tableAttrs() {\n var items = this.computedItems,\n filteredItems = this.filteredItems,\n fields = this.computedFields,\n selectableTableAttrs = this.selectableTableAttrs; // Preserve user supplied aria-describedby, if provided in `$attrs`\n\n var adb = [(this.bvAttrs || {})['aria-describedby'], this.captionId].filter(identity).join(' ') || null;\n var ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': toString(fields.length),\n 'aria-describedby': adb\n };\n var rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return _objectSpread(_objectSpread(_objectSpread({\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount\n }, this.bvAttrs), {}, {\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: 'table'\n }, ariaAttrs), selectableTableAttrs);\n }\n },\n render: function render(h) {\n var wrapperClasses = this.wrapperClasses,\n renderCaption = this.renderCaption,\n renderColgroup = this.renderColgroup,\n renderThead = this.renderThead,\n renderTbody = this.renderTbody,\n renderTfoot = this.renderTfoot;\n var $content = [];\n\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `
`\n\n $content.push(renderColgroup ? renderColgroup() : null); // Build the ``\n\n $content.push(renderThead ? renderThead() : null); // Build the ``\n\n $content.push(renderTbody ? renderTbody() : null); // Build the ``\n\n $content.push(renderTfoot ? renderTfoot() : null);\n } // Assemble `
` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null); // Build the `
`\n\n\n var $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity)); // Add responsive/sticky wrapper if needed and return table\n\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTbody = /*#__PURE__*/Vue.extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTbody: function isTbody() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup: function isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs: function tbodyAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n },\n tbodyProps: function tbodyProps() {\n var tbodyTransitionProps = this.tbodyTransitionProps;\n return tbodyTransitionProps ? _objectSpread(_objectSpread({}, tbodyTransitionProps), {}, {\n tag: 'tbody'\n }) : {};\n }\n },\n render: function render(h) {\n var data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});","import { closest, getAttr, getById, matches, select } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\nvar TABLE_TAG_NAMES = ['TD', 'TH', 'TR']; // Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\n\nexport var filterEvent = function filterEvent(event) {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n\n var el = event.target; // Exit early when element is disabled or a table element\n\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n } // Ignore the click when it was inside a dropdown menu\n\n\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n\n var label = el.tagName === 'LABEL' ? el : closest('label', el); // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n\n if (label) {\n var labelFor = getAttr(label, 'for');\n var input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n\n if (input && !input.disabled) {\n return true;\n }\n } // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n\n\n return matches(el, EVENT_FILTER);\n};","import { getSel, isElement } from '../../../utils/dom'; // Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\n\nexport var textSelectionActive = function textSelectionActive() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ?\n /* istanbul ignore next */\n sel.containsNode(el, true) : false;\n};","import { Vue } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BTd, props as BTdProps } from './td'; // --- Props ---\n\nexport var props = makePropsConfigurable(BTdProps, NAME_TH); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTh = /*#__PURE__*/Vue.extend({\n name: NAME_TH,\n extends: BTd,\n props: props,\n computed: {\n tag: function tag() {\n return 'th';\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS } from './constants'; // --- Props ---\n\nexport var props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([].concat(_toConsumableArray(PROP_TYPE_ARRAY_OBJECT_STRING), [PROP_TYPE_FUNCTION]))\n}; // --- Mixin ---\n// @vue/component\n\nexport var tbodyRowMixin = Vue.extend({\n props: props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues: function getTdValues(item, key, tdValue, defaultValue) {\n var $parent = this.$parent;\n\n if (tdValue) {\n var value = get(item, key, '');\n\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction($parent[tdValue])) {\n return $parent[tdValue](value, key, item);\n }\n\n return tdValue;\n }\n\n return defaultValue;\n },\n getThValues: function getThValues(item, key, thValue, type, defaultValue) {\n var $parent = this.$parent;\n\n if (thValue) {\n var value = get(item, key, '');\n\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction($parent[thValue])) {\n return $parent[thValue](value, key, item, type);\n }\n\n return thValue;\n }\n\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = this.getFieldFormatter(key);\n var value = get(item, key, null);\n\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory: function toggleDetailsFactory(hasDetailsSlot, item) {\n var _this = this;\n\n // Returns a function to toggle a row's details slot\n return function () {\n if (hasDetailsSlot) {\n _this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered: function rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered: function rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEvtStopped` from tbody mixin\n if (!this.tbodyRowEvtStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell: function renderTbodyRowCell(field, colIndex, item, rowIndex) {\n var _this2 = this;\n\n var isStacked = this.isStacked;\n var key = field.key,\n label = field.label,\n isRowHeader = field.isRowHeader;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var formatted = this.getFormattedValue(item, field);\n var stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn; // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n\n var cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n var cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n var data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: _objectSpread({\n 'aria-colindex': String(colIndex + 1)\n }, isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {})),\n key: \"row-\".concat(rowIndex, \"-cell-\").concat(colIndex, \"-\").concat(key)\n };\n\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null; // Add in the variant class\n\n if (cellVariant) {\n data.class.push(\"\".concat(this.dark ? 'bg' : 'table', \"-\").concat(cellVariant));\n }\n }\n\n var slotScope = {\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n\n slotScope.selectRow = function () {\n return _this2.selectRow(rowIndex);\n };\n\n slotScope.unselectRow = function () {\n return _this2.unselectRow(rowIndex);\n };\n } // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n\n\n var slotName = this.$_bodyFieldSlotNameCache[key];\n var $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n } // Render either a td or th cell\n\n\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow: function renderTbodyRow(item, rowIndex) {\n var _this3 = this;\n\n var fields = this.computedFields,\n striped = this.striped,\n primaryKey = this.primaryKey,\n currentPage = this.currentPage,\n perPage = this.perPage,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement;\n var hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n var rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n var hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || this.hasSelectableRowClick; // We can return more than one TR if rowDetails enabled\n\n var $rows = []; // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n\n var detailsId = rowShowDetails ? this.safeId(\"_details_\".concat(rowIndex, \"_\")) : null; // For each item data field in row\n\n var $tds = fields.map(function (field, colIndex) {\n return _this3.renderTbodyRowCell(field, colIndex, item, rowIndex);\n }); // Calculate the row number in the dataset (indexed from 1)\n\n var ariaRowIndex = null;\n\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n } // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n\n\n var primaryKeyValue = toString(get(item, primaryKey)) || null;\n var rowKey = primaryKeyValue || toString(rowIndex); // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n\n var rowId = primaryKeyValue ? this.safeId(\"_row_\".concat(primaryKeyValue)) : null; // Selectable classes and attributes\n\n var selectableClasses = this.selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n var selectableAttrs = this.selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {}; // Additional classes and attributes\n\n var userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n var userTrAttrs = isFunction(tbodyTrAttr) ?\n /* istanbul ignore next */\n tbodyTrAttr(item, 'row') : tbodyTrAttr; // Add the item row\n\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({\n id: rowId\n }, userTrAttrs), {}, {\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex\n }, selectableAttrs),\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: \"__b-table-row-\".concat(rowKey, \"__\"),\n ref: 'item-rows',\n refInFor: true\n }, $tds)); // Row Details slot\n\n if (rowShowDetails) {\n var detailsScope = {\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n }; // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n\n if (this.supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n\n detailsScope.selectRow = function () {\n return _this3.selectRow(rowIndex);\n };\n\n detailsScope.unselectRow = function () {\n return _this3.unselectRow(rowIndex);\n };\n } // Render the details slot in a TD\n\n\n var $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]); // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n\n if (striped) {\n $rows.push( // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: \"__b-table-details-stripe__\".concat(rowKey)\n }));\n } // Add the actual details row\n\n\n var userDetailsTrClasses = isFunction(this.tbodyTrClass) ?\n /* istanbul ignore next */\n this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n var userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ?\n /* istanbul ignore next */\n this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: _objectSpread(_objectSpread({}, userDetailsTrAttrs), {}, {\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n }),\n key: \"__b-table-details__\".concat(rowKey)\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n } // Return the row(s)\n\n\n return $rows;\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED } from '../../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_SPACE, CODE_UP } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { arrayIncludes, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, isActiveElement, isElement } from '../../../utils/dom';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { BTbody, props as BTbodyProps } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { tbodyRowMixin, props as tbodyRowProps } from './mixin-tbody-row'; // --- Helper methods ---\n\nvar getCellSlotName = function getCellSlotName(value) {\n return \"cell(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread({}, BTbodyProps), tbodyRowProps), {}, {\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})); // --- Mixin ---\n// @vue/component\n\nexport var tbodyMixin = Vue.extend({\n mixins: [tbodyRowMixin],\n props: props,\n beforeDestroy: function beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs: function getTbodyTrs() {\n var $refs = this.$refs;\n var tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n var trs = ($refs['item-rows'] || []).map(function (tr) {\n return tr.$el || tr;\n });\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? arrayFrom(tbody.children).filter(function (tr) {\n return arrayIncludes(trs, tr);\n }) :\n /* istanbul ignore next */\n [];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex: function getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n\n var tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent: function emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n var rowIndex = this.getTbodyTrIndex(event.target);\n\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n var item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEvtStopped: function tbodyRowEvtStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown: function onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n var target = event.target,\n keyCode = event.keyCode;\n\n if (this.tbodyRowEvtStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n var rowIndex = this.getTbodyTrIndex(target);\n\n if (rowIndex > -1) {\n stopEvent(event);\n var trs = this.getTbodyTrs();\n var shift = event.shiftKey;\n\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked: function onTBodyRowClicked(event) {\n // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n if (this.tbodyRowEvtStopped(event) || filterEvent(event) || textSelectionActive(this.$el)) {\n return;\n }\n\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked: function onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu: function onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEvtStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked: function onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEvtStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody: function renderTbody() {\n var _this = this;\n\n var items = this.computedItems,\n renderBusy = this.renderBusy,\n renderTopRow = this.renderTopRow,\n renderEmpty = this.renderEmpty,\n renderBottomRow = this.renderBottomRow;\n var h = this.$createElement;\n var hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || this.hasSelectableRowClick; // Prepare the tbody rows\n\n var $rows = []; // Add the item data rows or the busy slot\n\n var $busy = renderBusy ? renderBusy() : null;\n\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n var cache = {};\n var defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(function (field) {\n var key = field.key;\n var slotName = getCellSlotName(key);\n var lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = _this.hasNormalizedSlot(slotName) ? slotName : _this.hasNormalizedSlot(lowercaseSlotName) ?\n /* istanbul ignore next */\n lowercaseSlotName : defaultSlotName;\n }); // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n\n this.$_bodyFieldSlotNameCache = cache; // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderTopRow ? renderTopRow() : h()); // Render the rows\n\n items.forEach(function (item, rowIndex) {\n // Render the individual item row (rows if details slot)\n $rows.push(_this.renderTbodyRow(item, rowIndex));\n }); // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n\n $rows.push(renderEmpty ? renderEmpty() : h()); // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n } // Note: these events will only emit if a listener is registered\n\n\n var handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n\n }; // Add in click/keydown listeners if needed\n\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n } // Assemble rows into the tbody\n\n\n var $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(BTbodyProps, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows); // Return the assembled tbody\n\n return $tbody;\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BTfoot = /*#__PURE__*/Vue.extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isTfoot: function isTfoot() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Sticky headers are only supported in thead\n isStickyHeader: function isStickyHeader() {\n return false;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses: function tfootClasses() {\n return [this.footVariant ? \"thead-\".concat(this.footVariant) : null];\n },\n tfootAttrs: function tfootAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'rowgroup'\n });\n }\n },\n render: function render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","import { Vue } from '../../../vue';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot'; // --- Props ---\n\nexport var props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var tfootMixin = Vue.extend({\n props: props,\n methods: {\n renderTFootCustom: function renderTFootCustom() {\n var h = this.$createElement;\n\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n\n return h();\n },\n renderTfoot: function renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Also sniffed by `` / `` / ``\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD); // --- Main component ---\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\n\nexport var BThead = /*#__PURE__*/Vue.extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTableRowGroup: this\n };\n },\n inject: {\n // Sniffed by `` / `` / ``\n bvTable: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n // Sniffed by `` / `` / ``\n isThead: function isThead() {\n return true;\n },\n // Sniffed by `` / `` / ``\n isDark: function isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `` / `` / ``\n isStacked: function isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `` / `` / ``\n isResponsive: function isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader: function isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader: function hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `` / `` / ``\n tableVariant: function tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses: function theadClasses() {\n return [this.headVariant ? \"thead-\".concat(this.headVariant) : null];\n },\n theadAttrs: function theadAttrs() {\n return _objectSpread({\n role: 'rowgroup'\n }, this.bvAttrs);\n }\n },\n render: function render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active'; // --- Helper methods ---\n\nvar getHeadSlotName = function getHeadSlotName(value) {\n return \"head(\".concat(value || '', \")\");\n};\n\nvar getFootSlotName = function getFootSlotName(value) {\n return \"foot(\".concat(value || '', \")\");\n}; // --- Props ---\n\n\nexport var props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var theadMixin = Vue.extend({\n props: props,\n methods: {\n fieldClasses: function fieldClasses(field) {\n // Header field (
) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked: function headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead: function renderThead() {\n var _this = this;\n\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var fields = this.computedFields,\n isSortable = this.isSortable,\n isSelectable = this.isSelectable,\n headVariant = this.headVariant,\n footVariant = this.footVariant,\n headRowVariant = this.headRowVariant,\n footRowVariant = this.footRowVariant;\n var h = this.$createElement; // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n\n var hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED); // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n\n var selectAllRows = isSelectable ? this.selectAllRows : noop;\n var clearSelected = isSelectable ? this.clearSelected : noop; // Helper function to generate a field cell\n\n var makeCell = function makeCell(field, colIndex) {\n var label = field.label,\n labelHtml = field.labelHtml,\n variant = field.variant,\n stickyColumn = field.stickyColumn,\n key = field.key;\n var ariaLabel = null;\n\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n\n var on = {};\n\n if (hasHeadClickListener) {\n on.click = function (event) {\n _this.headClicked(event, field, isFoot);\n };\n\n on.keydown = function (event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n _this.headClicked(event, field, isFoot);\n }\n };\n }\n\n var sortAttrs = isSortable ? _this.sortTheadThAttrs(key, field, isFoot) : {};\n var sortClass = isSortable ? _this.sortTheadThClasses(key, field, isFoot) : null;\n var sortLabel = isSortable ? _this.sortTheadThLabel(key, field, isFoot) : null;\n var data = {\n class: [_this.fieldClasses(field), sortClass],\n props: {\n variant: variant,\n stickyColumn: stickyColumn\n },\n style: field.thStyle || {},\n attrs: _objectSpread(_objectSpread({\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel\n }, _this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {})), sortAttrs),\n on: on,\n key: key\n }; // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n\n var slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()]; // Footer will fallback to header slot names\n\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName()].concat(_toConsumableArray(slotNames));\n }\n\n var scope = {\n label: label,\n column: key,\n field: field,\n isFoot: isFoot,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n var $content = _this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n var $srLabel = sortLabel ? h('span', {\n staticClass: 'sr-only'\n }, \" (\".concat(sortLabel, \")\")) : null; // Return the header cell\n\n return h(BTh, data, [$content, $srLabel].filter(identity));\n }; // Generate the array of cells\n\n\n var $cells = fields.map(makeCell).filter(identity); // Generate the row(s)\n\n var $trs = [];\n\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant :\n /* istanbul ignore next */\n footRowVariant\n }\n }, $cells));\n } else {\n var scope = {\n columns: fields.length,\n fields: fields,\n // Add in row select methods\n selectAllRows: selectAllRows,\n clearSelected: clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});","import { Vue } from '../../../vue';\nimport { SLOT_NAME_TOP_ROW } from '../../../constants/slots';\nimport { isFunction } from '../../../utils/inspect';\nimport { BTr } from '../tr'; // --- Props ---\n\nexport var props = {}; // --- Mixin ---\n// @vue/component\n\nexport var topRowMixin = Vue.extend({\n methods: {\n renderTopRow: function renderTopRow() {\n var fields = this.computedFields,\n stacked = this.stacked,\n tbodyTrClass = this.tbodyTrClass,\n tbodyTrAttr = this.tbodyTrAttr;\n var h = this.$createElement; // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in *always* stacked mode, we don't bother rendering the row\n\n if (!this.hasNormalizedSlot(SLOT_NAME_TOP_ROW) || stacked === true || stacked === '') {\n return h();\n }\n\n return h(BTr, {\n staticClass: 'b-table-top-row',\n class: [isFunction(tbodyTrClass) ? tbodyTrClass(null, 'row-top') : tbodyTrClass],\n attrs: isFunction(tbodyTrAttr) ? tbodyTrAttr(null, 'row-top') : tbodyTrAttr,\n key: 'b-top-row'\n }, [this.normalizeSlot(SLOT_NAME_TOP_ROW, {\n columns: fields.length,\n fields: fields\n })]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TABLE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { bottomRowMixin, props as bottomRowProps } from './helpers/mixin-bottom-row';\nimport { busyMixin, props as busyProps } from './helpers/mixin-busy';\nimport { captionMixin, props as captionProps } from './helpers/mixin-caption';\nimport { colgroupMixin, props as colgroupProps } from './helpers/mixin-colgroup';\nimport { emptyMixin, props as emptyProps } from './helpers/mixin-empty';\nimport { filteringMixin, props as filteringProps } from './helpers/mixin-filtering';\nimport { itemsMixin, props as itemsProps } from './helpers/mixin-items';\nimport { paginationMixin, props as paginationProps } from './helpers/mixin-pagination';\nimport { providerMixin, props as providerProps } from './helpers/mixin-provider';\nimport { selectableMixin, props as selectableProps } from './helpers/mixin-selectable';\nimport { sortingMixin, props as sortingProps } from './helpers/mixin-sorting';\nimport { stackedMixin, props as stackedProps } from './helpers/mixin-stacked';\nimport { tableRendererMixin, props as tableRendererProps } from './helpers/mixin-table-renderer';\nimport { tbodyMixin, props as tbodyProps } from './helpers/mixin-tbody';\nimport { tfootMixin, props as tfootProps } from './helpers/mixin-tfoot';\nimport { theadMixin, props as theadProps } from './helpers/mixin-thead';\nimport { topRowMixin, props as topRowProps } from './helpers/mixin-top-row'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), bottomRowProps), busyProps), captionProps), colgroupProps), emptyProps), filteringProps), itemsProps), paginationProps), providerProps), selectableProps), sortingProps), stackedProps), tableRendererProps), tbodyProps), tfootProps), theadProps), topRowProps)), NAME_TABLE); // --- Main component ---\n// @vue/component\n\nexport var BTable = /*#__PURE__*/Vue.extend({\n name: NAME_TABLE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [// General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin, // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin, // Table features mixins\n stackedMixin, filteringMixin, sortingMixin, paginationMixin, captionMixin, colgroupMixin, selectableMixin, emptyMixin, topRowMixin, bottomRowMixin, busyMixin, providerMixin],\n props: props // Render function is provided by `tableRendererMixin`\n\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-row',{staticClass:\"background\"},[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-navbar',{staticClass:\"navbar-bg\",attrs:{\"toggleable\":\"lg\"}},[_c('b-navbar-brand',{on:{\"click\":function($event){return _vm.$router.push('/')}}},[_c('b-img',{staticClass:\"logo-img\",attrs:{\"src\":require(\"@/assets/images/logo/YBM.gif\"),\"width\":\"220\",\"height\":\"90\"}})],1),_c('b-navbar-toggle',{attrs:{\"target\":\"nav-collapse\"}}),_c('b-collapse',{staticClass:\"text-align-right justify-content-right\",attrs:{\"id\":\"nav-collapse\",\"is-nav\":\"\"}},[_c('b-navbar-nav',[_c('b-nav-item',{staticClass:\"nav-link\",on:{\"click\":function($event){return _vm.$router.push('/about')}}},[_vm._v(\" \"+_vm._s(_vm.getNavItemText(\"HAKKIMIZDA\"))+\" \")]),_c('b-nav-item',{staticClass:\"nav-link\",on:{\"click\":function($event){return _vm.$router.push('/sektorler')}}},[_vm._v(\" \"+_vm._s(_vm.getNavItemText(\"SEKTÖRLER\"))+\" \")]),_c('b-nav-item',{staticClass:\"nav-link\",on:{\"click\":function($event){return _vm.$router.push('/urunler')}}},[_vm._v(\" \"+_vm._s(_vm.getNavItemText(\"ÜRÜNLER\"))+\" \")]),_c('b-nav-item',{staticClass:\"nav-link\",on:{\"click\":function($event){return _vm.$router.push('/uretim')}}},[_vm._v(\" \"+_vm._s(_vm.getNavItemText(\"ÜRETİM\"))+\" \")]),_c('b-nav-item',{staticClass:\"nav-link\",on:{\"click\":function($event){return _vm.$router.push('/kalite')}}},[_vm._v(\" \"+_vm._s(_vm.getNavItemText(\"KALİTE\"))+\" \")]),_c('b-nav-item',{staticClass:\"nav-link\",on:{\"click\":function($event){return _vm.$router.push('/iletisim')}}},[_vm._v(\" \"+_vm._s(_vm.getNavItemText(\"İLETİŞİM\"))+\" \")])],1)],1),_c('b-form-checkbox',{staticClass:\"custom-control-danger\",attrs:{\"name\":\"check-button\",\"switch\":\"\"},on:{\"change\":_vm.onLanguageChange},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},[_vm._v(\" \"+_vm._s(_vm.options[0].text)+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAVBAR_BRAND } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nlinkProps.href.default = undefined;\nlinkProps.to.default = undefined;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_NAVBAR_BRAND); // --- Main component ---\n// @vue/component\n\nexport var BNavbarBrand = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_BRAND,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var isLink = props.to || props.href;\n var tag = isLink ? BLink : props.tag;\n return h(tag, mergeData(data, {\n staticClass: 'navbar-brand',\n props: isLink ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","import { NAME_COLLAPSE } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { RX_HASH, RX_HASH_ID, RX_SPACE_SPLIT } from '../../constants/regex';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { addClass, getAttr, hasAttr, isDisabled, isTag, removeAttr, removeClass, removeStyle, requestAF, setAttr, setStyle } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { keys } from '../../utils/object'; // --- Constants ---\n// Classes to apply to trigger element\n\nvar CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\nvar CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed'; // Property key for handler storage\n\nvar BV_BASE = '__BV_toggle'; // Root event listener property (Function)\n\nvar BV_TOGGLE_ROOT_HANDLER = \"\".concat(BV_BASE, \"_HANDLER__\"); // Trigger element click handler property (Function)\n\nvar BV_TOGGLE_CLICK_HANDLER = \"\".concat(BV_BASE, \"_CLICK__\"); // Target visibility state property (Boolean)\n\nvar BV_TOGGLE_STATE = \"\".concat(BV_BASE, \"_STATE__\"); // Target ID list property (Array)\n\nvar BV_TOGGLE_TARGETS = \"\".concat(BV_BASE, \"_TARGETS__\"); // Commonly used strings\n\nvar STRING_FALSE = 'false';\nvar STRING_TRUE = 'true'; // Commonly used attribute names\n\nvar ATTR_ARIA_CONTROLS = 'aria-controls';\nvar ATTR_ARIA_EXPANDED = 'aria-expanded';\nvar ATTR_ROLE = 'role';\nvar ATTR_TABINDEX = 'tabindex'; // Commonly used style properties\n\nvar STYLE_OVERFLOW_ANCHOR = 'overflow-anchor'; // Emitted control event for collapse (emitted to collapse)\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle'); // Listen to event for toggle state update (emitted by collapse)\n\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state'); // Private event emitted on `$root` to ensure the toggle state is always synced\n// Gets emitted even if the state of b-collapse has not changed\n// This event is NOT to be documented as people should not be using it\n\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // Private event we send to collapse to request state update sync event\n\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE]; // --- Helper methods ---\n\nvar isNonStandardTag = function isNonStandardTag(el) {\n return !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\n};\n\nvar getTargets = function getTargets(_ref, el) {\n var modifiers = _ref.modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Any modifiers are considered target IDs\n var targets = keys(modifiers || {}); // If value is a string, split out individual targets (if space delimited)\n\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value; // Support target ID as link href (`href=\"#id\"`)\n\n if (isTag(el.tagName, 'a')) {\n var href = getAttr(el, 'href') || '';\n\n if (RX_HASH_ID.test(href)) {\n targets.push(href.replace(RX_HASH, ''));\n }\n } // Add ID from `arg` (if provided), and support value\n // as a single string ID or an array of string IDs\n // If `value` is not an array or string, then it gets filtered out\n\n\n concat(arg, value).forEach(function (t) {\n return isString(t) && targets.push(t);\n }); // Return only unique and truthy target IDs\n\n return targets.filter(function (t, index, arr) {\n return t && arr.indexOf(t) === index;\n });\n};\n\nvar removeClickListener = function removeClickListener(el) {\n var handler = el[BV_TOGGLE_CLICK_HANDLER];\n\n if (handler) {\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n el[BV_TOGGLE_CLICK_HANDLER] = null;\n};\n\nvar addClickListener = function addClickListener(el, vnode) {\n removeClickListener(el);\n\n if (vnode.context) {\n var handler = function handler(event) {\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\n var targets = el[BV_TOGGLE_TARGETS] || [];\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_TOGGLE, target);\n });\n }\n };\n\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (isNonStandardTag(el)) {\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar removeRootListeners = function removeRootListeners(el, vnode) {\n if (el[BV_TOGGLE_ROOT_HANDLER] && vnode.context) {\n vnode.context.$root.$off([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], el[BV_TOGGLE_ROOT_HANDLER]);\n }\n\n el[BV_TOGGLE_ROOT_HANDLER] = null;\n};\n\nvar addRootListeners = function addRootListeners(el, vnode) {\n removeRootListeners(el, vnode);\n\n if (vnode.context) {\n var handler = function handler(id, state) {\n // `state` will be `true` if target is expanded\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\n // Set/Clear 'collapsed' visibility class state\n el[BV_TOGGLE_STATE] = state; // Set `aria-expanded` and class state on trigger element\n\n setToggleState(el, state);\n }\n };\n\n el[BV_TOGGLE_ROOT_HANDLER] = handler; // Listen for toggle state changes (public) and sync (private)\n\n vnode.context.$root.$on([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], handler);\n }\n};\n\nvar setToggleState = function setToggleState(el, state) {\n // State refers to the visibility of the collapse/sidebar\n if (state) {\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\n } else {\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\n }\n}; // Reset and remove a property from the provided element\n\n\nvar resetProp = function resetProp(el, prop) {\n el[prop] = null;\n delete el[prop];\n}; // Handle directive updates\n\n\nvar handleUpdate = function handleUpdate(el, binding, vnode) {\n /* istanbul ignore next: should never happen */\n if (!IS_BROWSER || !vnode.context) {\n return;\n } // If element is not a button or link, we add `role=\"button\"`\n // and `tabindex=\"0\"` for accessibility reasons\n\n\n if (isNonStandardTag(el)) {\n if (!hasAttr(el, ATTR_ROLE)) {\n setAttr(el, ATTR_ROLE, 'button');\n }\n\n if (!hasAttr(el, ATTR_TABINDEX)) {\n setAttr(el, ATTR_TABINDEX, '0');\n }\n } // Ensure the collapse class and `aria-*` attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or its contents)\n\n\n setToggleState(el, el[BV_TOGGLE_STATE]); // Parse list of target IDs\n\n var targets = getTargets(binding, el); // Ensure the `aria-controls` hasn't been overwritten\n // or removed when vnode updates\n // Also ensure to set `overflow-anchor` to `none` to prevent\n // the browser's scroll anchoring behavior\n\n /* istanbul ignore else */\n\n if (targets.length > 0) {\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\n } else {\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n } // Add/Update our click listener(s)\n // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n addClickListener(el, vnode);\n }); // If targets array has changed, update\n\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\n // Update targets array to element storage\n el[BV_TOGGLE_TARGETS] = targets; // Ensure `aria-controls` is up to date\n // Request a state update from targets so that we can\n // ensure expanded state is correct (in most cases)\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, target);\n });\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBToggle = {\n bind: function bind(el, binding, vnode) {\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false; // Assume no targets initially\n\n el[BV_TOGGLE_TARGETS] = []; // Add our root listeners\n\n addRootListeners(el, vnode); // Initial update of trigger\n\n handleUpdate(el, binding, vnode);\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind: function unbind(el, binding, vnode) {\n removeClickListener(el); // Remove our $root listener\n\n removeRootListeners(el, vnode); // Reset custom props\n\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs/styles\n\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n removeAttr(el, ATTR_ARIA_EXPANDED);\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeAttr(el, ATTR_ROLE);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n};","import { Vue } from '../../vue';\nimport { NAME_COLLAPSE, NAME_NAVBAR_TOGGLE } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { getRootEventName } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBToggle } from '../../directives/toggle/toggle'; // --- Constants ---\n\nvar CLASS_NAME = 'navbar-toggler';\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n label: makeProp(PROP_TYPE_STRING, 'Toggle navigation'),\n target: makeProp(PROP_TYPE_ARRAY_STRING, undefined, true) // Required\n\n}, NAME_NAVBAR_TOGGLE); // --- Main component ---\n// @vue/component\n\nexport var BNavbarToggle = /*#__PURE__*/Vue.extend({\n name: NAME_NAVBAR_TOGGLE,\n directives: {\n VBToggle: VBToggle\n },\n mixins: [listenOnRootMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n toggleState: false\n };\n },\n created: function created() {\n this.listenOnRoot(ROOT_EVENT_NAME_STATE, this.handleStateEvt);\n this.listenOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.handleStateEvt);\n },\n methods: {\n onClick: function onClick(event) {\n if (!this.disabled) {\n // Emit courtesy `click` event\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n handleStateEvt: function handleStateEvt(id, state) {\n // We listen for state events so that we can pass the\n // boolean expanded state to the default scoped slot\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n render: function render(h) {\n var disabled = this.disabled;\n return h('button', {\n staticClass: CLASS_NAME,\n class: {\n disabled: disabled\n },\n directives: [{\n name: 'VBToggle',\n value: this.target\n }],\n attrs: {\n type: 'button',\n disabled: disabled,\n 'aria-label': this.label\n },\n on: {\n click: this.onClick\n }\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n expanded: this.toggleState\n }) || h('span', {\n staticClass: \"\".concat(CLASS_NAME, \"-icon\")\n })]);\n }\n});","\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=1466d20e&scoped=true&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=1466d20e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1466d20e\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (Object.keys(_vm.homeEdit).length)?_c('b-card',{staticClass:\"blog-edit-wrapper\"},[_c('b-form',{staticClass:\"mt-2\"},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('b-form-group',{staticClass:\"mb-2\",attrs:{\"label\":\"Alan seçiniz\",\"label-for\":\"blog-edit-title\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"label\":\"title\",\"options\":_vm.option},model:{value:(_vm.categorySelected),callback:function ($$v) {_vm.categorySelected=$$v},expression:\"categorySelected\"}})],1)],1),_c('b-col',{staticClass:\"mt-2 mr-0\",attrs:{\"cols\":\"6\"}},[(_vm.addNew)?_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}},{name:\"b-modal\",rawName:\"v-b-modal.modal-addNew\",modifiers:{\"modal-addNew\":true}}],staticClass:\"mr-1 ml-1\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.clearData()}}},[_vm._v(\" Yeni Ekle \")]):_vm._e()],1)],1),(_vm.isTabloItem)?_c('b-row',{key:_vm.listeYenile},_vm._l((_vm.TabloItems),function(item,index){return _c('b-col',{key:index,attrs:{\"md\":\"6\"}},[_c('b-card',{staticClass:\"mb-2 cardStyle\"},[(item.image)?_c('b-img',{staticClass:\"card-img-top imgStyle\",attrs:{\"src\":item.image,\"alt\":\"Card image cap\"}}):_vm._e(),_c('b-card-body',[(item.title)?_c('div',[_c('b-card-title',{staticClass:\"titleStyle\"},[_vm._v(_vm._s(item.title)+\" \")])],1):_vm._e(),(item.text)?_c('div',[_c('b-card-text',[_c('div',{domProps:{\"innerHTML\":_vm._s(item.text)}})])],1):_vm._e()]),_c('b-card-footer',[_c('div',{staticClass:\"d-flex justify-content-end\"},[_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-edit\",modifiers:{\"modal-edit\":true}}],staticClass:\"btn-icon mr-1\",attrs:{\"variant\":\"gradient-success\"},on:{\"click\":function($event){return _vm.editModal(item)}}},[_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}})],1),(_vm.addNew)?_c('b-button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal.modal-danger\",modifiers:{\"modal-danger\":true}}],staticClass:\"btn-icon\",attrs:{\"variant\":\"gradient-danger\"},on:{\"click\":function($event){return _vm.deleteModal(item)}}},[_c('feather-icon',{attrs:{\"icon\":\"XIcon\"}})],1):_vm._e()],1)])],1)],1)}),1):_vm._e()],1),_c('b-modal',{attrs:{\"id\":\"modal-edit\",\"title\":\"Düzenle\",\"cancel-variant\":\"outline-secondary\",\"size\":\"lg\",\"centered\":\"\",\"hide-footer\":\"\"}},[_c('b-form',[(_vm.isTitle)?_c('b-form-group',{attrs:{\"label\":\"Başlık\",\"label-for\":\"name\"}},[_c('b-form-input',{model:{value:(_vm.homeEdit.editTitle),callback:function ($$v) {_vm.$set(_vm.homeEdit, \"editTitle\", $$v)},expression:\"homeEdit.editTitle\"}})],1):_vm._e(),(_vm.isText)?_c('b-form-group',{staticClass:\"mb-2\",attrs:{\"label\":\"Metin\",\"label-for\":\"blog-content\"}},[_c('quill-editor',{attrs:{\"id\":\"blog-content\",\"options\":_vm.snowOption},model:{value:(_vm.homeEdit.editContent),callback:function ($$v) {_vm.$set(_vm.homeEdit, \"editContent\", $$v)},expression:\"homeEdit.editContent\"}})],1):_vm._e(),(_vm.isImage)?_c('b-form-group',{attrs:{\"label\":\"Resim\",\"label-for\":\"zip-code\"}},[_c('div',{staticClass:\"border rounded p-2\"},[_c('b-media',{staticClass:\"flex-column flex-md-row\",attrs:{\"no-body\":\"\",\"vertical-align\":\"center\"}},[_c('b-media-aside',[_c('b-img',{ref:\"refPreviewEl\",staticClass:\"rounded mr-2 mb-1 mb-md-0\",attrs:{\"height\":\"110\",\"width\":\"170\"}})],1),_c('b-media-body',[_c('small',{staticClass:\"text-muted\"},[_vm._v(\"Required image resolution 1200x600, image size 10mb.\")]),_c('b-card-text',{staticClass:\"my-50\"},[_c('b-link',{attrs:{\"id\":\"blog-image-text\"}},[_vm._v(\" C:\\\\fakepath\\\\\"+_vm._s(_vm.blogFile ? _vm.blogFile.name : \"banner.jpg\")+\" \")])],1),_c('div',{staticClass:\"d-inline-block\"},[_c('b-form-file',{ref:\"refInputEl\",attrs:{\"accept\":\".jpg, .png, .gif\",\"placeholder\":\"Choose file\"},on:{\"input\":_vm.inputImageRenderer1},model:{value:(_vm.blogFile),callback:function ($$v) {_vm.blogFile=$$v},expression:\"blogFile\"}})],1)],1)],1)],1)]):_vm._e(),_c('b-form-group',[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(234, 84, 85, 0.15)'),expression:\"'rgba(234, 84, 85, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mt-3\",attrs:{\"variant\":\"outline-success float-right\"},on:{\"click\":function($event){return _vm.updateBtn()}}},[_vm._v(\" Kaydet \")])],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"modal-addNew\",\"title\":\"Yeni Ekle\",\"ok-only\":\"\",\"ok-title\":\"Kaydet\",\"centered\":\"\",\"size\":\"lg\"},on:{\"ok\":function($event){return _vm.saveButton()}}},[_c('b-form',[(_vm.isTitle)?_c('b-form-group',{attrs:{\"label\":\"Başlık\",\"label-for\":\"name\"}},[_c('b-form-input',{model:{value:(_vm.homeEdit.editTitle),callback:function ($$v) {_vm.$set(_vm.homeEdit, \"editTitle\", $$v)},expression:\"homeEdit.editTitle\"}})],1):_vm._e(),(_vm.isText)?_c('b-form-group',{staticClass:\"mb-2\",attrs:{\"label\":\"Metin\",\"label-for\":\"blog-content\"}},[_c('quill-editor',{attrs:{\"id\":\"blog-content\",\"options\":_vm.snowOption},model:{value:(_vm.homeEdit.editContent),callback:function ($$v) {_vm.$set(_vm.homeEdit, \"editContent\", $$v)},expression:\"homeEdit.editContent\"}})],1):_vm._e(),(_vm.isImage)?_c('b-form-group',{attrs:{\"label\":\"Resim\",\"label-for\":\"zip-code\"}},[_c('div',{staticClass:\"border rounded p-2\"},[_c('b-media',{staticClass:\"flex-column flex-md-row\",attrs:{\"no-body\":\"\",\"vertical-align\":\"center\"}},[_c('b-media-aside',[_c('b-img',{ref:\"refPreviewEl\",staticClass:\"rounded mr-2 mb-1 mb-md-0\",attrs:{\"height\":\"110\",\"width\":\"170\"}})],1),_c('b-media-body',[_c('small',{staticClass:\"text-muted\"},[_vm._v(\"Required image resolution 1200x600, image size 10mb.\")]),_c('b-card-text',{staticClass:\"my-50\"},[_c('b-link',{attrs:{\"id\":\"blog-image-text\"}},[_vm._v(\" C:\\\\fakepath\\\\\"+_vm._s(_vm.blogFile ? _vm.blogFile.name : \"banner.jpg\")+\" \")])],1),_c('div',{staticClass:\"d-inline-block\"},[_c('b-form-file',{ref:\"refInputEl\",attrs:{\"accept\":\".jpg, .png, .gif\",\"placeholder\":\"Choose file\"},on:{\"input\":_vm.inputImageRenderer1},model:{value:(_vm.blogFile),callback:function ($$v) {_vm.blogFile=$$v},expression:\"blogFile\"}})],1)],1)],1)],1)]):_vm._e()],1)],1),_c('b-modal',{attrs:{\"id\":\"modal-danger\",\"ok-only\":\"\",\"ok-variant\":\"danger\",\"ok-title\":\"Ok\",\"no-close-on-backdrop\":\"\",\"modal-class\":\"modal-danger\",\"centered\":\"\"},on:{\"ok\":function($event){return _vm.deleteData()}}},[_c('b-card-text',{staticClass:\"mt-1\"},[_vm._v(\" SİLMEK İSTEDİĞİNİZE EMİN MİSİNİZ? \")])],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./product-edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./product-edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./product-edit.vue?vue&type=template&id=a0db5c50&scoped=true&\"\nimport script from \"./product-edit.vue?vue&type=script&lang=js&\"\nexport * from \"./product-edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./product-edit.vue?vue&type=style&index=0&id=a0db5c50&prod&lang=scss&\"\nimport style1 from \"./product-edit.vue?vue&type=style&index=1&id=a0db5c50&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0db5c50\",\n null\n \n)\n\nexport default component.exports","import { Vue } from '../../vue';\nimport { NAME_PROGRESS_BAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { isBoolean } from '../../utils/inspect';\nimport { mathMax, mathPow } from '../../utils/math';\nimport { toFixed, toFloat, toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n animated: makeProp(PROP_TYPE_BOOLEAN, null),\n label: makeProp(PROP_TYPE_STRING),\n labelHtml: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, null),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, null),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, null),\n showValue: makeProp(PROP_TYPE_BOOLEAN, null),\n striped: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_PROGRESS_BAR); // --- Main component ---\n// @vue/component\n\nexport var BProgressBar = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS_BAR,\n mixins: [normalizeSlotMixin],\n inject: {\n bvProgress: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: props,\n computed: {\n progressBarClasses: function progressBarClasses() {\n var computedAnimated = this.computedAnimated,\n computedVariant = this.computedVariant;\n return [computedVariant ? \"bg-\".concat(computedVariant) : '', this.computedStriped || computedAnimated ? 'progress-bar-striped' : '', computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.computedValue / this.computedMax) + '%'\n };\n },\n computedValue: function computedValue() {\n return toFloat(this.value, 0);\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n // Default to `100` for invalid values (`-x`, `0`, `NaN`)\n var max = toFloat(this.max) || toFloat(this.bvProgress.max, 0);\n return max > 0 ? max : 100;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n // Default to `0` for invalid values (`-x`, `NaN`)\n return mathMax(toInteger(this.precision, toInteger(this.bvProgress.precision, 0)), 0);\n },\n computedProgress: function computedProgress() {\n var precision = this.computedPrecision;\n var p = mathPow(10, precision);\n return toFixed(100 * p * this.computedValue / this.computedMax / p, precision);\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.bvProgress.variant;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return isBoolean(this.striped) ? this.striped : this.bvProgress.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return isBoolean(this.animated) ? this.animated : this.bvProgress.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return isBoolean(this.showProgress) ? this.showProgress : this.bvProgress.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return isBoolean(this.showValue) ? this.showValue : this.bvProgress.showValue || false;\n }\n },\n render: function render(h) {\n var label = this.label,\n labelHtml = this.labelHtml,\n computedValue = this.computedValue,\n computedPrecision = this.computedPrecision;\n var $children;\n var domProps = {};\n\n if (this.hasNormalizedSlot()) {\n $children = this.normalizeSlot();\n } else if (label || labelHtml) {\n domProps = htmlOrText(labelHtml, label);\n } else if (this.computedShowProgress) {\n $children = this.computedProgress;\n } else if (this.computedShowValue) {\n $children = toFixed(computedValue, computedPrecision);\n }\n\n return h('div', {\n staticClass: 'progress-bar',\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': toString(this.computedMax),\n 'aria-valuenow': toFixed(computedValue, computedPrecision)\n },\n domProps: domProps\n }, $children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_PROGRESS } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BProgressBar, props as BProgressBarProps } from './progress-bar'; // --- Props ---\n\nvar progressBarProps = omit(BProgressBarProps, ['label', 'labelHtml']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, progressBarProps), {}, {\n animated: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, 100),\n precision: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n showProgress: makeProp(PROP_TYPE_BOOLEAN, false),\n showValue: makeProp(PROP_TYPE_BOOLEAN, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_PROGRESS); // --- Main component ---\n// @vue/component\n\nexport var BProgress = /*#__PURE__*/Vue.extend({\n name: NAME_PROGRESS,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n return {\n bvProgress: this\n };\n },\n props: props,\n computed: {\n progressHeight: function progressHeight() {\n return {\n height: this.height || null\n };\n }\n },\n render: function render(h) {\n var $childNodes = this.normalizeSlot();\n\n if (!$childNodes) {\n $childNodes = h(BProgressBar, {\n props: pluckProps(progressBarProps, this.$props)\n });\n }\n\n return h('div', {\n staticClass: 'progress',\n style: this.progressHeight\n }, [$childNodes]);\n }\n});","!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","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./product-edit.vue?vue&type=style&index=1&id=a0db5c50&prod&scoped=true&lang=css&\"","\n/*!\n * vue-awesome-swiper v4.1.1\n * Copyright (c) Surmon. All rights reserved.\n * Released under the MIT License.\n * Surmon \n */\n\n(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports,require('swiper'),require('vue')):typeof define==='function'&&define.amd?define(['exports','swiper','vue'],f):(g=g||self,f(g.VueAwesomeSwiper={},g.Swiper,g.Vue));}(this,(function(exports, SwiperClass, Vue){'use strict';SwiperClass=SwiperClass&&Object.prototype.hasOwnProperty.call(SwiperClass,'default')?SwiperClass['default']:SwiperClass;Vue=Vue&&Object.prototype.hasOwnProperty.call(Vue,'default')?Vue['default']:Vue;/**\r\n * @file vue-awesome-swiper\r\n * @module constants\r\n * @author Surmon \r\n */\r\nvar CoreNames;\r\n(function (CoreNames) {\r\n CoreNames[\"SwiperComponent\"] = \"Swiper\";\r\n CoreNames[\"SwiperSlideComponent\"] = \"SwiperSlide\";\r\n CoreNames[\"SwiperDirective\"] = \"swiper\";\r\n CoreNames[\"SwiperInstance\"] = \"$swiper\";\r\n})(CoreNames || (CoreNames = {}));\r\nvar DEFAULT_CLASSES = Object.freeze({\r\n containerClass: 'swiper-container',\r\n wrapperClass: 'swiper-wrapper',\r\n slideClass: 'swiper-slide'\r\n});\r\nvar ComponentEvents;\r\n(function (ComponentEvents) {\r\n ComponentEvents[\"Ready\"] = \"ready\";\r\n ComponentEvents[\"ClickSlide\"] = \"clickSlide\";\r\n})(ComponentEvents || (ComponentEvents = {}));\r\nvar ComponentPropNames;\r\n(function (ComponentPropNames) {\r\n ComponentPropNames[\"AutoUpdate\"] = \"autoUpdate\";\r\n ComponentPropNames[\"AutoDestroy\"] = \"autoDestroy\";\r\n ComponentPropNames[\"DeleteInstanceOnDestroy\"] = \"deleteInstanceOnDestroy\";\r\n ComponentPropNames[\"CleanupStylesOnDestroy\"] = \"cleanupStylesOnDestroy\";\r\n})(ComponentPropNames || (ComponentPropNames = {}));\r\n// https://swiperjs.com/api/#events\r\nvar SWIPER_EVENTS = [\r\n 'init',\r\n 'beforeDestroy',\r\n 'slideChange',\r\n 'slideChangeTransitionStart',\r\n 'slideChangeTransitionEnd',\r\n 'slideNextTransitionStart',\r\n 'slideNextTransitionEnd',\r\n 'slidePrevTransitionStart',\r\n 'slidePrevTransitionEnd',\r\n 'transitionStart',\r\n 'transitionEnd',\r\n 'touchStart',\r\n 'touchMove',\r\n 'touchMoveOpposite',\r\n 'sliderMove',\r\n 'touchEnd',\r\n 'click',\r\n 'tap',\r\n 'doubleTap',\r\n 'imagesReady',\r\n 'progress',\r\n 'reachBeginning',\r\n 'reachEnd',\r\n 'fromEdge',\r\n 'setTranslate',\r\n 'setTransition',\r\n 'resize',\r\n 'observerUpdate',\r\n 'beforeLoopFix',\r\n 'loopFix'\r\n];/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module utils\r\n * @author Surmon \r\n */\r\nvar kebabcase = function (string) {\r\n return string\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module event\r\n * @author Surmon \r\n */\r\nvar handleClickSlideEvent = function (swiper, event, emit) {\r\n var _a, _b, _c;\r\n if (swiper && !(swiper.destroyed)) {\r\n var eventPath = ((_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)) || event.path;\r\n if ((event === null || event === void 0 ? void 0 : event.target) && eventPath) {\r\n var slides_1 = Array.from(swiper.slides);\r\n var paths = Array.from(eventPath);\r\n // Click slide || slide[children]\r\n if (slides_1.includes(event.target) || paths.some(function (item) { return slides_1.includes(item); })) {\r\n var clickedIndex = swiper.clickedIndex;\r\n var reallyIndex = Number((_c = (_b = swiper.clickedSlide) === null || _b === void 0 ? void 0 : _b.dataset) === null || _c === void 0 ? void 0 : _c.swiperSlideIndex);\r\n var reallyIndexValue = Number.isInteger(reallyIndex) ? reallyIndex : null;\r\n emit(ComponentEvents.ClickSlide, clickedIndex, reallyIndexValue);\r\n emit(kebabcase(ComponentEvents.ClickSlide), clickedIndex, reallyIndexValue);\r\n }\r\n }\r\n }\r\n};\r\nvar bindSwiperEvents = function (swiper, emit) {\r\n SWIPER_EVENTS.forEach(function (eventName) {\r\n swiper.on(eventName, function () {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments$1[_i];\r\n }\r\n emit.apply(void 0, __spreadArrays([eventName], args));\r\n var kebabcaseName = kebabcase(eventName);\r\n if (kebabcaseName !== eventName) {\r\n emit.apply(void 0, __spreadArrays([kebabcaseName], args));\r\n }\r\n });\r\n });\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module directive\r\n * @author Surmon \r\n */\r\nvar INSTANCE_NAME_KEY = 'instanceName';\r\nfunction getDirective(SwiperClass, globalOptions) {\r\n var getStandardisedOptionByAttrs = function (vnode, key) {\r\n var _a, _b, _c, _d;\r\n var value = (_b = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[key];\r\n return value !== undefined\r\n ? value\r\n : (_d = (_c = vnode.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d[kebabcase(key)];\r\n };\r\n // Get swiper instace name in directive\r\n var getSwiperInstanceName = function (element, binding, vnode) {\r\n return (binding.arg ||\r\n getStandardisedOptionByAttrs(vnode, INSTANCE_NAME_KEY) ||\r\n element.id ||\r\n CoreNames.SwiperInstance);\r\n };\r\n var getSwiperInstance = function (element, binding, vnode) {\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n return vnode.context[instanceName] || null;\r\n };\r\n var getSwipeOptions = function (binding) {\r\n return binding.value || globalOptions;\r\n };\r\n var getBooleanValueByInput = function (input) {\r\n return [true, undefined, null, ''].includes(input);\r\n };\r\n // Emit event in Vue directive\r\n var getEventEmiter = function (vnode) {\r\n var _a, _b;\r\n var handlers = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on) || ((_b = vnode.componentOptions) === null || _b === void 0 ? void 0 : _b.listeners);\r\n return function (name) {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments$1[_i];\r\n }\r\n var _a;\r\n var handle = (_a = handlers) === null || _a === void 0 ? void 0 : _a[name];\r\n if (handle) {\r\n handle.fns.apply(handle, args);\r\n }\r\n };\r\n };\r\n return {\r\n // Init\r\n bind: function (element, binding, vnode) {\r\n // auto class name\r\n if (element.className.indexOf(DEFAULT_CLASSES.containerClass) === -1) {\r\n element.className += ((element.className ? ' ' : '') + DEFAULT_CLASSES.containerClass);\r\n }\r\n // bind click event\r\n element.addEventListener('click', function (event) {\r\n var emitEvent = getEventEmiter(vnode);\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n handleClickSlideEvent(swiper, event, emitEvent);\r\n });\r\n },\r\n // DOM inserted\r\n inserted: function (element, binding, vnode) {\r\n var context = vnode.context;\r\n var swiperOptions = getSwipeOptions(binding);\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n var emitEvent = getEventEmiter(vnode);\r\n var vueContext = context;\r\n var swiper = vueContext === null || vueContext === void 0 ? void 0 : vueContext[instanceName];\r\n // Swiper will destroy but not delete instance, when used \r\n if (!swiper || swiper.destroyed) {\r\n swiper = new SwiperClass(element, swiperOptions);\r\n vueContext[instanceName] = swiper;\r\n bindSwiperEvents(swiper, emitEvent);\r\n emitEvent(ComponentEvents.Ready, swiper);\r\n // MARK: Reinstance when the nexttick with \r\n // Vue.nextTick(instancing) | setTimeout(instancing)\r\n }\r\n },\r\n // On options changed or DOM updated\r\n componentUpdated: function (element, binding, vnode) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n var autoUpdate = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoUpdate);\r\n if (getBooleanValueByInput(autoUpdate)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper) {\r\n var swiperOptions = getSwipeOptions(binding);\r\n var isLoop = swiperOptions.loop;\r\n if (isLoop) {\r\n (_b = (_a = swiper) === null || _a === void 0 ? void 0 : _a.loopDestroy) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n (_c = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _c === void 0 ? void 0 : _c.call(swiper);\r\n (_e = (_d = swiper.navigation) === null || _d === void 0 ? void 0 : _d.update) === null || _e === void 0 ? void 0 : _e.call(_d);\r\n (_g = (_f = swiper.pagination) === null || _f === void 0 ? void 0 : _f.render) === null || _g === void 0 ? void 0 : _g.call(_f);\r\n (_j = (_h = swiper.pagination) === null || _h === void 0 ? void 0 : _h.update) === null || _j === void 0 ? void 0 : _j.call(_h);\r\n if (isLoop) {\r\n (_l = (_k = swiper) === null || _k === void 0 ? void 0 : _k.loopCreate) === null || _l === void 0 ? void 0 : _l.call(_k);\r\n (_m = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _m === void 0 ? void 0 : _m.call(swiper);\r\n }\r\n }\r\n }\r\n },\r\n // Destroy this directive\r\n unbind: function (element, binding, vnode) {\r\n var _a;\r\n var autoDestroy = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoDestroy);\r\n if (getBooleanValueByInput(autoDestroy)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper && swiper.initialized) {\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.destroy) === null || _a === void 0 ? void 0 : _a.call(swiper, getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.DeleteInstanceOnDestroy)), getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.CleanupStylesOnDestroy)));\r\n }\r\n }\r\n }\r\n };\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperComponent\r\n * @author Surmon \r\n */\r\nvar SlotNames;\r\n(function (SlotNames) {\r\n SlotNames[\"ParallaxBg\"] = \"parallax-bg\";\r\n SlotNames[\"Pagination\"] = \"pagination\";\r\n SlotNames[\"Scrollbar\"] = \"scrollbar\";\r\n SlotNames[\"PrevButton\"] = \"button-prev\";\r\n SlotNames[\"NextButton\"] = \"button-next\";\r\n})(SlotNames || (SlotNames = {}));\r\nfunction getSwiperComponent(SwiperClass) {\r\n var _a;\r\n return Vue.extend({\r\n name: CoreNames.SwiperComponent,\r\n props: (_a = {\r\n defaultOptions: {\r\n type: Object,\r\n required: false,\r\n default: function () { return ({}); }\r\n },\r\n // eslint-disable-next-line vue/require-default-prop\r\n options: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n _a[ComponentPropNames.AutoUpdate] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/550/files\r\n _a[ComponentPropNames.AutoDestroy] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/388\r\n _a[ComponentPropNames.DeleteInstanceOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a[ComponentPropNames.CleanupStylesOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a),\r\n data: function () {\r\n var _a;\r\n return _a = {},\r\n _a[CoreNames.SwiperInstance] = null,\r\n _a;\r\n },\r\n computed: {\r\n swiperInstance: {\r\n cache: false,\r\n set: function (swiper) {\r\n this[CoreNames.SwiperInstance] = swiper;\r\n },\r\n get: function () {\r\n return this[CoreNames.SwiperInstance];\r\n }\r\n },\r\n swiperOptions: function () {\r\n return this.options || this.defaultOptions;\r\n },\r\n wrapperClass: function () {\r\n return this.swiperOptions.wrapperClass || DEFAULT_CLASSES.wrapperClass;\r\n }\r\n },\r\n methods: {\r\n // Feature: click event\r\n handleSwiperClick: function (event) {\r\n handleClickSlideEvent(this.swiperInstance, event, this.$emit.bind(this));\r\n },\r\n autoReLoopSwiper: function () {\r\n var _a, _b;\r\n if (this.swiperInstance && this.swiperOptions.loop) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/593\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/544\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/545/files\r\n var swiper = this.swiperInstance;\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.loopDestroy) === null || _a === void 0 ? void 0 : _a.call(swiper);\r\n (_b = swiper === null || swiper === void 0 ? void 0 : swiper.loopCreate) === null || _b === void 0 ? void 0 : _b.call(swiper);\r\n }\r\n },\r\n updateSwiper: function () {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (this[ComponentPropNames.AutoUpdate] && this.swiperInstance) {\r\n this.autoReLoopSwiper();\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.update) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.swiperInstance.navigation) === null || _c === void 0 ? void 0 : _c.update) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n (_f = (_e = this.swiperInstance.pagination) === null || _e === void 0 ? void 0 : _e.render) === null || _f === void 0 ? void 0 : _f.call(_e);\r\n (_h = (_g = this.swiperInstance.pagination) === null || _g === void 0 ? void 0 : _g.update) === null || _h === void 0 ? void 0 : _h.call(_g);\r\n }\r\n },\r\n destroySwiper: function () {\r\n var _a, _b;\r\n if (this[ComponentPropNames.AutoDestroy] && this.swiperInstance) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/341\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/340\r\n if (this.swiperInstance.initialized) {\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a, this[ComponentPropNames.DeleteInstanceOnDestroy], this[ComponentPropNames.CleanupStylesOnDestroy]);\r\n }\r\n }\r\n },\r\n initSwiper: function () {\r\n this.swiperInstance = new SwiperClass(this.$el, this.swiperOptions);\r\n bindSwiperEvents(this.swiperInstance, this.$emit.bind(this));\r\n this.$emit(ComponentEvents.Ready, this.swiperInstance);\r\n }\r\n },\r\n mounted: function () {\r\n if (!this.swiperInstance) {\r\n this.initSwiper();\r\n }\r\n },\r\n // Update swiper when the parent component activated with `keep-alive`.\r\n activated: function () {\r\n this.updateSwiper();\r\n },\r\n updated: function () {\r\n this.updateSwiper();\r\n },\r\n beforeDestroy: function () {\r\n // https://github.com/surmon-china/vue-awesome-swiper/commit/2924a9d4d3d1cf51c0d46076410b1f804b2b8a43#diff-7f4e0261ac562c0f354cb91a1ca8864f\r\n this.$nextTick(this.destroySwiper);\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n staticClass: DEFAULT_CLASSES.containerClass,\r\n on: {\r\n click: this.handleSwiperClick\r\n }\r\n }, [\r\n this.$slots[SlotNames.ParallaxBg],\r\n createElement('div', {\r\n class: this.wrapperClass\r\n }, this.$slots.default),\r\n this.$slots[SlotNames.Pagination],\r\n this.$slots[SlotNames.PrevButton],\r\n this.$slots[SlotNames.NextButton],\r\n this.$slots[SlotNames.Scrollbar]\r\n ]);\r\n }\r\n });\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperSlideComponent\r\n * @author Surmon \r\n */\r\nvar SwiperSlideComponent = Vue.extend({\r\n name: CoreNames.SwiperSlideComponent,\r\n computed: {\r\n slideClass: function () {\r\n var _a, _b;\r\n return ((_b = (_a = this.$parent) === null || _a === void 0 ? void 0 : _a.swiperOptions) === null || _b === void 0 ? void 0 : _b.slideClass) || DEFAULT_CLASSES.slideClass;\r\n }\r\n },\r\n methods: {\r\n update: function () {\r\n var _a;\r\n var parent = this.$parent;\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/632\r\n if (parent[ComponentPropNames.AutoUpdate]) {\r\n (_a = parent === null || parent === void 0 ? void 0 : parent.swiperInstance) === null || _a === void 0 ? void 0 : _a.update();\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.update();\r\n },\r\n updated: function () {\r\n this.update();\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n class: this.slideClass\r\n }, this.$slots.default);\r\n }\r\n});/**\r\n * @file vue-awesome-swiper\r\n * @module exporter\r\n * @author Surmon \r\n */\r\nvar getInstaller = function (SwiperClass) {\r\n var install = function (Vue, globalOptions) {\r\n if (install.installed)\r\n { return; }\r\n var SwiperComponent = getSwiperComponent(SwiperClass);\r\n if (globalOptions) {\r\n SwiperComponent.options.props.defaultOptions.default = function () { return globalOptions; };\r\n }\r\n Vue.component(CoreNames.SwiperComponent, SwiperComponent);\r\n Vue.component(CoreNames.SwiperSlideComponent, SwiperSlideComponent);\r\n Vue.directive(CoreNames.SwiperDirective, getDirective(SwiperClass, globalOptions));\r\n install.installed = true;\r\n };\r\n return install;\r\n};\r\nfunction exporter(SwiperClass) {\r\n var _a;\r\n return _a = {\r\n version: '4.1.1',\r\n install: getInstaller(SwiperClass),\r\n directive: getDirective(SwiperClass)\r\n },\r\n _a[CoreNames.SwiperComponent] = getSwiperComponent(SwiperClass),\r\n _a[CoreNames.SwiperSlideComponent] = SwiperSlideComponent,\r\n _a;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module default-export\r\n * @author Surmon \r\n */\r\nvar VueAwesomeSwiper = exporter(SwiperClass);\r\nvar version = VueAwesomeSwiper.version;\r\nvar install = VueAwesomeSwiper.install;\r\nvar directive = VueAwesomeSwiper.directive;\r\nvar Swiper = VueAwesomeSwiper.Swiper;\r\nvar SwiperSlide = VueAwesomeSwiper.SwiperSlide;exports.Swiper=Swiper;exports.SwiperSlide=SwiperSlide;exports.default=VueAwesomeSwiper;exports.directive=directive;exports.install=install;exports.version=version;Object.defineProperty(exports,'__esModule',{value:true});})));","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',[_c('hr'),_c('div',{staticClass:\"container\"},[_c('b-col',{attrs:{\"md\":\"12\"}}),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-row',[(_vm.AdressData && _vm.AdressData[0])?_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-card',{staticClass:\"text-left bg-transparent customCard\"},[_c('b-card-title',{staticClass:\"cardTitle\"},[_vm._v(_vm._s(_vm.AdressData[0].location))]),_c('b-card-text',[_vm._v(_vm._s(_vm.AdressData[0].address))]),_c('b-card-text',[_c('a',{staticClass:\"link\"},[_c('feather-icon',{attrs:{\"icon\":\"PhoneIcon\"}}),_vm._v(\" \"+_vm._s(_vm.AdressData[0].phone)+\" \")],1)]),_c('b-card-text',[_c('a',{staticClass:\"link\"},[_c('feather-icon',{attrs:{\"icon\":\"MailIcon\"}}),_vm._v(\" \"+_vm._s(_vm.AdressData[0].email)+\" \")],1)])],1)],1):_vm._e(),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('b-col',{attrs:{\"md\":\"4\"}}),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-link',{on:{\"click\":_vm.scrollToTop}},[_c('b-img',{staticClass:\"logo-img mt-2 mb-3 logoStyle\",attrs:{\"src\":require(\"@/assets/images/logo/YBMLogo.png\"),\"width\":\"220\",\"height\":\"100\"}})],1)],1),_c('b-col',{attrs:{\"md\":\"4\"}})],1)],1)],1),(_vm.AdressData && _vm.AdressData[1])?_c('b-col',{attrs:{\"md\":\"4\"}},[_c('b-card',{staticClass:\"text-left bg-transparent customCard\"},[_c('b-card-title',{staticClass:\"cardTitle\"},[_vm._v(\" \"+_vm._s(_vm.AdressData[1].location)+\" \")]),_c('b-card-text',[_vm._v(_vm._s(_vm.AdressData[1].address))]),_c('b-card-text',[_c('a',{staticClass:\"link\"},[_c('feather-icon',{attrs:{\"icon\":\"PhoneIcon\"}}),_vm._v(\" \"+_vm._s(_vm.AdressData[1].phone)+\" \")],1)]),_c('b-card-text',[_c('a',{staticClass:\"link\"},[_c('feather-icon',{attrs:{\"icon\":\"MailIcon\"}}),_vm._v(\" \"+_vm._s(_vm.AdressData[1].email)+\" \")],1)])],1)],1):_vm._e()],1)],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"5\"}}),_c('b-col',{attrs:{\"md\":\"2\"}},[_c('router-link',{attrs:{\"to\":\"/kvkk\"}},[_c('p',{staticClass:\"kvkkClass mb-2 ml-0\",staticStyle:{\"text-align\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.kvkkText)+\" \")])])],1),_c('b-col',{attrs:{\"md\":\"5\"}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./footer.vue?vue&type=template&id=437240a2&scoped=true&\"\nimport script from \"./footer.vue?vue&type=script&lang=js&\"\nexport * from \"./footer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./footer.vue?vue&type=style&index=0&id=437240a2&prod&scoped=true&lang=css&\"\nimport style1 from \"./footer.vue?vue&type=style&index=1&id=437240a2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"437240a2\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=1466d20e&prod&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/YBMLogo.6a120372.png\";","module.exports = __webpack_public_path__ + \"img/YBM.bddb3541.gif\";","/*! 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 * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\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 = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = 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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\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 (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = 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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\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 optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\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\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = 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 _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"quill\")):\"function\"==typeof define&&define.amd?define([\"quill\"],e):\"object\"==typeof exports?exports.VueQuillEditor=e(require(\"quill\")):t.VueQuillEditor=e(t.Quill)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var l=n[i]={i:i,l:!1,exports:{}};return t[i].call(l.exports,l,l.exports,e),l.l=!0,l.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=2)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(4),l=n.n(i),o=n(6),r=n(5),u=r(l.a,o.a,!1,null,null,null);e.default=u.exports},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.install=e.quillEditor=e.Quill=void 0;var l=n(0),o=i(l),r=n(1),u=i(r),s=window.Quill||o.default,a=function(t,e){e&&(u.default.props.globalOptions.default=function(){return e}),t.component(u.default.name,u.default)},c={Quill:s,quillEditor:u.default,install:a};e.default=c,e.Quill=s,e.quillEditor=u.default,e.install=a},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={theme:\"snow\",boundary:document.body,modules:{toolbar:[[\"bold\",\"italic\",\"underline\",\"strike\"],[\"blockquote\",\"code-block\"],[{header:1},{header:2}],[{list:\"ordered\"},{list:\"bullet\"}],[{script:\"sub\"},{script:\"super\"}],[{indent:\"-1\"},{indent:\"+1\"}],[{direction:\"rtl\"}],[{size:[\"small\",!1,\"large\",\"huge\"]}],[{header:[1,2,3,4,5,6,!1]}],[{color:[]},{background:[]}],[{font:[]}],[{align:[]}],[\"clean\"],[\"link\",\"image\",\"video\"]]},placeholder:\"Insert text here ...\",readOnly:!1}},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var l=n(0),o=i(l),r=n(3),u=i(r),s=window.Quill||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),i=1;i

\"===l&&(l=\"\"),t._content=l,t.$emit(\"input\",t._content),t.$emit(\"change\",{html:l,text:r,quill:o})}),this.$emit(\"ready\",this.quill))}},watch:{content:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},value:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},disabled:function(t,e){this.quill&&this.quill.enable(!t)}}}},function(t,e){t.exports=function(t,e,n,i,l,o){var r,u=t=t||{},s=typeof t.default;\"object\"!==s&&\"function\"!==s||(r=t,u=t.default);var a=\"function\"==typeof u?u.options:u;e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0),n&&(a.functional=!0),l&&(a._scopeId=l);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},a._ssrRegister=c):i&&(c=i),c){var d=a.functional,f=d?a.render:a.beforeCreate;d?(a._injectStyles=c,a.render=function(t,e){return c.call(e),f(t,e)}):a.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:u,options:a}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"quill-editor\"},[t._t(\"toolbar\"),t._v(\" \"),n(\"div\",{ref:\"editor\"})],2)},l=[],o={render:i,staticRenderFns:l};e.a=o}])});","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./swiper.vue?vue&type=style&index=0&id=398ccf1e&prod&scoped=true&lang=css&\"","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document as document$1 } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition: transition$1,\n on,\n off,\n trigger,\n transitionEnd: transitionEnd$1,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in window) || (window.DocumentTouch && document$1 instanceof window.DocumentTouch)),\n\n pointerEvents: !!window.PointerEvent && ('maxTouchPoints' in window.navigator) && window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nfunction translateTo (translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n\n const {\n params,\n wrapperEl,\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n\nfunction setTransition (duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n\nfunction slideTo (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document$1.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone))\n || (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document$1.activeElement\n && $(document$1.activeElement).is(data.formElements)\n && document$1.activeElement !== $targetEl[0]\n ) {\n document$1.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document$1.activeElement) {\n if (e.target === document$1.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n const increment = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll () {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document$1.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document$1.addEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document$1.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params, $el,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoint (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document$1.activeElement && document$1.activeElement.nodeName && (document$1.activeElement.nodeName.toLowerCase() === 'input' || document$1.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document$1).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document$1).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document$1;\n\n if (!isSupported) {\n const element = document$1.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document$1.implementation\n && document$1.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$1.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document$1.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.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 e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.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) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents = lastEventBeforeSnap\n && newEvent.time < lastEventBeforeSnap.time + 500\n && newEvent.delta <= lastEventBeforeSnap.delta\n && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15\n && newEvent.time - firstEvent.time < 500\n && firstEvent.delta - newEvent.delta >= 1\n && newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ``\n + ' / '\n + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceIndex, sourceEl) => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n swiper.emit('hashChange');\n const newHash = document$1.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document$1.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document$1.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd() {\n const swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n let translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n let translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`
`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`
`);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\nexport default Swiper;\n//# sourceMappingURL=swiper.esm.bundle.js.map\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\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","export const heightTransition = {\n /*\n\n HowTo:\n 1. Add dynamic style to element and set style as `trHeight`\n 2. Set transition speed using `transition: 0.35s height;` <= you can use appropriate value;\n 3. Optionally you can set `overflow: hidden;` to hide element overflow while height is animated.\n 4. Set initial height using `trSetHeight` before any operation. [mounted hook is recommended - You can use `ref` for dynamic contents]\n 5. Toggle height using height operations 🍻\n 6. Toggle usage of $nextTick for height operations is any issue occur [experimental] 🔬\n\n */\n\n data() {\n return {\n trHeight: null,\n }\n },\n methods: {\n trAddHeight(val) {\n // Add height to existing height\n // Usage: Where new element is append or more height is added (e.g. list append)\n\n /* Assumes:\n - Height is assigned and is `String`\n - Incoming value is valid number in `Number` or `String`\n */\n const heightValue = Number(this.trHeight.substring(0, this.trHeight.length - 2))\n this.trHeight = `${heightValue + Number(val)}px`\n },\n trTrimHeight(val) {\n // Remove height from existing height\n // Usage: Where new element is removed or height is remove (e.g. list pop/ele remove)\n\n /* Assumes:\n - Height is assigned and is `String`\n - Incoming value is valid number in `Number` or `String`\n */\n const heightValue = Number(this.trHeight.substring(0, this.trHeight.length - 2))\n this.trHeight = `${heightValue - Number(val)}px`\n },\n trSetHeight(val) {\n // Set height\n // Usage: Mostly for assigning initial value from mounted hook\n\n /* Assumes:\n - Height is not assigned and what to assign for add/remove operation\n - What to set height at something for odd usage\n - Incoming value is valid number in `Number` or `String`\n */\n if (val === null) this.trHeight = 'auto'\n else this.trHeight = `${Number(val)}px`\n },\n },\n}\n\n// Ignore below for now. We will remove it when we add more transition in future.\nexport const _ = null\n","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}","export const useInputImageRenderer = (inputEl, callback) => {\n const inputImageRenderer = () => {\n const file = inputEl.value.files[0]\n const reader = new FileReader()\n\n reader.addEventListener(\n 'load',\n () => {\n callback(reader.result)\n },\n false,\n )\n\n if (file) {\n reader.readAsDataURL(file)\n }\n }\n return {\n inputImageRenderer,\n }\n}\n\nexport const _ = null\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./urunler.vue?vue&type=style&index=0&id=2b155020&prod&scoped=true&lang=css&\"","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-row',_vm._l((_vm.urunlerData),function(product,index){return _c('div',{key:index},[_c('b-card',{staticClass:\"urunlerCard mt-5\"},[_c('b-card-text',[_c('h2',{staticClass:\"display-4 urunlerTitle mb-0\"},[_vm._v(\" \"+_vm._s(product.title)+\" \")]),_c('hr'),_c('div',{domProps:{\"innerHTML\":_vm._s(product.text)}})])],1)],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./urunlerDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./urunlerDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./urunlerDetail.vue?vue&type=template&id=0fe58e19&scoped=true&\"\nimport script from \"./urunlerDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./urunlerDetail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./urunlerDetail.vue?vue&type=style&index=0&id=0fe58e19&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0fe58e19\",\n null\n \n)\n\nexport default component.exports","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/Vue.extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","export var noop = function noop() {};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=style&index=0&id=437240a2&prod&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./footer.vue?vue&type=style&index=1&id=437240a2&prod&lang=scss&\""],"sourceRoot":""}