{"version":3,"sources":["webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./node_modules/parse-css-transition/to-millies.js","webpack:///./src/views/dashboard/customerProfile.vue?c987","webpack:///./src/store/customer-management/moduleCustomerManagementState.js","webpack:///./src/store/customer-management/moduleCustomerManagementMutations.js","webpack:///./src/store/customer-management/moduleCustomerManagementActions.js","webpack:///./src/store/customer-management/moduleCustomerManagementGetters.js","webpack:///./src/store/customer-management/moduleCustomerManagement.js","webpack:///./src/views/dashboard/components/tabUserInfo.vue?33a3","webpack:///src/views/dashboard/components/tabUserInfo.vue","webpack:///./src/views/dashboard/components/tabUserInfo.vue?eec5","webpack:///./src/views/dashboard/components/tabUserInfo.vue","webpack:///./src/views/dashboard/components/UserSettingsChangePassword.vue?15fa","webpack:///src/views/dashboard/components/UserSettingsChangePassword.vue","webpack:///./src/views/dashboard/components/UserSettingsChangePassword.vue?17b8","webpack:///./src/views/dashboard/components/UserSettingsChangePassword.vue","webpack:///./src/views/dashboard/components/UserSettingsSocialLinks.vue?45cd","webpack:///src/views/dashboard/components/UserSettingsSocialLinks.vue","webpack:///./src/views/dashboard/components/UserSettingsSocialLinks.vue?f60d","webpack:///./src/views/dashboard/components/UserSettingsSocialLinks.vue","webpack:///./src/views/dashboard/components/UserSettingsNotifications.vue?2f0a","webpack:///src/views/dashboard/components/UserSettingsNotifications.vue","webpack:///./src/views/dashboard/components/UserSettingsNotifications.vue?240e","webpack:///./src/views/dashboard/components/UserSettingsNotifications.vue","webpack:///src/views/dashboard/customerProfile.vue","webpack:///./src/views/dashboard/customerProfile.vue?00e8","webpack:///./src/views/dashboard/customerProfile.vue","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./src/views/dashboard/components/tabUserInfo.vue?5fc6","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vue-flatpickr-component/dist/vue-flatpickr.min.js","webpack:///./node_modules/parse-css-transition/index.js","webpack:///./node_modules/vue-smooth-height/src/index.js"],"names":["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","push","join","extraBytes","parts","maxChunkLength","len2","toString","module","isArray","call","toMillies","value","isMillies","endsWith","parseFloat","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","key","isSmallerScreen","activeTab","ref","model","callback","$$v","expression","$t","staticStyle","user_data","on","onCallSaveChanges","_e","onCallChangePassword","staticRenderFns","customers","ColDefinition","SET_USERS","state","REMOVE_RECORD","itemId","userIndex","findIndex","u","id","splice","changePassword","paramValue","commit","Promise","resolve","reject","axios","post","process","then","response","catch","error","fetchCustomerByUserName","context","userName","get","fetchCustomerById","customerId","updateUser","userInfo","getAllCountry","getAllDistrict","getAllProvince","getProvinceCountryIdAll","countryId","getDistrictProvinceIdAll","provinceId","isRegistered","namespaced","mutations","actions","getters","data_local","lastLogin","_v","_s","firstName","lastName","directives","name","rawName","errors","has","first","identityVerification","$set","languages","$i18n","locale","isAddressConfirmation","address","_n","item","langOptions","$vs","rtl","languageFilter","CountryOptions","CountryFilters","provinceOptions","ProvinceFilters","districtOptions","districtFilters","postCode","validateForm","save_changes","components","vSelect","Datepicker","quillEditor","VuePerfectScrollbar","flatPickr","props","data","type","Object","required","isDisabled","JSON","parse","stringify","cultures","districtId","valObj","isConfirmation","isSelected","tIndexer","tData","DialogShowing","activePrompt","computed","any","scrollbarTag","msg","methods","language","console","log","dialog","color","title","text","accept","SaveData","$store","dispatch","update_avatar","created","moduleCustomerManagement","registerModule","window","getEnumLanguages","map","watch","component","params","confirm_new_password","Email","AppActiveUser","email","Password","OldPassword","activeUserInfo","$emit","clearFields","sendMail","$event","tag","settings","preventDefault","mailTo","mailSubject","mailCC","mailBCC","editorOption","mailMessage","activeEmailPrompt","acceptAddEmail","val","activePhonePrompt","acceptAddPhone","emails","scopedSlots","_u","fn","_l","tr","indextr","ChangeDefault","slot","phones","modules","toolbar","placeholder","maxScrollbarLength","wheelSpeed","openConfirm","info","acceptAlert","cancel","cancelAlert","index","$nextTick","comment","answer","follow","news","product_update","blog","mixins","TabUserInfo","UserSettingsChangePassword","UserSettingsSocialLinks","UserSettingsNotifications","payload","fetch_user_data","showLoading","loading","container","scale","mounted","windowWidth","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","undefined","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","slice","bool","debounce","wait","t","clearTimeout","setTimeout","apply","arguments","arrayify","obj","toggleClass","elem","className","classList","add","remove","createElement","content","e","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","event","composedPath","path","target","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","H","J","day","K","getHours","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","l","m","month","n","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","split","c","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","forEach","isNaN","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","duration","DAY","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","assign","flatpickr","defaultConfig","setupHelperFunctions","utils","currentMonth","yr","currentYear","init","input","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","bind","requestAnimationFrame","calendarContainer","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","defaultDate","defaults","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","onYearInput","eventTarget","delta","changeYear","handler","ev","el","addEventListener","_handlers","removeEventListener","triggerChange","evt","prototype","querySelectorAll","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","open","monthNav","onMonthNavClick","selectDate","timeContainer","selText","select","timeIncrement","onBlur","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","abs","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","selected","buildMonth","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","defineProperty","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","getAttribute","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","destroy","lastChild","_type","removeAttribute","k","isCalendarElem","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","focusAndClose","ctrlKey","stopPropagation","elems","concat","pluginElements","filter","x","shiftKey","charAt","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","dataset","formats","_enable","set","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","querySelector","l10ns","default","customPositionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","sort","a","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","inputType","mobileFormatStr","defaultValue","step","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","which","newValue","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","args","TypeError","source","keys","read","buffer","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","pow","write","rt","floor","LN2","root","factory","installedModules","__webpack_require__","moduleId","getter","o","configurable","enumerable","__esModule","object","property","hasOwnProperty","p","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","find","query","register","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","__","constructor","ParchmentError","_super","_this","attributes","classes","tags","types","BlotClass","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","names","tagName","TYPE","Definitions","_i","Definition","blotName","attrName","keyName","toUpperCase","tagNames","diff","equal","extend","op","NULL_CHARACTER","fromCharCode","Delta","insert","newOp","retain","lastOp","unshift","chop","pop","predicate","partition","passed","failed","initial","changeLength","delete","iter","iterator","hasNext","nextOp","next","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","writable","getProperty","src","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_get","receiver","Function","desc","parent","getPrototypeOf","_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","values","attribute","BLOCK_ATTRIBUTE","def","block","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","cache","descendants","leaf","lines","shift","tail","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_d","done","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","debug","Quill","html","__quill","addContainer","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","events","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","lastRange","modify","update","contents","convert","setContents","readOnly","limit","level","imports","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","deleteText","enabled","scrollTop","scrollIntoView","_this4","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","height","getLength","_overload7","_overload8","getContents","getFormat","Number","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","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","modifier","strict","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","_map4","version","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","method","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","attributeBit","ATTRIBUTE","canAdd","replace","Code","_block","_block2","_Inline","CodeBlock","_Block","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","prev","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","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","image","list","bullet","_toConsumableArray","arr2","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","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","positions","indexes","_position","startContainer","endContainer","childNodes","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","last","scrollBounds","removeAllRanges","addRange","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","replacement","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","global","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","platform","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","metaKey","altKey","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","binding","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","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","label","togglePicker","escape","hasAttribute","selectItem","buildItem","buildLabel","buildOptions","trigger","Event","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","matches","result","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","record","undo","redo","dest","stack","changeDelta","undoDelta","delay","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","save","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","append","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","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","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","pointer","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","Events","EE","EventEmitter","_events","_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","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","marginTop","marginBottom","offsetTop","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","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","r","install","globalOptions","boundary","script","size","background","font","_options","_content","defaultOptions","Boolean","initialize","beforeDestroy","$el","$refs","pasteHTML","setText","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","f","beforeCreate","_injectStyles","esModule","_t","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","string","isEncoding","fromArrayLike","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","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","includes","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","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","toStringTag","onInput","validator","fp","getElem","fpInput","$on","$watch","watchDisabled","immediate","isTime","parseSingleTransition","transition","timingFunctionOrDelay","timingFunction","parseCssTransition","mixin","_addElement","addElement","_removeElement","removeElement","_smoothElements","setBeforeHeight","doSmoothReflow","SmoothElement","smoothEl","rootEl","iota","STATES","freeze","INACTIVE","ACTIVE","childTransitions","hideOverflow","hasExistingHeightTransition","beforeHeight","afterHeight","endListener","stopTransition","triggeredBy","passive","computedStyle","parsedTransition","hasHeightTransition","addHeightTransition","overflowY","overflowX","heightTransition","transitions","currentTarget","heightDiff","isRegisteredChildTransition"],"mappings":"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","file":"js/chunk-38fc22ba.2eb381ac.js","sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\nfunction toMillies(value) {\n if (!value) {\n return;\n }\n\n const isMillies = value.endsWith('ms');\n\n return parseFloat(value) * (isMillies ? 1 : 1000);\n}\n\nmodule.exports = toMillies;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',[_c('div',{staticClass:\"tab-social-links md:ml-4 md:mt-0 mt-4 ml-0\",attrs:{\"id\":\"Displayloading\"}}),_c('vs-tabs',{key:_vm.isSmallerScreen+_vm.activeTab,ref:\"vsTabs\",staticClass:\"tabs-shadow-none\",attrs:{\"position\":_vm.isSmallerScreen ? 'top' : 'left',\"id\":\"profile-tabs\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[_c('vs-tab',{ref:\"vsTabUserInfo\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-user\",\"label\":!_vm.isSmallerScreen || _vm.activeTab == 0 ? _vm.$t('Information') : ''}},[_c('div',{ref:\"container\",staticClass:\"tab-social-links md:ml-4 md:mt-0 mt-4 ml-0\",staticStyle:{\"overflow\":\"hidden !important\"}},[(_vm.user_data)?_c('tab-user-info',{attrs:{\"data\":_vm.user_data},on:{\"callSaveChanges\":_vm.onCallSaveChanges}}):_vm._e()],1)]),(0 === 1)?_c('vs-tab',{attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-github\",\"label\":!_vm.isSmallerScreen || _vm.activeTab == 1 ? _vm.$t('ContactInfo') : ''}},[_c('div',{ref:\"container\",staticClass:\"tab-social-links md:ml-4 md:mt-0 mt-4 ml-0\",staticStyle:{\"overflow\":\"hidden !important\"}},[(_vm.user_data)?_c('user-settings-social-links',{attrs:{\"data\":_vm.user_data},on:{\"callSaveChanges\":_vm.onCallSaveChanges}}):_vm._e()],1)]):_vm._e(),(0 === 1)?_c('vs-tab',{attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-bell\",\"label\":!_vm.isSmallerScreen || _vm.activeTab == 2 ? _vm.$t('Notifications') : ''}},[_c('div',{staticClass:\"tab-text md:ml-4 md:mt-0 mt-4 ml-0\"},[_c('user-settings-notifications')],1)]):_vm._e(),_c('vs-tab',{attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-lock\",\"label\":!_vm.isSmallerScreen || _vm.activeTab == 3 ? _vm.$t('ChangePassword') : ''}},[_c('div',{staticClass:\"tab-change-pwd md:ml-4 md:mt-0 mt-4 ml-0\"},[_c('user-settings-change-password',{on:{\"callChangePassword\":_vm.onCallChangePassword}})],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n customers: [],\r\n ColDefinition: []\r\n}\r\n","/*=========================================================================================\r\n File Name: moduleCalendarMutations.js\r\n Description: Calendar Module Mutations\r\n ----------------------------------------------------------------------------------------\r\n Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template\r\n Author: Pixinvent\r\n Author URL: http://www.themeforest.net/user/pixinvent\r\n==========================================================================================*/\r\n\r\n\r\nexport default {\r\n SET_USERS (state, customers) {\r\n state.customers = customers\r\n },\r\n REMOVE_RECORD (state, itemId) {\r\n const userIndex = state.customers.findIndex((u) => u.id === itemId)\r\n state.customers.splice(userIndex, 1)\r\n }\r\n}\r\n","import axios from '@/axios.js'\r\n\r\nexport default {\r\n changePassword ({commit}, paramValue) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${process.env.VUE_APP_IDS_SERVER }/Account/ChangePassword`, paramValue)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { \r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n \r\n fetchCustomerByUserName (context, userName) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetCustomer?UserName=${userName}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n fetchCustomerById (context, customerId) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetCustomerById?customerId=${customerId}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n updateUser (context, userInfo) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/UpdateCustomerAsync`, userInfo)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n getAllCountry ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetCountryAll`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n getAllDistrict ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetDistrictAll`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n \r\n getAllProvince ({ commit }) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetProvinceAll`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n getProvinceCountryIdAll ({ commit }, countryId) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetProvinceCountryIdAll?countryId=${countryId}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n\r\n getDistrictProvinceIdAll ({ commit }, provinceId) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${process.env.VUE_APP_API_GATEWAY_BASE_PATH }/Customer-Api/GetDistrictProvinceIdAll?provinceId=${provinceId}`)\r\n .then((response) => {\r\n resolve(response)\r\n })\r\n .catch((error) => { reject(error) })\r\n })\r\n },\r\n}\r\n","export default {}\r\n","\r\nimport state from './moduleCustomerManagementState.js'\r\nimport mutations from './moduleCustomerManagementMutations.js'\r\nimport actions from './moduleCustomerManagementActions.js'\r\nimport getters from './moduleCustomerManagementGetters.js'\r\n\r\nexport default {\r\n isRegistered: false,\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n}\r\n\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"no-shadow\":\"\"}},[_c('div',{attrs:{\"id\":\"tab-user-edit-info\"}},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('div',{staticClass:\"flex items-start flex-col sm:flex-row\"},[_c('div',[_c('p',{staticClass:\"text-lg font-medium mb-2 mt-4 sm:mt-0\",attrs:{\"title\":'LastLogin: ' + _vm.data_local.lastLogin}},[_vm._v(_vm._s(_vm.data_local.firstName + ' ' + _vm.data_local.lastName))]),_c('p',{staticClass:\"text-sm font-medium mb-2 mt-4 sm:mt-0\"})])])])]),_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col md:w-1/2 w-full\"},[_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],staticClass:\"w-full mt-4\",attrs:{\"disabled\":1==1,\"label\":_vm.$t('UserName'),\"value\":_vm.data_local.userName,\"name\":\"username\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('username')),expression:\"errors.has('username')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first('username')))]),_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|alpha_spaces'),expression:\"'required|alpha_spaces'\"}],staticClass:\"w-full mt-4\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-user\",\"disabled\":_vm.data_local.identityVerification==true,\"label\":_vm.$t('FirstName'),\"name\":\"firstName\"},model:{value:(_vm.data_local.firstName),callback:function ($$v) {_vm.$set(_vm.data_local, \"firstName\", $$v)},expression:\"data_local.firstName\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('firstName')),expression:\"errors.has('firstName')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first('firstName')))]),_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|alpha_spaces'),expression:\"'required|alpha_spaces'\"}],staticClass:\"w-full mt-4\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-user\",\"disabled\":_vm.data_local.identityVerification==true,\"label\":_vm.$t('LastName'),\"name\":\"lastName\"},model:{value:(_vm.data_local.lastName),callback:function ($$v) {_vm.$set(_vm.data_local, \"lastName\", $$v)},expression:\"data_local.lastName\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('lastName')),expression:\"errors.has('lastName')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first('lastName')))]),_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t('BirthDate')))]),_c('datepicker',{attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"language\":_vm.languages[this.$i18n.locale],\"format\":\"d MMMM yyyy\"},model:{value:(_vm.data_local.birthDate),callback:function ($$v) {_vm.$set(_vm.data_local, \"birthDate\", $$v)},expression:\"data_local.birthDate\"}})],1),_c('vs-input',{staticClass:\"w-full mt-4\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-book\",\"disabled\":_vm.data_local.isAddressConfirmation==true,\"label\":_vm.$t('Address'),\"name\":\"Address\"},model:{value:(_vm.address),callback:function ($$v) {_vm.address=$$v},expression:\"address\"}}),_c('div',{staticClass:\"vx-col w-full mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t('Gender')))]),_c('div',{staticClass:\"mt-2\"},[_c('vs-radio',{staticClass:\"mr-10\",attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"vs-name\":\"gender1\",\"vs-value\":\"1\"},model:{value:(_vm.data_local.gender),callback:function ($$v) {_vm.$set(_vm.data_local, \"gender\", _vm._n($$v))},expression:\"data_local.gender\"}},[_vm._v(_vm._s(_vm.$t('Man')))]),_c('vs-radio',{staticClass:\"mr-10\",attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"vs-name\":\"gender0\",\"vs-value\":\"0\"},model:{value:(_vm.data_local.gender),callback:function ($$v) {_vm.$set(_vm.data_local, \"gender\", _vm._n($$v))},expression:\"data_local.gender\"}},[_vm._v(_vm._s(_vm.$t('Woman')))]),_c('vs-radio',{staticClass:\"mr-10\",attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"vs-name\":\"gender2\",\"vs-value\":\"2\"},model:{value:(_vm.data_local.gender),callback:function ($$v) {_vm.$set(_vm.data_local, \"gender\", _vm._n($$v))},expression:\"data_local.gender\"}},[_vm._v(_vm._s(_vm.$t('Other')))])],1)])],1),_c('div',{staticClass:\"vx-col md:w-1/2 w-full\"},[_c('div',{staticClass:\"vx-col w-full mt-4\"},[_c('label',{staticClass:\"text-sm\"},[_vm._v(\"Languages\")]),_c('v-select',{attrs:{\"reduce\":function (item) { return item.id; },\"closeOnSelect\":true,\"options\":_vm.langOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'},model:{value:(_vm.languageFilter),callback:function ($$v) {_vm.languageFilter=$$v},expression:\"languageFilter\"}})],1),_c('div',{staticClass:\"vx-col w-full mt-4\"},[_c('label',{staticClass:\"text-sm\"},[_vm._v(_vm._s(_vm.$t('CountryName')))]),_c('v-select',{attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"closeOnSelect\":true,\"reduce\":function (item) { return item.id; },\"options\":_vm.CountryOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'},model:{value:(_vm.CountryFilters),callback:function ($$v) {_vm.CountryFilters=$$v},expression:\"CountryFilters\"}})],1),_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"text-sm opacity-75\"},[_vm._v(_vm._s(_vm.$t('ProvinceName')))]),_c('v-select',{staticClass:\"w-full\",attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"closeOnSelect\":true,\"reduce\":function (item) { return item.id; },\"options\":_vm.provinceOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'},model:{value:(_vm.ProvinceFilters),callback:function ($$v) {_vm.ProvinceFilters=$$v},expression:\"ProvinceFilters\"}})],1),_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"text-sm opacity-75\"},[_vm._v(_vm._s(_vm.$t('DistrictName')))]),_c('v-select',{staticClass:\"w-full\",attrs:{\"disabled\":_vm.data_local.identityVerification==true,\"closeOnSelect\":true,\"reduce\":function (item) { return item.id; },\"options\":_vm.districtOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'},model:{value:(_vm.districtFilters),callback:function ($$v) {_vm.districtFilters=$$v},expression:\"districtFilters\"}})],1),_c('vs-input',{staticClass:\"w-full mt-4\",attrs:{\"disabled\":_vm.data_local.isAddressConfirmation==true,\"label\":_vm.$t('PostCode'),\"name\":\"PostCode\"},model:{value:(_vm.postCode),callback:function ($$v) {_vm.postCode=$$v},expression:\"postCode\"}})],1)]),_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('div',{staticClass:\"mt-8 flex flex-wrap items-center justify-end\"},[_c('vs-button',{staticClass:\"ml-auto mt-2\",attrs:{\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-save\",\"disabled\":!_vm.validateForm},on:{\"click\":_vm.save_changes}},[_vm._v(_vm._s(_vm.$t('Save')))])],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--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tabUserInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tabUserInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./tabUserInfo.vue?vue&type=template&id=79b161a5&\"\nimport script from \"./tabUserInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./tabUserInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./tabUserInfo.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"no-shadow\":\"\"}},[_c('vs-alert',{staticClass:\"w-full mb-base\",attrs:{\"color\":\"dark\",\"title\":_vm.$t('Knowledge'),\"active\":\"true\"}},[_vm._v(_vm._s(_vm.$t('PasswordInfo')))]),_c('vs-input',{staticClass:\"w-full mb-base\",attrs:{\"type\":\"password\",\"icon-pack\":\"feather\",\"icon\":\"icon-lock\",\"label-placeholder\":_vm.$t('OldPassword')},model:{value:(_vm.params.OldPassword),callback:function ($$v) {_vm.$set(_vm.params, \"OldPassword\", $$v)},expression:\"params.OldPassword\"}}),_c('vs-input',{staticClass:\"w-full mb-base\",attrs:{\"type\":\"password\",\"icon-pack\":\"feather\",\"icon\":\"icon-lock\",\"label-placeholder\":_vm.$t('NewPassword')},model:{value:(_vm.params.Password),callback:function ($$v) {_vm.$set(_vm.params, \"Password\", $$v)},expression:\"params.Password\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('params.Password')),expression:\"errors.has('params.Password')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first('params.Password')))]),_c('vs-input',{staticClass:\"w-full mb-base\",attrs:{\"type\":\"password\",\"icon-pack\":\"feather\",\"icon\":\"icon-lock\",\"label-placeholder\":_vm.$t('ConfirmPassword')},model:{value:(_vm.confirm_new_password),callback:function ($$v) {_vm.confirm_new_password=$$v},expression:\"confirm_new_password\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('confirm_new_password')),expression:\"errors.has('confirm_new_password')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first('confirm_new_password')))]),_c('div',{staticClass:\"flex flex-wrap items-center justify-end\"},[_c('vs-button',{staticClass:\"ml-auto mt-2\",on:{\"click\":_vm.save_changes}},[_vm._v(_vm._s(_vm.$t('Save')))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsChangePassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsChangePassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserSettingsChangePassword.vue?vue&type=template&id=8a59f5c0&\"\nimport script from \"./UserSettingsChangePassword.vue?vue&type=script&lang=js&\"\nexport * from \"./UserSettingsChangePassword.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"no-shadow\":\"\"}},[_c('vs-prompt',{staticClass:\"email-compose\",attrs:{\"title\":\"New Message\",\"accept-text\":\"Send\",\"is-valid\":_vm.validateForm,\"active\":_vm.activePrompt},on:{\"cancel\":_vm.clearFields,\"accept\":_vm.sendMail,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.activePrompt=$event}}},[_c(_vm.scrollbarTag,{key:_vm.$vs.rtl,tag:\"component\",staticClass:\"scroll-area p-4\",attrs:{\"settings\":_vm.settings}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],staticClass:\"w-full mb-6\",attrs:{\"name\":\"mailTo\",\"label-placeholder\":\"To\",\"danger\":!_vm.validateForm && _vm.mailTo != '',\"val-icon-danger\":\"clear\",\"success\":_vm.validateForm,\"val-icon-success\":\"done\",\"color\":_vm.validateForm ? 'success' : 'danger'},model:{value:(_vm.mailTo),callback:function ($$v) {_vm.mailTo=$$v},expression:\"mailTo\"}}),_c('vs-input',{staticClass:\"w-full mb-6\",attrs:{\"name\":\"mailSubject\",\"label-placeholder\":\"Subject\"},model:{value:(_vm.mailSubject),callback:function ($$v) {_vm.mailSubject=$$v},expression:\"mailSubject\"}}),_c('vs-input',{staticClass:\"w-full mb-6\",attrs:{\"name\":\"mailCC\",\"label-placeholder\":\"CC\"},model:{value:(_vm.mailCC),callback:function ($$v) {_vm.mailCC=$$v},expression:\"mailCC\"}}),_c('vs-input',{staticClass:\"w-full mb-6\",attrs:{\"name\":\"mailBCC\",\"label-placeholder\":\"BCC\"},model:{value:(_vm.mailBCC),callback:function ($$v) {_vm.mailBCC=$$v},expression:\"mailBCC\"}}),_c('quill-editor',{attrs:{\"options\":_vm.editorOption},model:{value:(_vm.mailMessage),callback:function ($$v) {_vm.mailMessage=$$v},expression:\"mailMessage\"}}),_c('vs-upload',{staticClass:\"compose-mail-attachment\",attrs:{\"multiple\":\"\",\"text\":\"Attachments\",\"show-upload-button\":false}})],1)])],1),_c('vs-prompt',{attrs:{\"accept-text\":_vm.$t('Accept'),\"cancel-text\":_vm.$t('Cancel'),\"active\":_vm.activeEmailPrompt},on:{\"accept\":_vm.acceptAddEmail,\"update:active\":function($event){_vm.activeEmailPrompt=$event}}},[_c('div',{staticClass:\"con-exemple-prompt\"},[_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],staticClass:\"w-full mb-6\",attrs:{\"name\":\"inpEmail\",\"label-placeholder\":_vm.$t('EnterTheNewEmail'),\"danger\":_vm.errors.has('inpEmail'),\"val-icon-danger\":\"clear\",\"success\":! _vm.errors.has('inpEmail'),\"val-icon-success\":\"done\",\"color\":! _vm.errors.has('inpEmail') ? 'success' : 'danger'},model:{value:(_vm.val),callback:function ($$v) {_vm.val=$$v},expression:\"val\"}})],1)]),_c('vs-prompt',{attrs:{\"active\":_vm.activePhonePrompt},on:{\"accept\":_vm.acceptAddPhone,\"update:active\":function($event){_vm.activePhonePrompt=$event}}},[_c('div',{staticClass:\"con-exemple-prompt\"},[_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"w-full mb-6\",attrs:{\"type\":\"number\",\"name\":\"inpPhone\",\"label-placeholder\":_vm.$t('EnterTheNewPhone'),\"danger\":_vm.errors.has('inpPhone'),\"val-icon-danger\":\"clear\",\"success\":! _vm.errors.has('inpPhone'),\"val-icon-success\":\"done\",\"color\":! _vm.errors.has('inpPhone') ? 'success' : 'danger'},model:{value:(_vm.val),callback:function ($$v) {_vm.val=$$v},expression:\"val\"}})],1)]),_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t('CommunicationType')))]),_c('div',{staticClass:\"mt-2\"},[_c('vs-radio',{staticClass:\"mr-10\",attrs:{\"vs-name\":\"communicationType1\",\"vs-value\":\"1\"},model:{value:(_vm.data_local.communicationType),callback:function ($$v) {_vm.$set(_vm.data_local, \"communicationType\", _vm._n($$v))},expression:\"data_local.communicationType\"}},[_vm._v(_vm._s(_vm.$t('Email')))]),_c('vs-radio',{staticClass:\"mr-10\",attrs:{\"vs-name\":\"communicationType2\",\"vs-value\":\"2\"},model:{value:(_vm.data_local.communicationType),callback:function ($$v) {_vm.$set(_vm.data_local, \"communicationType\", _vm._n($$v))},expression:\"data_local.communicationType\"}},[_vm._v(_vm._s(_vm.$t('Phone')))])],1)]),_c('vs-divider',{attrs:{\"icon-pack\":\"feather\",\"border-style\":\"dashed\",\"icon\":\"icon-phone\",\"position\":\"center\",\"color\":\"dark\"}}),_c('div',{staticClass:\"vx-col lg:w-1/2 w-full\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t('Emails')))]),_c('vs-table',{attrs:{\"stripe\":\"\",\"data\":_vm.data_local.emails},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar data = ref.data;\nreturn _vm._l((data),function(tr,indextr){return _c('vs-tr',{key:indextr},[_c('vs-td',{attrs:{\"data\":data[indextr].value,\"width\":\"80%\"}},[_c('feather-icon',{attrs:{\"icon\":\"CircleIcon\",\"svgClasses\":['fill-current h-4 w-4', data[indextr].isConfirmation ? 'text-success' : 'text-grey']}}),_vm._v(\"\\n \"+_vm._s(data[indextr].value)+\"\\n \")],1),_c('vs-td',{attrs:{\"data\":data[indextr].isSelected}},[_c('vs-switch',{attrs:{\"disabled\":data[indextr].isSelected || !data[indextr].isConfirmation,\"vs-icon-on\":\"check\",\"color\":\"primary\"},on:{\"change\":function($event){return _vm.ChangeDefault(data,indextr)}},model:{value:(data[indextr].isSelected),callback:function ($$v) {_vm.$set(data[indextr], \"isSelected\", $$v)},expression:\"data[indextr].isSelected\"}},[_c('span',{attrs:{\"slot\":\"off\"},slot:\"off\"},[_vm._v(\"Default\")])])],1),_c('vs-td',{attrs:{\"data\":data[indextr].isSelected}},[_c('div',{staticClass:\"flex\"},[(!data[indextr].isConfirmation)?_c('vs-button',{staticClass:\"mr-2\",attrs:{\"type\":\"border\",\"size\":\"small\",\"icon-pack\":\"feather\",\"icon\":\"icon-send\",\"color\":\"success\"}}):_vm._e()],1)])],1)})}}])}),_c('div',{staticClass:\"mt-4\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-plus\"},on:{\"click\":function($event){_vm.activeEmailPrompt = true}}})],1)],1),_c('div',{staticClass:\"vx-col lg:w-1/2 w-full\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t('Phones')))]),_c('vs-table',{attrs:{\"stripe\":\"\",\"data\":_vm.data_local.phones},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar data = ref.data;\nreturn _vm._l((data),function(tr,indextr){return _c('vs-tr',{key:indextr},[_c('vs-td',{attrs:{\"data\":data[indextr].value,\"width\":\"80%\"}},[_c('feather-icon',{attrs:{\"icon\":\"CircleIcon\",\"svgClasses\":['fill-current h-4 w-4', data[indextr].isConfirmation ? 'text-success' : 'text-grey']}}),_vm._v(\"\\n \"+_vm._s(data[indextr].value)+\"\\n \")],1),_c('vs-td',{attrs:{\"data\":data[indextr].isConfirmation}},[_c('vs-switch',{attrs:{\"color\":\"success\"},model:{value:(data[indextr].isConfirmation),callback:function ($$v) {_vm.$set(data[indextr], \"isConfirmation\", $$v)},expression:\"data[indextr].isConfirmation\"}},[_c('span',{attrs:{\"slot\":\"on\"},slot:\"on\"},[_vm._v(_vm._s(_vm.$t('Confirm')))]),_c('span',{attrs:{\"slot\":\"off\"},slot:\"off\"},[_vm._v(_vm._s(_vm.$t('Cancel')))])])],1),_c('vs-td',{attrs:{\"data\":data[indextr].isSelected}},[_c('vs-switch',{attrs:{\"disabled\":data[indextr].isSelected || !data[indextr].isConfirmation,\"vs-icon-on\":\"check\",\"color\":\"primary\"},on:{\"change\":function($event){return _vm.ChangeDefault(data,indextr)}},model:{value:(data[indextr].isSelected),callback:function ($$v) {_vm.$set(data[indextr], \"isSelected\", $$v)},expression:\"data[indextr].isSelected\"}},[_c('span',{attrs:{\"slot\":\"off\"},slot:\"off\"},[_vm._v(\"Default\")])])],1),_c('vs-td',{attrs:{\"data\":data[indextr].isSelected}},[_c('div',{staticClass:\"flex\"},[(!data[indextr].isConfirmation)?_c('vs-button',{staticClass:\"mr-2\",attrs:{\"type\":\"border\",\"size\":\"small\",\"icon-pack\":\"feather\",\"icon\":\"icon-send\",\"color\":\"success\"}}):_vm._e()],1)])],1)})}}])}),_c('div',{staticClass:\"mt-4\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-plus\"},on:{\"click\":function($event){_vm.activePhonePrompt = true}}})],1)],1)],1),_c('div',{staticClass:\"flex flex-wrap items-center justify-end\"},[_c('vs-button',{staticClass:\"ml-auto mt-2\",on:{\"click\":_vm.save_changes}},[_vm._v(_vm._s(_vm.$t('Save')))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsSocialLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsSocialLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserSettingsSocialLinks.vue?vue&type=template&id=26f8903c&\"\nimport script from \"./UserSettingsSocialLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./UserSettingsSocialLinks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"no-shadow\":\"\"}},[_c('div',{staticClass:\"mb-base\"},[_c('h6',{staticClass:\"mb-4\"},[_vm._v(\"Activity\")]),_c('div',{staticClass:\"flex items-center mb-4\"},[_c('vs-switch',{model:{value:(_vm.comment),callback:function ($$v) {_vm.comment=$$v},expression:\"comment\"}}),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"Email me when someone comments on my article\")])],1),_c('div',{staticClass:\"flex items-center mb-4\"},[_c('vs-switch',{model:{value:(_vm.answer),callback:function ($$v) {_vm.answer=$$v},expression:\"answer\"}}),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"Email me when someone answers on my form\")])],1),_c('div',{staticClass:\"flex items-center mb-4\"},[_c('vs-switch',{model:{value:(_vm.follow),callback:function ($$v) {_vm.follow=$$v},expression:\"follow\"}}),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"Email me hen someone follows me\")])],1)]),_c('div',[_c('h6',{staticClass:\"mb-4\"},[_vm._v(\"Application\")]),_c('div',{staticClass:\"flex items-center mb-4\"},[_c('vs-switch',{model:{value:(_vm.news),callback:function ($$v) {_vm.news=$$v},expression:\"news\"}}),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"News and announcements\")])],1),_c('div',{staticClass:\"flex items-center mb-4\"},[_c('vs-switch',{model:{value:(_vm.product_update),callback:function ($$v) {_vm.product_update=$$v},expression:\"product_update\"}}),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"Weekly product updates\")])],1),_c('div',{staticClass:\"flex items-center\"},[_c('vs-switch',{model:{value:(_vm.blog),callback:function ($$v) {_vm.blog=$$v},expression:\"blog\"}}),_c('span',{staticClass:\"ml-4\"},[_vm._v(\"Weekly blog digest\")])],1)]),_c('div',{staticClass:\"flex flex-wrap items-center justify-end mt-base\"},[_c('vs-button',{staticClass:\"ml-auto mt-2\"},[_vm._v(\"Save Changes\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsNotifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsNotifications.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserSettingsNotifications.vue?vue&type=template&id=97249b4e&\"\nimport script from \"./UserSettingsNotifications.vue?vue&type=script&lang=js&\"\nexport * from \"./UserSettingsNotifications.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./customerProfile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./customerProfile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./customerProfile.vue?vue&type=template&id=48a0e0e1&\"\nimport script from \"./customerProfile.vue?vue&type=script&lang=js&\"\nexport * from \"./customerProfile.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n \n ${weekdays.join(\"\")}\n \n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tabUserInfo.vue?vue&type=style&index=0&lang=scss&\"","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\n };\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * 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});","!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}])});","/*!\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","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"flatpickr\")):\"function\"==typeof define&&define.amd?define(\"VueFlatpickr\",[\"flatpickr\"],e):\"object\"==typeof exports?exports.VueFlatpickr=e(require(\"flatpickr\")):t.VueFlatpickr=e(t.flatpickr)}(\"undefined\"!=typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";n.r(e),n.d(e,\"Component\",(function(){return p})),n.d(e,\"Plugin\",(function(){return d}));var r=n(0),o=n.n(r),i=[\"onChange\",\"onClose\",\"onDestroy\",\"onMonthChange\",\"onOpen\",\"onYearChange\"];function u(){return(u=Object.assign||function(t){for(var e=1;e value.trim())\n .filter(value => value.length > 0)\n .map(parseSingleTransition);\n}\n\nmodule.exports = parseCssTransition;\n","import parseCssTransition from 'parse-css-transition'\r\n\r\nconst mixin = {\r\n methods: {\r\n $smoothElement(options) {\r\n let _addElement = addElement.bind(this)\r\n if (Array.isArray(options))\r\n options.forEach(_addElement)\r\n else\r\n _addElement(options)\r\n },\r\n $unsmoothElement(options) {\r\n let _removeElement = removeElement.bind(this)\r\n if (Array.isArray(options))\r\n options.forEach(_removeElement)\r\n else\r\n _removeElement(options)\r\n },\r\n },\r\n created() {\r\n this._smoothElements = []\r\n },\r\n beforeUpdate() {\r\n if (!this._smoothElements || !this._smoothElements.length)\r\n return\r\n this._smoothElements.forEach(e => {\r\n // Retrieve registered element on demand\r\n // El could have been hidden by v-if/v-show\r\n let $el = select(this.$el, e.options.el)\r\n e.setBeforeHeight($el)\r\n })\r\n },\r\n updated() {\r\n if (!this._smoothElements || !this._smoothElements.length)\r\n return\r\n this.$nextTick(()=>{\r\n this._smoothElements.forEach(e => {\r\n // Retrieve registered element on demand\r\n // El could have been hidden by v-if/v-show\r\n let $el = select(this.$el, e.options.el)\r\n e.doSmoothReflow($el)\r\n })\r\n })\r\n }\r\n}\r\n\r\n// 'this' is vue component\r\nfunction addElement(option = {}) {\r\n if (!option.hasOwnProperty('el')) {\r\n option.el = this.$el\r\n }\r\n this._smoothElements.push(new SmoothElement(option))\r\n}\r\n\r\n// 'this' is vue component\r\nfunction removeElement(option) {\r\n let root = this.$el\r\n let index = this._smoothElements.findIndex(d => {\r\n return select(root, d.el) === select(root, option.el)\r\n })\r\n if (index == -1) {\r\n console.error(\"VSM_ERROR: $unsmoothElement failed due to invalid el option\")\r\n return\r\n }\r\n let smoothEl = this._smoothElements[index]\r\n smoothEl.remove()\r\n this._smoothElements.splice(index, 1)\r\n}\r\n\r\nfunction select(rootEl, el) {\r\n if (typeof el === 'string')\r\n return rootEl.matches(el) ? rootEl : rootEl.querySelector(el)\r\n else\r\n return el\r\n}\r\n\r\nlet iota = 0\r\nconst STATES = Object.freeze({\r\n INACTIVE: iota++,\r\n ACTIVE: iota++\r\n})\r\n\r\nclass SmoothElement {\r\n constructor(options) {\r\n options = {\r\n // Element or selector string.\r\n el: null,\r\n // User can specify a transition if they don't want to use CSS\r\n transition: 'height .5s',\r\n // Element or selector string that will emit a transitionend event.\r\n childTransitions: null,\r\n hideOverflow: false,\r\n debug: false,\r\n ...options\r\n }\r\n Object.assign(this, {\r\n $el: null,// Resolved Element from el\r\n hasExistingHeightTransition: false,\r\n beforeHeight: null,\r\n afterHeight: null,\r\n state: STATES.INACTIVE,\r\n options,\r\n })\r\n // transition end callback will call endListener, so it needs the correct context\r\n this.endListener = this.endListener.bind(this)\r\n }\r\n transition(to) {\r\n this.state = to\r\n }\r\n /**\r\n * Indicates if the smooth transition increased or decreased the elements height\r\n * A positive result means the height was increased\r\n */\r\n get heightDiff() {\r\n let { beforeHeight, afterHeight } = this\r\n if (beforeHeight == null || afterHeight == null) {\r\n return 0\r\n }\r\n return afterHeight - beforeHeight\r\n }\r\n setBeforeHeight($el) {\r\n // This property could be set by a previous update\r\n // Reset it so it doesn't affect the current update\r\n this.afterHeight = null\r\n\r\n let height\r\n if ($el) {\r\n height = $el.offsetHeight\r\n }\r\n\r\n this.beforeHeight = height\r\n if (this.state === STATES.ACTIVE) {\r\n this.stopTransition()\r\n this.log('Transition was interrupted.')\r\n }\r\n }\r\n doSmoothReflow($el, triggeredBy = 'data update') {\r\n if (!$el) {\r\n this.log(\"Could not find registered el.\")\r\n return\r\n }\r\n this.$el = $el\r\n this.transition(STATES.ACTIVE)\r\n $el.addEventListener('transitionend', this.endListener, { passive: true })\r\n this.log(`Height transition triggered by: ${triggeredBy}`)\r\n\r\n let { beforeHeight, options } = this\r\n\r\n // If this.afterHeight is set, that means doSmoothReflow() was called after\r\n // a nested transition finished. This check is made to ensure that\r\n // a height transition only occurs on a false conditional render,\r\n // a.k.a. an element is being hidden rather than shown.\r\n // VSM works normally on a true conditional render.\r\n let afterHeight = $el.offsetHeight\r\n if (this.afterHeight != null && this.afterHeight === afterHeight) {\r\n this.log(`Element height did not change after nested transition. Height = ${afterHeight}`)\r\n this.transition(STATES.INACTIVE)\r\n return\r\n }\r\n if (beforeHeight === afterHeight) {\r\n this.log(`Element height did not change. Height = ${afterHeight}`)\r\n this.transition(STATES.INACTIVE)\r\n return\r\n }\r\n this.afterHeight = afterHeight\r\n this.log(`Previous height: ${beforeHeight} Current height: ${afterHeight}`)\r\n\r\n let computedStyle = window.getComputedStyle($el)\r\n let parsedTransition = parseCssTransition(computedStyle.transition)\r\n if (this.hasHeightTransition(parsedTransition)) {\r\n this.hasExistingHeightTransition = true\r\n } else {\r\n this.hasExistingHeightTransition = false\r\n this.addHeightTransition(parsedTransition, options.transition)\r\n }\r\n\r\n if (options.hideOverflow) {\r\n //save overflow properties before overwriting\r\n let overflowY = computedStyle.overflowY,\r\n overflowX = computedStyle.overflowX\r\n\r\n this.overflowX = overflowX\r\n this.overflowY = overflowY\r\n\r\n $el.style.overflowX = 'hidden'\r\n $el.style.overflowY = 'hidden'\r\n }\r\n\r\n $el.style['height'] = beforeHeight + 'px'\r\n $el.offsetHeight // Force reflow\r\n $el.style['height'] = afterHeight + 'px'\r\n }\r\n hasHeightTransition(parsedTransition) {\r\n return parsedTransition.find(t => {\r\n return ['all','height'].includes(t.name) && t.duration > 0\r\n })\r\n }\r\n // Delay and Duration are in milliseconds\r\n // Add height transition to existing transitions.\r\n addHeightTransition(parsedTransition, heightTransition) {\r\n let transitions = parsedTransition.map(t => {\r\n return `${t.name} ${t.duration}ms ${t.timingFunction} ${t.delay}ms`\r\n })\r\n this.$el.style.transition = [...transitions, heightTransition].join(',')\r\n }\r\n endListener(e) {\r\n // Transition on smooth element finished\r\n if (e.currentTarget === e.target) {\r\n if (e.propertyName === 'height') {\r\n this.stopTransition()\r\n // Record the height AFTER the data change, but potentially\r\n // BEFORE any child transitions start.\r\n // Useful for cases like transition mode=\"out-in\"\r\n this.setBeforeHeight(this.$el)\r\n }\r\n }\r\n // Transition on element INSIDE smooth element finished\r\n // heightDiff <= 0 prevents calling doSmoothReflow during a\r\n // transition that increases height.\r\n // solves the case where a nested transition duration is\r\n // shorter than the height transition duration, causing doSmoothReflow\r\n // to reflow in the middle of the height transition\r\n else if (this.heightDiff <= 0 && this.isRegisteredChildTransition(e)) {\r\n this.doSmoothReflow(this.$el, 'child transition')\r\n }\r\n }\r\n isRegisteredChildTransition(e) {\r\n let { childTransitions } = this.options\r\n return e.target.matches(childTransitions)\r\n }\r\n stopTransition() {\r\n let {\r\n $el, options, overflowX, overflowY,\r\n hasExistingHeightTransition,\r\n } = this\r\n\r\n $el.style['height'] = null // Change height back to auto\r\n if (options.hideOverflow) {\r\n // Restore original overflow properties\r\n $el.style.overflowX = overflowX\r\n $el.style.overflowY = overflowY\r\n }\r\n // Clean up inline transition\r\n if (!hasExistingHeightTransition) {\r\n $el.style.transition = null\r\n }\r\n\r\n this.transition(STATES.INACTIVE)\r\n }\r\n remove() {\r\n this.$el.removeEventListener('transitionend', this.endListener)\r\n }\r\n log(text) {\r\n if (this.options.debug)\r\n console.log(`VSM_DEBUG: ${text}`, this.$el)\r\n }\r\n}\r\n\r\nexport default mixin\r\n"],"sourceRoot":""}