{"version":3,"sources":["webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI.js","webpack:///./src/views/settings/payroll.vue?e07b","webpack:///src/views/settings/payroll.vue","webpack:///./src/views/settings/payroll.vue?b739","webpack:///./src/views/settings/payroll.vue","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/constants.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE39/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/ITF.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js","webpack:///./node_modules/jsbarcode/bin/renderers/object.js","webpack:///./node_modules/jsbarcode/bin/help/optionsFromStrings.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js","webpack:///./node_modules/vue2-editor/dist/vue2-editor.esm.js","webpack:///./src/components/Inputs/HtmlEditor.vue?e380","webpack:///src/components/Inputs/HtmlEditor.vue","webpack:///./src/components/Inputs/HtmlEditor.vue?f2f4","webpack:///./src/components/Inputs/HtmlEditor.vue","webpack:///./node_modules/vue-multiselect/dist/vue-multiselect.min.css?1311","webpack:///./node_modules/jsbarcode/bin/JsBarcode.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/checksums.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js","webpack:///./node_modules/jsbarcode/bin/renderers/canvas.js","webpack:///./node_modules/jsbarcode/bin/renderers/index.js","webpack:///./node_modules/jsbarcode/bin/help/fixOptions.js","webpack:///./node_modules/jsbarcode/bin/barcodes/pharmacode/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/index.js","webpack:///./node_modules/jsbarcode/bin/help/linearizeEncodings.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js","webpack:///./node_modules/jsbarcode/bin/help/getOptionsFromElement.js","webpack:///./node_modules/jsbarcode/bin/renderers/shared.js","webpack:///./node_modules/jsbarcode/bin/help/getRenderProperties.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/auto.js","webpack:///./node_modules/jsbarcode/bin/exceptions/ErrorHandler.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js","webpack:///./node_modules/jsbarcode/bin/renderers/svg.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js","webpack:///./node_modules/jsbarcode/bin/barcodes/codabar/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js","webpack:///./src/views/settings/payroll.vue?3369","webpack:///./node_modules/qrcode-js-package/qrcode.js","webpack:///./node_modules/jsbarcode/bin/options/defaults.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/index.js","webpack:///./node_modules/jsbarcode/bin/exceptions/exceptions.js","webpack:///./node_modules/vue-qrcode-component/src/QRCode.vue?bcb5","webpack:///node_modules/vue-qrcode-component/src/QRCode.vue","webpack:///./node_modules/vue-qrcode-component/src/QRCode.vue?8097","webpack:///./node_modules/vue-qrcode-component/src/QRCode.vue","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/Barcode.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/constants.js","webpack:///./node_modules/vue-barcode/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js","webpack:///./node_modules/jsbarcode/bin/help/merge.js","webpack:///./node_modules/jsbarcode/bin/barcodes/index.js"],"names":["Object","defineProperty","exports","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_ITF2","_ITF3","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","checksum","data","res","substr","split","map","num","parseInt","reduce","sum","n","idx","Math","ceil","ITF14","_ITF","options","this","search","getPrototypeOf","_Barcode2","_Barcode3","MSI","_Barcode","ret","digit","bin","toString","addZeroes","b","text","number","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","loading","on","$event","slot","_v","model","uom","callback","$$v","$set","expression","nativeOn","addProductUom","apply","arguments","_s","language_terms","non_fixed_incomes","_l","item","j","code","name","account","ordinary_wages","additional_wages","non_wage_item","cpf","is_default","deleteUOM","_e","date","wf","wt","rate","onClickBatchRun","payrolls","scopedSlots","_u","fn","staticStyle","proxy","ref","ok","cancel","addBomItemToGroup","cancelAddBomModal","add_bom_product_modal","apiProductLookup","bom","product_code","product","id","isLocked","selectProduct","option","label","staticRenderFns","components","VueEditor","productLookup","Loading","Dropzone","HtmlEditor","computed","watch","methods","clickOnIsDefaultbox","performAddProductToGroup","setDefault","addBomGroup","onChangeBomProperty","handleCollaspeBomGroup","confirmButtonText","cancelButtonText","type","handleCollaspe","updateBomFiledTerms","product_data","removeBomItemFromGroup","hasDefaultCount","isFoundInList","console","log","loadCategories","loadCurrencies","cancelProduct","component","_get","get","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","parent","getter","_EAN2","_EAN3","a","EAN8","_EAN","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","len","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","UPCE","UPC","EAN2","EAN5","EAN13","_EAN4","_EAN5","_EAN6","_EAN7","_EAN8","_UPC","_UPC2","_UPCE","_UPCE2","START_BIN","END_BIN","BINARIES","CODE39","toUpperCase","mod43","getCharacter","mod43checksum","result","getEncoding","characters","encodings","character","getBinary","characterValue","_constants","ITF","_this2","encoded","match","pair","encodePair","second","first","_MSI2","_MSI3","_checksums","MSI11","_MSI","mod11","MSI10","mod10","CODE128","_this","substring","bytes","char","test","startIndex","shift","startSet","SET_BY_CODE","RangeError","shouldEncodeAsEan128","unshift","FNC1","encodingResult","next","replace","getBar","MODULO","STOP","isEAN128","ean128","toLowerCase","index","BARS","set","SET_A","charCode","SET_B","pos","nextCode","nextSet","SWAP","SHIFT","correctIndex","enc","weight","ObjectRenderer","optionsFromStrings","intOptions","intOption","hasOwnProperty","encode","structure","separator","val","last","_encoder","_encoder2","EAN5_STRUCTURE","defaultToolbar","header","align","list","indent","color","background","oldApi","customModules","registerCustomModules","Quill","forEach","customModule","register","alias","module","_typeof","Symbol","iterator","_defineProperties","_setPrototypeOf","_getPrototypeOf","o","p","_assertThisInitialized","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","isArray","_arr","_n","_d","_i","done","err","mergeDeep","source","isObject","keys","targetValue","sourceValue","concat","assign","BlockEmbed","import","HorizontalRule","_BlockEmbed","blotName","tagName","MarkdownShortcuts","quill","ignoreTags","matches","pattern","action","selection","exec","size","setTimeout","formatLine","deleteText","_text","_selection","lineStart","annotatedText","matchedText","insertText","bold","italic","format","strike","getSelection","insertEmbed","sources","USER","SILENT","setSelection","_pattern","hrefLink","slice","hrefText","delta","_oldContents","_source","ops","insert","onSpace","onEnter","_this$quill$getLine","getLine","_this$quill$getLine2","line","offset","domNode","textContent","isValid","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","_this$quill$getLine3","_this$quill$getLine4","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","script","mixins","String","placeholder","disabled","Boolean","editorToolbar","editorOptions","required","useCustomImageHandler","useMarkdownShortcuts","root","innerHTML","hasFocus","status","enable","mounted","registerPrototypes","initializeEditor","beforeDestroy","setupQuillEditor","checkForCustomImageHandler","handleInitialContent","registerEditorEventListeners","$emit","editorConfig","debug","modules","setModules","theme","readOnly","prepareEditorConfig","$refs","quillContainer","toolbar","getHTML","container","querySelector","getWordCount","innerText","handleTextChange","handleSelectionChange","listenForEditorEvent","_len","args","_key","range","oldRange","oldContents","editorContent","handleImageRemoved","currrentContents","getContents","deletedContents","diff","operations","operation","image","setupCustomImageHandler","getModule","addHandler","customImageHandler","fileInput","click","emitImageInfo","resetUploader","uploader","document","getElementById","file","files","Editor","cursorLocation","normalizeComponent","template","style","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","HEAD","normalizeComponent_1","isOldIE","navigator","userAgent","addStyle","styles","css","group","media","ids","Set","has","btoa","unescape","encodeURIComponent","JSON","stringify","element","createElement","setAttribute","head","getElementsByTagName","appendChild","styleSheet","cssText","filter","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","browser","__vue_script__","__vue_render__","_t","__vue_staticRenderFns__","__vue_inject_styles__","inject","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","version","install","Vue","installed","VPlugin","GlobalVue","window","global","use","toolbarId","_m","editorId","_barcodes","_barcodes2","_merge","_merge2","_linearizeEncodings","_linearizeEncodings2","_fixOptions","_fixOptions2","_getRenderProperties","_getRenderProperties2","_optionsFromStrings","_optionsFromStrings2","_ErrorHandler","_ErrorHandler2","_exceptions","_defaults","_defaults2","API","JsBarcode","api","_renderProperties","_encodings","_options","_errorHandler","autoSelectBarcode","registerBarcode","barcodes","wrapBarcodeCall","newOptions","Encoder","encoder","valid","InvalidInputException","renderProperties","Renderer","renderer","afterRender","blank","zeroes","init","renderProperty","NoElementException","jQuery","content","elementArray","each","floor","weights","_CODE2","_CODE3","_auto","_auto2","CODE128AUTO","_CODE","CODE128B","string","B_START_CHAR","RegExp","B_CHARS","_shared","CanvasRenderer","canvas","getContext","prepareCanvas","encodingOptions","drawCanvasBarcode","drawCanvasText","moveCanvasDrawing","restoreCanvas","ctx","save","calculateEncodingAttributes","totalWidth","getTotalWidthOfEncodings","maxHeight","getMaximumHeightOfEncodings","width","marginLeft","marginRight","height","clearRect","fillStyle","fillRect","translate","encoding","yFrom","binary","textPosition","marginTop","fontSize","textMargin","lineColor","x","barcodePadding","y","font","fontOptions","displayValue","textAlign","fillText","restore","_canvas","_canvas2","_svg","_svg2","_object","_object2","SVGRenderer","fixOptions","margin","marginBottom","pharmacode","z","isNaN","MSI1110","MSI1010","lastChar","EAN13_STRUCTURE","_MSI4","_MSI5","_MSI6","_MSI7","_MSI8","_MSI9","_MSI10","read","buffer","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","pow","write","c","rt","abs","LN2","factory","installedModules","__webpack_require__","moduleId","l","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","find","query","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","__","ParchmentError","_super","message","attributes","classes","tags","types","input","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","parentNode","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","TYPE","Definitions","Definition","attrName","keyName","className","tagNames","tag","equal","extend","op","NULL_CHARACTER","fromCharCode","Delta","newOp","retain","lastOp","splice","chop","pop","predicate","partition","passed","failed","initial","changeLength","elem","delete","iter","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","min","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copy","copyIsArray","clone","deep","bubbleFormats","_extend","_extend2","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text2","NEWLINE_LENGTH","_Parchment$Embed","formats","values","attribute","BLOCK_ATTRIBUTE","def","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","children","tail","remove","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","sliceIterator","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","error","html","trim","classList","__quill","addContainer","scrollingContainer","emitter","scroll","whitelist","editor","keyboard","addModule","clipboard","history","events","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","mutations","lastRange","modify","update","contents","convert","setContents","clear","disable","limit","level","imports","path","overwrite","warn","startsWith","refNode","setRange","_this3","_overload","_overload2","enabled","scrollTop","focus","scrollIntoView","_this4","change","formatText","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","left","right","getLength","_overload7","_overload8","getFormat","Number","MAX_VALUE","getRange","_overload9","_overload10","getText","embed","_this7","_this8","_overload11","_overload12","contains","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","_this11","userConfig","DEFAULTS","themeConfig","config","moduleNames","moduleConfig","moduleClass","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","_map2","_map3","max","_map4","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","addEventListener","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","event","_len2","_key2","_ref","handler","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","levels","method","_console","namespace","ns","logger","bind","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","sort","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","frag","_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","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","bullet","_toConsumableArray","arr2","from","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","body","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","resolve","reject","then","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","binding","normalize","which","keyCode","defaultPrevented","_quill$getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","preventDefault","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","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","_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","select","buildPicker","display","togglePicker","escape","tabIndex","hasAttribute","selectItem","buildItem","selected","buildLabel","buildOptions","close","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","attr","ClassAttributor","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","timestamp","now","delay","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","handlers","formula","edit","reader","FileReader","onload","readAsDataURL","video","_Tooltip","boundsContainer","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","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","token","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","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","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","selector","matcher","matchVisual","addMatcher","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","_pair","applyFormat","computeStyle","nodeType","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","parseFloat","offsetTop","fontStyle","fontWeight","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","clearTimeout","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","_ITF4","linearizeEncodings","linearEncodings","nextLevel","EAN2_STRUCTURE","getOptionsFromElement","getBarcodePadding","getEncodingHeight","textWidth","barcodeWidth","barcodeOptions","messureText","measureTextResult","measureText","_getOptionsFromElement","_getOptionsFromElement2","_renderers","_renderers2","getRenderProperties","querySelectedRenderProperties","returnArray","HTMLCanvasElement","HTMLImageElement","newCanvasRenderProperties","nodeName","SVGElement","InvalidElementException","imgElement","toDataURL","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","arg","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","checked","isEncoding","fromArrayLike","array","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","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","matchSetALength","A_CHARS","matchSetBLength","matchSetC","C_CHARS","autoSelectFromAB","isA","ranges","untilC","autoSelectFromC","chars","cMatch","newString","cLength","C_START_CHAR","A_START_CHAR","ErrorHandler","func","handleCatch","EAN","flat","guardHeight","encodeFlat","encodeGuarded","to","textOptions","guardOptions","SIDE_BIN","leftEncode","leftText","MIDDLE_BIN","rightEncode","rightText","svgns","svg","xmlDocument","currentX","prepareSVG","createGroup","setGroupOptions","drawSvgBarcode","drawSVGText","firstChild","setSvgAttributes","drawRect","barWidth","textElem","createElementNS","EXPANSIONS","PARITIES","middleDigits","upcA","expandToUPCA","flatEncoding","guardedEncoding","encodeMiddleDigits","numberSystem","checkDigit","parity","lastUpcE","expansion","digitIndex","codabar","getEncodings","QRCode","QR8bitByte","QRMode","MODE_8BIT_BYTE","parsedData","QRCodeModel","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","put","addData","newData","isDark","row","col","getModuleCount","make","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","minLostPoint","lostPoint","QRUtil","getLostPoint","createMovieClip","target_mc","instance_name","qr_mc","createEmptyMovieClip","cs","dark","beginFill","moveTo","lineTo","endFill","getPatternPosition","bits","getBCHTypeNumber","mod","getBCHTypeInfo","inc","bitIndex","byteIndex","mask","getMask","PAD0","PAD1","rsBlocks","QRRSBlock","getRSBlocks","QRBitBuffer","getLengthInBits","totalDataCount","dataCount","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","rsPoly","getErrorCorrectPolynomial","rawPoly","QRPolynomial","modPoly","modIndex","totalCodeCount","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRErrorCorrectLevel","L","M","Q","H","QRMaskPattern","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","errorCorrectLength","multiply","QRMath","gexp","qrCode","sameCount","count","darkCount","ratio","glog","LOG_TABLE","EXP_TABLE","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","bufIndex","bit","QRCodeLimitLength","_isSupportCanvas","CanvasRenderingContext2D","_getAndroid","android","sAgent","aMat","svgDrawer","Drawing","el","htOption","_el","_htOption","draw","oQRCode","nCount","makeSVG","k","colorLight","setAttributeNS","colorDark","hasChildNodes","useSVG","documentElement","_onMakeImage","_elImage","_elCanvas","_android","factor","devicePixelRatio","drawImage","sx","sy","sw","sh","dx","dy","dw","dh","_safeSetDataURI","fSuccess","fFail","_fFail","_fSuccess","_bSupportDataURI","fOnError","fOnSuccess","onabort","onerror","_bIsPainted","_oContext","alt","nWidth","nHeight","nRoundedWidth","round","nRoundedHeight","bIsDark","nLeft","nTop","strokeStyle","lineWidth","strokeRect","makeImage","isPainted","nNumber","aHTML","elTable","nLeftMarginTable","nTopMarginTable","_getTypeNumber","sText","nCorrectLevel","nType","_getUTF8Length","nLimit","replacedText","encodeURI","vOption","correctLevel","_oQRCode","_oDrawing","makeCode","title","CorrectLevel","defaults","CODE128C","CODE128A","_CODE128_AUTO","_CODE128_AUTO2","_CODE128A","_CODE128A2","_CODE128B","_CODE128B2","_CODE128C","_CODE128C2","_Error","symbology","_Error2","_Error3","Barcode","_SET_BY_CODE","SET_C","START_A","START_B","START_C","101","100","99","VueBarcode","elementTag","$slots","validator","$watch","immediate","settings","removeUndefinedProps","$el","GenericBarcode","_extends","old","replaceObj","_EAN_UPC","_pharmacode","_codabar","_GenericBarcode"],"mappings":"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AAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,G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","file":"js/chunk-7ed10014.49934137.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _ITF2 = require('./ITF');\n\nvar _ITF3 = _interopRequireDefault(_ITF2);\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\n// Calculate the checksum digit\nvar checksum = function checksum(data) {\n\tvar res = data.substr(0, 13).split('').map(function (num) {\n\t\treturn parseInt(num, 10);\n\t}).reduce(function (sum, n, idx) {\n\t\treturn sum + n * (3 - idx % 2 * 2);\n\t}, 0);\n\n\treturn Math.ceil(res / 10) * 10 - res;\n};\n\nvar ITF14 = function (_ITF) {\n\t_inherits(ITF14, _ITF);\n\n\tfunction ITF14(data, options) {\n\t\t_classCallCheck(this, ITF14);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{13}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\t\treturn _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options));\n\t}\n\n\t_createClass(ITF14, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data);\n\t\t}\n\t}]);\n\n\treturn ITF14;\n}(_ITF3.default);\n\nexports.default = ITF14;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding documentation\n// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup\n\nvar MSI = function (_Barcode) {\n\t_inherits(MSI, _Barcode);\n\n\tfunction MSI(data, options) {\n\t\t_classCallCheck(this, MSI);\n\n\t\treturn _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options));\n\t}\n\n\t_createClass(MSI, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\t// Start bits\n\t\t\tvar ret = \"110\";\n\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\t// Convert the character to binary (always 4 binary digits)\n\t\t\t\tvar digit = parseInt(this.data[i]);\n\t\t\t\tvar bin = digit.toString(2);\n\t\t\t\tbin = addZeroes(bin, 4 - bin.length);\n\n\t\t\t\t// Add 100 for every zero and 110 for every 1\n\t\t\t\tfor (var b = 0; b < bin.length; b++) {\n\t\t\t\t\tret += bin[b] == \"0\" ? \"100\" : \"110\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// End bits\n\t\t\tret += \"1001\";\n\n\t\t\treturn {\n\t\t\t\tdata: ret,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]+$/) !== -1;\n\t\t}\n\t}]);\n\n\treturn MSI;\n}(_Barcode3.default);\n\nfunction addZeroes(number, n) {\n\tfor (var i = 0; i < n; i++) {\n\t\tnumber = \"0\" + number;\n\t}\n\treturn number;\n}\n\nexports.default = MSI;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('base-header',{staticClass:\"pb-6\",attrs:{\"type\":\"\"}},[_c('b-row',{staticClass:\"align-items-center py-4\"},[_c('b-col',{attrs:{\"lg\":\"12\",\"cols\":\"12\"}},[_c('nav',{staticClass:\"d-none d-md-inline-block ml-md-4\",attrs:{\"aria-label\":\"breadcrumb\"}},[_c('route-breadcrumb')],1)])],1)],1),_c('div',[_c('loading',{attrs:{\"active\":_vm.loading,\"color\":\"#007bff\",\"width\":128,\"height\":128,\"loader\":\"dots\",\"can-cancel\":true,\"is-full-page\":true},on:{\"update:active\":function($event){_vm.loading=$event}}})],1),_c('b-container',{staticClass:\"mt--6 container-padding\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"lg\":\"12\"}},[_c('div',{staticClass:\"card-wrapper\"},[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"pills\":\"\",\"card\":\"\"}},[(_vm.show_tabs)?_c('b-tab',{attrs:{\"title\":\"Non Fixed Income\"}},[_c('b-card-text',[_c('card',[_c('h3',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"Non Fixed Income\")]),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"1\"}},[_c('base-input',{attrs:{\"label\":\"Code\"},model:{value:(_vm.uom.code),callback:function ($$v) {_vm.$set(_vm.uom, \"code\", $$v)},expression:\"uom.code\"}})],1),_c('b-col',{attrs:{\"cols\":\"4\"}},[_c('base-input',{attrs:{\"label\":\"Name\",\"type\":\"number\"},model:{value:(_vm.uom.multiplier),callback:function ($$v) {_vm.$set(_vm.uom, \"multiplier\", $$v)},expression:\"uom.multiplier\"}})],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('base-input',{attrs:{\"label\":\"Account\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{attrs:{\"cols\":\"1\"}},[_c('base-input',{attrs:{\"label\":\"Ord Wages (Y/N)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{attrs:{\"cols\":\"1\"}},[_c('base-input',{attrs:{\"label\":\"Add Wages (Y/N)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{attrs:{\"cols\":\"1\"}},[_c('base-input',{attrs:{\"label\":\"Non-Wage (Y/N)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{attrs:{\"cols\":\"1\"}},[_c('base-input',{attrs:{\"label\":\"CPF (Y/N)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{staticClass:\"mt-4\",attrs:{\"lg\":\"1\"}},[_c('base-button',{staticClass:\"mt-2\",attrs:{\"type\":\"primary\"},nativeOn:{\"click\":function($event){return _vm.addProductUom.apply(null, arguments)}}},[_c('span',{staticClass:\"btn-inner--text\"},[_vm._v(_vm._s(_vm.language_terms['ADD']))])])],1)],1),(_vm.non_fixed_incomes.length > 0)?_c('b-row',[_c('b-col',{attrs:{\"lg\":\"12\"}},[_c('b-table-simple',{attrs:{\"hover\":\"\"}},[_c('b-thead',{attrs:{\"head-variant\":\"light\"}},[_c('b-th',[_vm._v(\"Code\")]),_c('b-th',[_vm._v(\"Description\")]),_c('b-th',[_vm._v(\"Account\")]),_c('b-th',[_vm._v(\"Ord Wages\")]),_c('b-th',[_vm._v(\"Additional Wages\")]),_c('b-th',[_vm._v(\"Non-Wage Item\")]),_c('b-th',[_vm._v(\"CPF Contribution\")]),_c('b-th')],1),_c('b-tbody',_vm._l((_vm.non_fixed_incomes),function(item,j){return _c('tr',{key:j},[_c('td',[_vm._v(_vm._s(item.code))]),_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.account))]),_c('td',[_vm._v(_vm._s(item.ordinary_wages))]),_c('td',[_vm._v(_vm._s(item.additional_wages))]),_c('td',[_vm._v(_vm._s(item.non_wage_item))]),_c('td',[_vm._v(_vm._s(item.cpf))]),_c('td',[_c('base-button',{attrs:{\"icon\":\"\",\"type\":\"warning\",\"size\":\"sm\",\"disabled\":(item.is_default == 1)},on:{\"click\":function($event){return _vm.deleteUOM(item)}}},[_c('i',{staticClass:\"fa fa-trash\",attrs:{\"aria-hidden\":\"true\"}})])],1)])}),0)],1)],1)],1):_vm._e()],1)],1)],1):_vm._e(),(_vm.show_tabs)?_c('b-tab',{attrs:{\"title\":\"Deduction Fund Rates\"}},[_c('b-card-text',[_c('card',[_c('h3',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"Deduction Fund Rates\")]),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"4\"}},[_c('base-input',{attrs:{\"label\":\"Fund\"},model:{value:(_vm.uom.code),callback:function ($$v) {_vm.$set(_vm.uom, \"code\", $$v)},expression:\"uom.code\"}})],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('base-input',{attrs:{\"label\":\"Effective From\",\"type\":\"number\"},model:{value:(_vm.uom.multiplier),callback:function ($$v) {_vm.$set(_vm.uom, \"multiplier\", $$v)},expression:\"uom.multiplier\"}})],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('base-input',{attrs:{\"label\":\"Wage From ($)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('base-input',{attrs:{\"label\":\"Wage To ($)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{attrs:{\"cols\":\"1\"}},[_c('base-input',{attrs:{\"label\":\"Rate (%)\",\"type\":\"number\"},model:{value:(_vm.uom.unit_price),callback:function ($$v) {_vm.$set(_vm.uom, \"unit_price\", $$v)},expression:\"uom.unit_price\"}})],1),_c('b-col',{staticClass:\"mt-4\",attrs:{\"lg\":\"1\"}},[_c('base-button',{staticClass:\"mt-2\",attrs:{\"type\":\"primary\"},nativeOn:{\"click\":function($event){return _vm.addProductUom.apply(null, arguments)}}},[_c('span',{staticClass:\"btn-inner--text\"},[_vm._v(_vm._s(_vm.language_terms['ADD']))])])],1)],1),(_vm.non_fixed_incomes.length > 0)?_c('b-row',[_c('b-col',{attrs:{\"lg\":\"12\"}},[_c('b-table-simple',{attrs:{\"hover\":\"\"}},[_c('b-thead',{attrs:{\"head-variant\":\"light\"}},[_c('b-th',[_vm._v(\"Fund\")]),_c('b-th',[_vm._v(\"Effective Date\")]),_c('b-th',[_vm._v(\"Wage From\")]),_c('b-th',[_vm._v(\"Wage To\")]),_c('b-th',[_vm._v(\"Rate\")]),_c('b-th')],1),_c('b-tbody',_vm._l((_vm.deduction_fund_rates),function(item,j){return _c('tr',{key:j},[_c('td',[_vm._v(_vm._s(item.code))]),_c('td',[_vm._v(_vm._s(item.date))]),_c('td',[_vm._v(_vm._s(item.wf))]),_c('td',[_vm._v(_vm._s(item.wt))]),_c('td',[_vm._v(_vm._s(item.rate))]),_c('td',[_c('base-button',{attrs:{\"icon\":\"\",\"type\":\"warning\",\"size\":\"sm\",\"disabled\":(item.is_default == 1)},on:{\"click\":function($event){return _vm.deleteUOM(item)}}},[_c('i',{staticClass:\"fa fa-trash\",attrs:{\"aria-hidden\":\"true\"}})])],1)])}),0)],1)],1)],1):_vm._e()],1)],1)],1):_vm._e(),(_vm.show_tabs)?_c('b-tab',{attrs:{\"title\":\"Payroll Batch Run\"}},[_c('b-card-text',[_c('card',[_c('h3',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"Batch Run\")]),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"4\"}},[_c('base-input',{attrs:{\"label\":\"Period (YYYYMM)\"},model:{value:(_vm.uom.code),callback:function ($$v) {_vm.$set(_vm.uom, \"code\", $$v)},expression:\"uom.code\"}})],1),_c('b-col',{staticClass:\"mt-4\",attrs:{\"lg\":\"1\"}},[_c('base-button',{staticClass:\"mt-2\",attrs:{\"type\":\"primary\",\"disabled\":_vm.uom.code == ''},nativeOn:{\"click\":function($event){return _vm.onClickBatchRun.apply(null, arguments)}}},[_c('span',{staticClass:\"btn-inner--text\"},[_vm._v(\"Run\")])])],1)],1),(_vm.payrolls.length > 0)?_c('b-row',[_c('b-col',{attrs:{\"lg\":\"12\"}},[_c('b-table-simple',{attrs:{\"hover\":\"\"}},[_c('b-thead',{attrs:{\"head-variant\":\"light\"}},[_c('b-th',[_vm._v(\"Period\")]),_c('b-th',[_vm._v(\"Payslip Count\")]),_c('b-th',[_vm._v(\"Ordinary Wage\")]),_c('b-th',[_vm._v(\"CPF Contributions\")]),_c('b-th',[_vm._v(\"Deductibles\")]),_c('b-th')],1),_c('b-tbody',_vm._l((_vm.deduction_fund_rates),function(item,j){return _c('tr',{key:j},[_c('td',[_vm._v(_vm._s(item.code))]),_c('td',[_vm._v(_vm._s(item.date))]),_c('td',[_vm._v(_vm._s(item.wf))]),_c('td',[_vm._v(_vm._s(item.wt))]),_c('td',[_vm._v(_vm._s(item.rate))]),_c('td',[_c('base-button',{attrs:{\"icon\":\"\",\"type\":\"warning\",\"size\":\"sm\",\"disabled\":(item.is_default == 1)},on:{\"click\":function($event){return _vm.deleteUOM(item)}}},[_c('i',{staticClass:\"fa fa-trash\",attrs:{\"aria-hidden\":\"true\"}})])],1)])}),0)],1)],1)],1):_vm._e()],1)],1)],1):_vm._e()],1)],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\"}})],1)],1)])],1)],1),_c('b-modal',{staticClass:\"my-modal\",attrs:{\"header-bg-variant\":'primary',\"size\":\"lg\",\"centered\":\"\"},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('span',{staticStyle:{\"color\":\"white\"}},[_vm._v(_vm._s(_vm.language_terms['ADD_PRODUCT']))])]},proxy:true},{key:\"modal-footer\",fn:function(ref){\nvar ok = ref.ok;\nvar cancel = ref.cancel;\nreturn [_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.addBomItemToGroup()}}},[_vm._v(\"\\n \"+_vm._s(_vm.language_terms['ADD'])+\"\\n \")]),_c('b-button',{attrs:{\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.cancelAddBomModal()}}},[_vm._v(\"\\n \"+_vm._s(_vm.language_terms['CANCEL'])+\"\\n \")])]}}]),model:{value:(_vm.add_bom_product_modal),callback:function ($$v) {_vm.add_bom_product_modal=$$v},expression:\"add_bom_product_modal\"}},[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('label',{staticClass:\"form-control-label\"},[_vm._v(_vm._s(_vm.language_terms['PRODUCT']))]),_c('productLookup',{attrs:{\"url\":_vm.apiProductLookup,\"lookupId\":_vm.bom.product_code,\"v2\":_vm.product.id,\"disabled\":_vm.isLocked},on:{\"selected\":function($event){return _vm.selectProduct($event)}}})],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('base-input',{attrs:{\"label\":_vm.language_terms['QTY'],\"type\":\"number\",\"min\":0,\"disabled\":_vm.isLocked},model:{value:(_vm.bom.qty),callback:function ($$v) {_vm.$set(_vm.bom, \"qty\", $$v)},expression:\"bom.qty\"}})],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('base-input',{attrs:{\"label\":_vm.language_terms['UOM']}},[_c('el-select',{attrs:{\"filterable\":\"\",\"disabled\":_vm.isLocked},model:{value:(_vm.bom.uom),callback:function ($$v) {_vm.$set(_vm.bom, \"uom\", $$v)},expression:\"bom.uom\"}},_vm._l((_vm.uom_list),function(option){return _c('el-option',{key:option.code,attrs:{\"label\":option.code,\"value\":option.code}})}),1)],1)],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('base-input',{attrs:{\"label\":_vm.language_terms['PRICE_ADJUSTMENT'],\"type\":\"number\",\"disabled\":_vm.isLocked},model:{value:(_vm.bom.price_adjustment),callback:function ($$v) {_vm.$set(_vm.bom, \"price_adjustment\", $$v)},expression:\"bom.price_adjustment\"}})],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('base-input',{attrs:{\"label\":_vm.language_terms['IS_DEFAULT']}},[_c('el-select',{attrs:{\"filterable\":\"\",\"disabled\":_vm.isLocked},model:{value:(_vm.bom.is_default),callback:function ($$v) {_vm.$set(_vm.bom, \"is_default\", $$v)},expression:\"bom.is_default\"}},_vm._l((_vm.is_default_options),function(option){return _c('el-option',{key:option.code,attrs:{\"label\":option.label,\"value\":option.code}})}),1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./payroll.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!./payroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./payroll.vue?vue&type=template&id=5581ff2e&\"\nimport script from \"./payroll.vue?vue&type=script&lang=js&\"\nexport * from \"./payroll.vue?vue&type=script&lang=js&\"\nimport style0 from \"vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./payroll.vue?vue&type=style&index=1&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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _EAN2 = require('./EAN');\n\nvar _EAN3 = _interopRequireDefault(_EAN2);\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; } // Encoding documentation:\n// http://www.barcodeisland.com/ean8.phtml\n\n// Calculate the checksum digit\nvar checksum = function checksum(number) {\n\tvar res = number.substr(0, 7).split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a : sum + a * 3;\n\t}, 0);\n\n\treturn (10 - res % 10) % 10;\n};\n\nvar EAN8 = function (_EAN) {\n\t_inherits(EAN8, _EAN);\n\n\tfunction EAN8(data, options) {\n\t\t_classCallCheck(this, EAN8);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{7}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\treturn _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options));\n\t}\n\n\t_createClass(EAN8, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText() {\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode() {\n\t\t\tvar data = this.data.substr(0, 4);\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL');\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText() {\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode() {\n\t\t\tvar data = this.data.substr(4, 4);\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR');\n\t\t}\n\t}]);\n\n\treturn EAN8;\n}(_EAN3.default);\n\nexports.default = EAN8;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined;\n\nvar _EAN = require('./EAN13.js');\n\nvar _EAN2 = _interopRequireDefault(_EAN);\n\nvar _EAN3 = require('./EAN8.js');\n\nvar _EAN4 = _interopRequireDefault(_EAN3);\n\nvar _EAN5 = require('./EAN5.js');\n\nvar _EAN6 = _interopRequireDefault(_EAN5);\n\nvar _EAN7 = require('./EAN2.js');\n\nvar _EAN8 = _interopRequireDefault(_EAN7);\n\nvar _UPC = require('./UPC.js');\n\nvar _UPC2 = _interopRequireDefault(_UPC);\n\nvar _UPCE = require('./UPCE.js');\n\nvar _UPCE2 = _interopRequireDefault(_UPCE);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.EAN13 = _EAN2.default;\nexports.EAN8 = _EAN4.default;\nexports.EAN5 = _EAN6.default;\nexports.EAN2 = _EAN8.default;\nexports.UPC = _UPC2.default;\nexports.UPCE = _UPCE2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar START_BIN = exports.START_BIN = '1010';\nvar END_BIN = exports.END_BIN = '11101';\n\nvar BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.CODE39 = 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 _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Code_39#Encoding\n\nvar CODE39 = function (_Barcode) {\n\t_inherits(CODE39, _Barcode);\n\n\tfunction CODE39(data, options) {\n\t\t_classCallCheck(this, CODE39);\n\n\t\tdata = data.toUpperCase();\n\n\t\t// Calculate mod43 checksum if enabled\n\t\tif (options.mod43) {\n\t\t\tdata += getCharacter(mod43checksum(data));\n\t\t}\n\n\t\treturn _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options));\n\t}\n\n\t_createClass(CODE39, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\t// First character is always a *\n\t\t\tvar result = getEncoding(\"*\");\n\n\t\t\t// Take every character and add the binary representation to the result\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\tresult += getEncoding(this.data[i]) + \"0\";\n\t\t\t}\n\n\t\t\t// Last character is always a *\n\t\t\tresult += getEncoding(\"*\");\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9A-Z\\-\\.\\ \\$\\/\\+\\%]+$/) !== -1;\n\t\t}\n\t}]);\n\n\treturn CODE39;\n}(_Barcode3.default);\n\n// All characters. The position in the array is the (checksum) value\n\n\nvar characters = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"-\", \".\", \" \", \"$\", \"/\", \"+\", \"%\", \"*\"];\n\n// The decimal representation of the characters, is converted to the\n// corresponding binary with the getEncoding function\nvar encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770];\n\n// Get the binary representation of a character by converting the encodings\n// from decimal to binary\nfunction getEncoding(character) {\n\treturn getBinary(characterValue(character));\n}\n\nfunction getBinary(characterValue) {\n\treturn encodings[characterValue].toString(2);\n}\n\nfunction getCharacter(characterValue) {\n\treturn characters[characterValue];\n}\n\nfunction characterValue(character) {\n\treturn characters.indexOf(character);\n}\n\nfunction mod43checksum(data) {\n\tvar checksum = 0;\n\tfor (var i = 0; i < data.length; i++) {\n\t\tchecksum += characterValue(data[i]);\n\t}\n\n\tchecksum = checksum % 43;\n\treturn checksum;\n}\n\nexports.CODE39 = CODE39;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _constants = require('./constants');\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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 ITF = function (_Barcode) {\n\t_inherits(ITF, _Barcode);\n\n\tfunction ITF() {\n\t\t_classCallCheck(this, ITF);\n\n\t\treturn _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments));\n\t}\n\n\t_createClass(ITF, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^([0-9]{2})+$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Calculate all the digit pairs\n\t\t\tvar encoded = this.data.match(/.{2}/g).map(function (pair) {\n\t\t\t\treturn _this2.encodePair(pair);\n\t\t\t}).join('');\n\n\t\t\treturn {\n\t\t\t\tdata: _constants.START_BIN + encoded + _constants.END_BIN,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\n\t\t// Calculate the data of a number pair\n\n\t}, {\n\t\tkey: 'encodePair',\n\t\tvalue: function encodePair(pair) {\n\t\t\tvar second = _constants.BINARIES[pair[1]];\n\n\t\t\treturn _constants.BINARIES[pair[0]].split('').map(function (first, idx) {\n\t\t\t\treturn (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0');\n\t\t\t}).join('');\n\t\t}\n\t}]);\n\n\treturn ITF;\n}(_Barcode3.default);\n\nexports.default = ITF;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\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 MSI11 = function (_MSI) {\n\t_inherits(MSI11, _MSI);\n\n\tfunction MSI11(data, options) {\n\t\t_classCallCheck(this, MSI11);\n\n\t\treturn _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options));\n\t}\n\n\treturn MSI11;\n}(_MSI3.default);\n\nexports.default = MSI11;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\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 MSI10 = function (_MSI) {\n\t_inherits(MSI10, _MSI);\n\n\tfunction MSI10(data, options) {\n\t\t_classCallCheck(this, MSI10);\n\n\t\treturn _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options));\n\t}\n\n\treturn MSI10;\n}(_MSI3.default);\n\nexports.default = MSI10;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _Barcode2 = require('../Barcode.js');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nvar _constants = require('./constants');\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\n// This is the master class,\n// it does require the start code to be included in the string\nvar CODE128 = function (_Barcode) {\n\t_inherits(CODE128, _Barcode);\n\n\tfunction CODE128(data, options) {\n\t\t_classCallCheck(this, CODE128);\n\n\t\t// Get array of ascii codes from data\n\t\tvar _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options));\n\n\t\t_this.bytes = data.split('').map(function (char) {\n\t\t\treturn char.charCodeAt(0);\n\t\t});\n\t\treturn _this;\n\t}\n\n\t_createClass(CODE128, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\t// ASCII value ranges 0-127, 200-211\n\t\t\treturn (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(this.data)\n\t\t\t);\n\t\t}\n\n\t\t// The public encoding function\n\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar bytes = this.bytes;\n\t\t\t// Remove the start code from the bytes and set its index\n\t\t\tvar startIndex = bytes.shift() - 105;\n\t\t\t// Get start set by index\n\t\t\tvar startSet = _constants.SET_BY_CODE[startIndex];\n\n\t\t\tif (startSet === undefined) {\n\t\t\t\tthrow new RangeError('The encoding does not start with a start character.');\n\t\t\t}\n\n\t\t\tif (this.shouldEncodeAsEan128() === true) {\n\t\t\t\tbytes.unshift(_constants.FNC1);\n\t\t\t}\n\n\t\t\t// Start encode with the right type\n\t\t\tvar encodingResult = CODE128.next(bytes, 1, startSet);\n\n\t\t\treturn {\n\t\t\t\ttext: this.text === this.data ? this.text.replace(/[^\\x20-\\x7E]/g, '') : this.text,\n\t\t\t\tdata:\n\t\t\t\t// Add the start bits\n\t\t\t\tCODE128.getBar(startIndex) +\n\t\t\t\t// Add the encoded bits\n\t\t\t\tencodingResult.result +\n\t\t\t\t// Add the checksum\n\t\t\t\tCODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) +\n\t\t\t\t// Add the end bits\n\t\t\t\tCODE128.getBar(_constants.STOP)\n\t\t\t};\n\t\t}\n\n\t\t// GS1-128/EAN-128\n\n\t}, {\n\t\tkey: 'shouldEncodeAsEan128',\n\t\tvalue: function shouldEncodeAsEan128() {\n\t\t\tvar isEAN128 = this.options.ean128 || false;\n\t\t\tif (typeof isEAN128 === 'string') {\n\t\t\t\tisEAN128 = isEAN128.toLowerCase() === 'true';\n\t\t\t}\n\t\t\treturn isEAN128;\n\t\t}\n\n\t\t// Get a bar symbol by index\n\n\t}], [{\n\t\tkey: 'getBar',\n\t\tvalue: function getBar(index) {\n\t\t\treturn _constants.BARS[index] ? _constants.BARS[index].toString() : '';\n\t\t}\n\n\t\t// Correct an index by a set and shift it from the bytes array\n\n\t}, {\n\t\tkey: 'correctIndex',\n\t\tvalue: function correctIndex(bytes, set) {\n\t\t\tif (set === _constants.SET_A) {\n\t\t\t\tvar charCode = bytes.shift();\n\t\t\t\treturn charCode < 32 ? charCode + 64 : charCode - 32;\n\t\t\t} else if (set === _constants.SET_B) {\n\t\t\t\treturn bytes.shift() - 32;\n\t\t\t} else {\n\t\t\t\treturn (bytes.shift() - 48) * 10 + bytes.shift() - 48;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'next',\n\t\tvalue: function next(bytes, pos, set) {\n\t\t\tif (!bytes.length) {\n\t\t\t\treturn { result: '', checksum: 0 };\n\t\t\t}\n\n\t\t\tvar nextCode = void 0,\n\t\t\t index = void 0;\n\n\t\t\t// Special characters\n\t\t\tif (bytes[0] >= 200) {\n\t\t\t\tindex = bytes.shift() - 105;\n\t\t\t\tvar nextSet = _constants.SWAP[index];\n\n\t\t\t\t// Swap to other set\n\t\t\t\tif (nextSet !== undefined) {\n\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, nextSet);\n\t\t\t\t}\n\t\t\t\t// Continue on current set but encode a special character\n\t\t\t\telse {\n\t\t\t\t\t\t// Shift\n\t\t\t\t\t\tif ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) {\n\t\t\t\t\t\t\t// Convert the next character so that is encoded correctly\n\t\t\t\t\t\t\tbytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, set);\n\t\t\t\t\t}\n\t\t\t}\n\t\t\t// Continue encoding\n\t\t\telse {\n\t\t\t\t\tindex = CODE128.correctIndex(bytes, set);\n\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, set);\n\t\t\t\t}\n\n\t\t\t// Get the correct binary encoding and calculate the weight\n\t\t\tvar enc = CODE128.getBar(index);\n\t\t\tvar weight = index * pos;\n\n\t\t\treturn {\n\t\t\t\tresult: enc + nextCode.result,\n\t\t\t\tchecksum: weight + nextCode.checksum\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn CODE128;\n}(_Barcode3.default);\n\nexports.default = CODE128;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 ObjectRenderer = function () {\n\tfunction ObjectRenderer(object, encodings, options) {\n\t\t_classCallCheck(this, ObjectRenderer);\n\n\t\tthis.object = object;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t}\n\n\t_createClass(ObjectRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tthis.object.encodings = this.encodings;\n\t\t}\n\t}]);\n\n\treturn ObjectRenderer;\n}();\n\nexports.default = ObjectRenderer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = optionsFromStrings;\n\n// Convert string to integers/booleans where it should be\n\nfunction optionsFromStrings(options) {\n\tvar intOptions = [\"width\", \"height\", \"textMargin\", \"fontSize\", \"margin\", \"marginTop\", \"marginBottom\", \"marginLeft\", \"marginRight\"];\n\n\tfor (var intOption in intOptions) {\n\t\tif (intOptions.hasOwnProperty(intOption)) {\n\t\t\tintOption = intOptions[intOption];\n\t\t\tif (typeof options[intOption] === \"string\") {\n\t\t\t\toptions[intOption] = parseInt(options[intOption], 10);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (typeof options[\"displayValue\"] === \"string\") {\n\t\toptions[\"displayValue\"] = options[\"displayValue\"] != \"false\";\n\t}\n\n\treturn options;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _constants = require('./constants');\n\n// Encode data string\nvar encode = function encode(data, structure, separator) {\n\tvar encoded = data.split('').map(function (val, idx) {\n\t\treturn _constants.BINARIES[structure[idx]];\n\t}).map(function (val, idx) {\n\t\treturn val ? val[data[idx]] : '';\n\t});\n\n\tif (separator) {\n\t\tvar last = data.length - 1;\n\t\tencoded = encoded.map(function (val, idx) {\n\t\t\treturn idx < last ? val + separator : val;\n\t\t});\n\t}\n\n\treturn encoded.join('');\n};\n\nexports.default = encode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_5#Encoding\n\nvar checksum = function checksum(data) {\n\tvar result = data.split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a * 9 : sum + a * 3;\n\t}, 0);\n\treturn result % 10;\n};\n\nvar EAN5 = function (_Barcode) {\n\t_inherits(EAN5, _Barcode);\n\n\tfunction EAN5(data, options) {\n\t\t_classCallCheck(this, EAN5);\n\n\t\treturn _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options));\n\t}\n\n\t_createClass(EAN5, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{5}$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar structure = _constants.EAN5_STRUCTURE[checksum(this.data)];\n\t\t\treturn {\n\t\t\t\tdata: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN5;\n}(_Barcode3.default);\n\nexports.default = EAN5;","/*!\n * vue2-editor v2.10.3 \n * (c) 2021 David Royer\n * Released under the MIT License.\n */\nimport Quill from 'quill';\nexport { default as Quill } from 'quill';\n\nvar defaultToolbar = [[{\n header: [false, 1, 2, 3, 4, 5, 6]\n}], [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\n[{\n align: \"\"\n}, {\n align: \"center\"\n}, {\n align: \"right\"\n}, {\n align: \"justify\"\n}], [\"blockquote\", \"code-block\"], [{\n list: \"ordered\"\n}, {\n list: \"bullet\"\n}, {\n list: \"check\"\n}], [{\n indent: \"-1\"\n}, {\n indent: \"+1\"\n}], // outdent/indent\n[{\n color: []\n}, {\n background: []\n}], // dropdown with defaults from theme\n[\"link\", \"image\", \"video\"], [\"clean\"] // remove formatting button\n];\n\nvar oldApi = {\n props: {\n customModules: Array\n },\n methods: {\n registerCustomModules: function registerCustomModules(Quill) {\n if (this.customModules !== undefined) {\n this.customModules.forEach(function (customModule) {\n Quill.register(\"modules/\" + customModule.alias, customModule.module);\n });\n }\n }\n }\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/**\n * Performs a deep merge of `source` into `target`.\n * Mutates `target` only but not its objects and arrays.\n *\n */\nfunction mergeDeep(target, source) {\n var isObject = function isObject(obj) {\n return obj && _typeof(obj) === \"object\";\n };\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach(function (key) {\n var targetValue = target[key];\n var sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n return target;\n}\n\nvar BlockEmbed = Quill.import(\"blots/block/embed\");\n\nvar HorizontalRule =\n/*#__PURE__*/\nfunction (_BlockEmbed) {\n _inherits(HorizontalRule, _BlockEmbed);\n\n function HorizontalRule() {\n _classCallCheck(this, HorizontalRule);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalRule).apply(this, arguments));\n }\n\n return HorizontalRule;\n}(BlockEmbed);\n\nHorizontalRule.blotName = \"hr\";\nHorizontalRule.tagName = \"hr\";\nQuill.register(\"formats/horizontal\", HorizontalRule);\n\nvar MarkdownShortcuts =\n/*#__PURE__*/\nfunction () {\n function MarkdownShortcuts(quill, options) {\n var _this = this;\n\n _classCallCheck(this, MarkdownShortcuts);\n\n this.quill = quill;\n this.options = options;\n this.ignoreTags = [\"PRE\"];\n this.matches = [{\n name: \"header\",\n pattern: /^(#){1,6}\\s/g,\n action: function action(text, selection, pattern) {\n var match = pattern.exec(text);\n if (!match) return;\n var size = match[0].length; // Need to defer this action https://github.com/quilljs/quill/issues/1134\n\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 0, \"header\", size - 1);\n\n _this.quill.deleteText(selection.index - size, size);\n }, 0);\n }\n }, {\n name: \"blockquote\",\n pattern: /^(>)\\s/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"blockquote\", true);\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"code-block\",\n pattern: /^`{3}(?:\\s|\\n)/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"code-block\", true);\n\n _this.quill.deleteText(selection.index - 4, 4);\n }, 0);\n }\n }, {\n name: \"bolditalic\",\n pattern: /(?:\\*|_){3}(.+?)(?:\\*|_){3}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true,\n italic: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"bold\",\n pattern: /(?:\\*|_){2}(.+?)(?:\\*|_){2}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"italic\",\n pattern: /(?:\\*|_){1}(.+?)(?:\\*|_){1}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n italic: true\n });\n\n _this.quill.format(\"italic\", false);\n }, 0);\n }\n }, {\n name: \"strikethrough\",\n pattern: /(?:~~)(.+?)(?:~~)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n strike: true\n });\n\n _this.quill.format(\"strike\", false);\n }, 0);\n }\n }, {\n name: \"code\",\n pattern: /(?:`)(.+?)(?:`)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n code: true\n });\n\n _this.quill.format(\"code\", false);\n\n _this.quill.insertText(_this.quill.getSelection(), \" \");\n }, 0);\n }\n }, {\n name: \"hr\",\n pattern: /^([-*]\\s?){3}/g,\n action: function action(text, selection) {\n var startIndex = selection.index - text.length;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, text.length);\n\n _this.quill.insertEmbed(startIndex + 1, \"hr\", true, Quill.sources.USER);\n\n _this.quill.insertText(startIndex + 2, \"\\n\", Quill.sources.SILENT);\n\n _this.quill.setSelection(startIndex + 2, Quill.sources.SILENT);\n }, 0);\n }\n }, {\n name: \"asterisk-ul\",\n pattern: /^(\\*|\\+)\\s$/g,\n // eslint-disable-next-line no-unused-vars\n action: function action(_text, selection, _pattern) {\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"list\", \"unordered\");\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"image\",\n pattern: /(?:!\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0]; // const hrefText = text.match(/(?:!\\[(.*?)\\])/g)[0]\n\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertEmbed(start, \"image\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }, {\n name: \"link\",\n pattern: /(?:\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0];\n var hrefText = text.match(/(?:\\[(.*?)\\])/g)[0];\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertText(start, hrefText.slice(1, hrefText.length - 1), \"link\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }]; // Handler that looks for insert deltas that match specific characters\n // eslint-disable-next-line no-unused-vars\n\n this.quill.on(\"text-change\", function (delta, _oldContents, _source) {\n for (var i = 0; i < delta.ops.length; i++) {\n if (delta.ops[i].hasOwnProperty(\"insert\")) {\n if (delta.ops[i].insert === \" \") {\n _this.onSpace();\n } else if (delta.ops[i].insert === \"\\n\") {\n _this.onEnter();\n }\n }\n }\n });\n }\n\n _createClass(MarkdownShortcuts, [{\n key: \"isValid\",\n value: function isValid(text, tagName) {\n return typeof text !== \"undefined\" && text && this.ignoreTags.indexOf(tagName) === -1;\n }\n }, {\n key: \"onSpace\",\n value: function onSpace() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine = this.quill.getLine(selection.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 2),\n line = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n var text = line.domNode.textContent;\n var lineStart = selection.index - offset;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.matches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var match = _step.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n // We need to replace only matched text not the whole line\n console.log(\"matched:\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine3 = this.quill.getLine(selection.index),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 2),\n line = _this$quill$getLine4[0],\n offset = _this$quill$getLine4[1];\n\n var text = line.domNode.textContent + \" \";\n var lineStart = selection.index - offset;\n selection.length = selection.index++;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.matches[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var match = _step2.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n console.log(\"matched\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n }]);\n\n return MarkdownShortcuts;\n}(); // module.exports = MarkdownShortcuts;\n\n//\nvar script = {\n name: \"VueEditor\",\n mixins: [oldApi],\n props: {\n id: {\n type: String,\n default: \"quill-container\"\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n value: {\n type: String,\n default: \"\"\n },\n disabled: {\n type: Boolean\n },\n editorToolbar: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n editorOptions: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n useCustomImageHandler: {\n type: Boolean,\n default: false\n },\n useMarkdownShortcuts: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n quill: null\n };\n },\n watch: {\n value: function value(val) {\n if (val != this.quill.root.innerHTML && !this.quill.hasFocus()) {\n this.quill.root.innerHTML = val;\n }\n },\n disabled: function disabled(status) {\n this.quill.enable(!status);\n }\n },\n mounted: function mounted() {\n this.registerCustomModules(Quill);\n this.registerPrototypes();\n this.initializeEditor();\n },\n beforeDestroy: function beforeDestroy() {\n this.quill = null;\n delete this.quill;\n },\n methods: {\n initializeEditor: function initializeEditor() {\n this.setupQuillEditor();\n this.checkForCustomImageHandler();\n this.handleInitialContent();\n this.registerEditorEventListeners();\n this.$emit(\"ready\", this.quill);\n },\n setupQuillEditor: function setupQuillEditor() {\n var editorConfig = {\n debug: false,\n modules: this.setModules(),\n theme: \"snow\",\n placeholder: this.placeholder ? this.placeholder : \"\",\n readOnly: this.disabled ? this.disabled : false\n };\n this.prepareEditorConfig(editorConfig);\n this.quill = new Quill(this.$refs.quillContainer, editorConfig);\n },\n setModules: function setModules() {\n var modules = {\n toolbar: this.editorToolbar.length ? this.editorToolbar : defaultToolbar\n };\n\n if (this.useMarkdownShortcuts) {\n Quill.register(\"modules/markdownShortcuts\", MarkdownShortcuts, true);\n modules[\"markdownShortcuts\"] = {};\n }\n\n return modules;\n },\n prepareEditorConfig: function prepareEditorConfig(editorConfig) {\n if (Object.keys(this.editorOptions).length > 0 && this.editorOptions.constructor === Object) {\n if (this.editorOptions.modules && typeof this.editorOptions.modules.toolbar !== \"undefined\") {\n // We don't want to merge default toolbar with provided toolbar.\n delete editorConfig.modules.toolbar;\n }\n\n mergeDeep(editorConfig, this.editorOptions);\n }\n },\n registerPrototypes: function registerPrototypes() {\n Quill.prototype.getHTML = function () {\n return this.container.querySelector(\".ql-editor\").innerHTML;\n };\n\n Quill.prototype.getWordCount = function () {\n return this.container.querySelector(\".ql-editor\").innerText.length;\n };\n },\n registerEditorEventListeners: function registerEditorEventListeners() {\n this.quill.on(\"text-change\", this.handleTextChange);\n this.quill.on(\"selection-change\", this.handleSelectionChange);\n this.listenForEditorEvent(\"text-change\");\n this.listenForEditorEvent(\"selection-change\");\n this.listenForEditorEvent(\"editor-change\");\n },\n listenForEditorEvent: function listenForEditorEvent(type) {\n var _this = this;\n\n this.quill.on(type, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this.$emit.apply(_this, [type].concat(args));\n });\n },\n handleInitialContent: function handleInitialContent() {\n if (this.value) this.quill.root.innerHTML = this.value; // Set initial editor content\n },\n handleSelectionChange: function handleSelectionChange(range, oldRange) {\n if (!range && oldRange) this.$emit(\"blur\", this.quill);else if (range && !oldRange) this.$emit(\"focus\", this.quill);\n },\n handleTextChange: function handleTextChange(delta, oldContents) {\n var editorContent = this.quill.getHTML() === \"


\" ? \"\" : this.quill.getHTML();\n this.$emit(\"input\", editorContent);\n if (this.useCustomImageHandler) this.handleImageRemoved(delta, oldContents);\n },\n handleImageRemoved: function handleImageRemoved(delta, oldContents) {\n var _this2 = this;\n\n var currrentContents = this.quill.getContents();\n var deletedContents = currrentContents.diff(oldContents);\n var operations = deletedContents.ops;\n operations.map(function (operation) {\n if (operation.insert && operation.insert.hasOwnProperty(\"image\")) {\n var image = operation.insert.image;\n\n _this2.$emit(\"image-removed\", image);\n }\n });\n },\n checkForCustomImageHandler: function checkForCustomImageHandler() {\n this.useCustomImageHandler === true ? this.setupCustomImageHandler() : \"\";\n },\n setupCustomImageHandler: function setupCustomImageHandler() {\n var toolbar = this.quill.getModule(\"toolbar\");\n toolbar.addHandler(\"image\", this.customImageHandler);\n },\n customImageHandler: function customImageHandler() {\n this.$refs.fileInput.click();\n },\n emitImageInfo: function emitImageInfo($event) {\n var resetUploader = function resetUploader() {\n var uploader = document.getElementById(\"file-upload\");\n uploader.value = \"\";\n };\n\n var file = $event.target.files[0];\n var Editor = this.quill;\n var range = Editor.getSelection();\n var cursorLocation = range.index;\n this.$emit(\"image-added\", file, Editor, cursorLocation, resetUploader);\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\n\nvar HEAD;\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n\n if (HEAD === undefined) {\n HEAD = document.head || document.getElementsByTagName('head')[0];\n }\n\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nvar browser = createInjector;\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"quillWrapper\"},[_vm._t(\"toolbar\"),_vm._v(\" \"),_c('div',{ref:\"quillContainer\",attrs:{\"id\":_vm.id}}),_vm._v(\" \"),(_vm.useCustomImageHandler)?_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"file-upload\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":function($event){return _vm.emitImageInfo($event)}}}):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = function (inject) {\n if (!inject) return\n inject(\"data-v-776e788e_0\", { source: \"/*!\\n * Quill Editor v1.3.6\\n * https://quilljs.com/\\n * Copyright (c) 2014, Jason Chen\\n * Copyright (c) 2013, salesforce.com\\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li::before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:0;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li::before{content:'\\\\2022'}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li::before,.ql-editor ul[data-checked=true]>li::before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li::before{content:'\\\\2611'}.ql-editor ul[data-checked=false]>li::before{content:'\\\\2610'}.ql-editor li::before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl)::before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl::before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) '. '}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) '. '}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) '. '}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) '. '}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) '. '}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) '. '}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) '. '}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) '. '}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) '. '}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) '. '}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank::before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:'';display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:0 0;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:0}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow{box-sizing:border-box}.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:'';display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label::before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item::before,.ql-snow .ql-picker.ql-header .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"1\\\"]::before{content:'Heading 1'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"2\\\"]::before{content:'Heading 2'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"3\\\"]::before{content:'Heading 3'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"4\\\"]::before{content:'Heading 4'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"5\\\"]::before{content:'Heading 5'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"6\\\"]::before{content:'Heading 6'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item::before,.ql-snow .ql-picker.ql-font .ql-picker-label::before{content:'Sans Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before{content:'Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before{content:'Monospace'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item::before,.ql-snow .ql-picker.ql-size .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before{content:'Small'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before{content:'Large'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before{content:'Huge'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:rgba(0,0,0,.2) 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip::before{content:\\\"Visit URL:\\\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action::after{border-right:1px solid #ccc;content:'Edit';margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove::before{content:'Remove';margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action::after{border-right:0;content:'Save';padding-right:0}.ql-snow .ql-tooltip[data-mode=link]::before{content:\\\"Enter link:\\\"}.ql-snow .ql-tooltip[data-mode=formula]::before{content:\\\"Enter formula:\\\"}.ql-snow .ql-tooltip[data-mode=video]::before{content:\\\"Enter video:\\\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}\", map: undefined, media: undefined })\n,inject(\"data-v-776e788e_1\", { source: \".ql-editor{min-height:200px;font-size:16px}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1px!important}.quillWrapper .ql-snow.ql-toolbar{padding-top:8px;padding-bottom:4px}.quillWrapper .ql-snow.ql-toolbar .ql-formats{margin-bottom:10px}.ql-snow .ql-toolbar button svg,.quillWrapper .ql-snow.ql-toolbar button svg{width:22px;height:22px}.quillWrapper .ql-editor ul[data-checked=false]>li::before,.quillWrapper .ql-editor ul[data-checked=true]>li::before{font-size:1.35em;vertical-align:baseline;bottom:-.065em;font-weight:900;color:#222}.quillWrapper .ql-snow .ql-stroke{stroke:rgba(63,63,63,.95);stroke-linecap:square;stroke-linejoin:initial;stroke-width:1.7px}.quillWrapper .ql-picker-label{font-size:15px}.quillWrapper .ql-snow .ql-active .ql-stroke{stroke-width:2.25px}.quillWrapper .ql-toolbar.ql-snow .ql-formats{vertical-align:top}.ql-picker:not(.ql-background){position:relative;top:2px}.ql-picker.ql-color-picker svg{width:22px!important;height:22px!important}.quillWrapper .imageResizeActive img{display:block;cursor:pointer}.quillWrapper .imageResizeActive~div svg{cursor:pointer}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n\n \n var VueEditor = normalizeComponent_1(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n browser,\n undefined\n );\n\nvar version = \"2.10.3\"; // Declare install function executed by Vue.use()\n\nfunction install(Vue) {\n if (install.installed) return;\n install.installed = true;\n Vue.component(\"VueEditor\", VueEditor);\n}\nvar VPlugin = {\n install: install,\n version: version,\n Quill: Quill,\n VueEditor: VueEditor\n}; // Auto-install when vue is found (eg. in browser via \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!./HtmlEditor.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!./HtmlEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HtmlEditor.vue?vue&type=template&id=cac68b64&\"\nimport script from \"./HtmlEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./HtmlEditor.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 * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/index.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!./vue-multiselect.min.css?vue&type=style&index=0&lang=css&\"","'use strict';\n\nvar _barcodes = require('./barcodes/');\n\nvar _barcodes2 = _interopRequireDefault(_barcodes);\n\nvar _merge = require('./help/merge.js');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _linearizeEncodings = require('./help/linearizeEncodings.js');\n\nvar _linearizeEncodings2 = _interopRequireDefault(_linearizeEncodings);\n\nvar _fixOptions = require('./help/fixOptions.js');\n\nvar _fixOptions2 = _interopRequireDefault(_fixOptions);\n\nvar _getRenderProperties = require('./help/getRenderProperties.js');\n\nvar _getRenderProperties2 = _interopRequireDefault(_getRenderProperties);\n\nvar _optionsFromStrings = require('./help/optionsFromStrings.js');\n\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\n\nvar _ErrorHandler = require('./exceptions/ErrorHandler.js');\n\nvar _ErrorHandler2 = _interopRequireDefault(_ErrorHandler);\n\nvar _exceptions = require('./exceptions/exceptions.js');\n\nvar _defaults = require('./options/defaults.js');\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The protype of the object returned from the JsBarcode() call\n\n\n// Help functions\nvar API = function API() {};\n\n// The first call of the library API\n// Will return an object with all barcodes calls and the data that is used\n// by the renderers\n\n\n// Default values\n\n\n// Exceptions\n// Import all the barcodes\nvar JsBarcode = function JsBarcode(element, text, options) {\n\tvar api = new API();\n\n\tif (typeof element === \"undefined\") {\n\t\tthrow Error(\"No element to render on was provided.\");\n\t}\n\n\t// Variables that will be pased through the API calls\n\tapi._renderProperties = (0, _getRenderProperties2.default)(element);\n\tapi._encodings = [];\n\tapi._options = _defaults2.default;\n\tapi._errorHandler = new _ErrorHandler2.default(api);\n\n\t// If text is set, use the simple syntax (render the barcode directly)\n\tif (typeof text !== \"undefined\") {\n\t\toptions = options || {};\n\n\t\tif (!options.format) {\n\t\t\toptions.format = autoSelectBarcode();\n\t\t}\n\n\t\tapi.options(options)[options.format](text, options).render();\n\t}\n\n\treturn api;\n};\n\n// To make tests work TODO: remove\nJsBarcode.getModule = function (name) {\n\treturn _barcodes2.default[name];\n};\n\n// Register all barcodes\nfor (var name in _barcodes2.default) {\n\tif (_barcodes2.default.hasOwnProperty(name)) {\n\t\t// Security check if the propery is a prototype property\n\t\tregisterBarcode(_barcodes2.default, name);\n\t}\n}\nfunction registerBarcode(barcodes, name) {\n\tAPI.prototype[name] = API.prototype[name.toUpperCase()] = API.prototype[name.toLowerCase()] = function (text, options) {\n\t\tvar api = this;\n\t\treturn api._errorHandler.wrapBarcodeCall(function () {\n\t\t\t// Ensure text is options.text\n\t\t\toptions.text = typeof options.text === 'undefined' ? undefined : '' + options.text;\n\n\t\t\tvar newOptions = (0, _merge2.default)(api._options, options);\n\t\t\tnewOptions = (0, _optionsFromStrings2.default)(newOptions);\n\t\t\tvar Encoder = barcodes[name];\n\t\t\tvar encoded = encode(text, Encoder, newOptions);\n\t\t\tapi._encodings.push(encoded);\n\n\t\t\treturn api;\n\t\t});\n\t};\n}\n\n// encode() handles the Encoder call and builds the binary string to be rendered\nfunction encode(text, Encoder, options) {\n\t// Ensure that text is a string\n\ttext = \"\" + text;\n\n\tvar encoder = new Encoder(text, options);\n\n\t// If the input is not valid for the encoder, throw error.\n\t// If the valid callback option is set, call it instead of throwing error\n\tif (!encoder.valid()) {\n\t\tthrow new _exceptions.InvalidInputException(encoder.constructor.name, text);\n\t}\n\n\t// Make a request for the binary data (and other infromation) that should be rendered\n\tvar encoded = encoder.encode();\n\n\t// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n\t// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\tencoded = (0, _linearizeEncodings2.default)(encoded);\n\n\t// Merge\n\tfor (var i = 0; i < encoded.length; i++) {\n\t\tencoded[i].options = (0, _merge2.default)(options, encoded[i].options);\n\t}\n\n\treturn encoded;\n}\n\nfunction autoSelectBarcode() {\n\t// If CODE128 exists. Use it\n\tif (_barcodes2.default[\"CODE128\"]) {\n\t\treturn \"CODE128\";\n\t}\n\n\t// Else, take the first (probably only) barcode\n\treturn Object.keys(_barcodes2.default)[0];\n}\n\n// Sets global encoder options\n// Added to the api by the JsBarcode function\nAPI.prototype.options = function (options) {\n\tthis._options = (0, _merge2.default)(this._options, options);\n\treturn this;\n};\n\n// Will create a blank space (usually in between barcodes)\nAPI.prototype.blank = function (size) {\n\tvar zeroes = new Array(size + 1).join(\"0\");\n\tthis._encodings.push({ data: zeroes });\n\treturn this;\n};\n\n// Initialize JsBarcode on all HTML elements defined.\nAPI.prototype.init = function () {\n\t// Should do nothing if no elements where found\n\tif (!this._renderProperties) {\n\t\treturn;\n\t}\n\n\t// Make sure renderProperies is an array\n\tif (!Array.isArray(this._renderProperties)) {\n\t\tthis._renderProperties = [this._renderProperties];\n\t}\n\n\tvar renderProperty;\n\tfor (var i in this._renderProperties) {\n\t\trenderProperty = this._renderProperties[i];\n\t\tvar options = (0, _merge2.default)(this._options, renderProperty.options);\n\n\t\tif (options.format == \"auto\") {\n\t\t\toptions.format = autoSelectBarcode();\n\t\t}\n\n\t\tthis._errorHandler.wrapBarcodeCall(function () {\n\t\t\tvar text = options.value;\n\t\t\tvar Encoder = _barcodes2.default[options.format.toUpperCase()];\n\t\t\tvar encoded = encode(text, Encoder, options);\n\n\t\t\trender(renderProperty, encoded, options);\n\t\t});\n\t}\n};\n\n// The render API call. Calls the real render function.\nAPI.prototype.render = function () {\n\tif (!this._renderProperties) {\n\t\tthrow new _exceptions.NoElementException();\n\t}\n\n\tif (Array.isArray(this._renderProperties)) {\n\t\tfor (var i = 0; i < this._renderProperties.length; i++) {\n\t\t\trender(this._renderProperties[i], this._encodings, this._options);\n\t\t}\n\t} else {\n\t\trender(this._renderProperties, this._encodings, this._options);\n\t}\n\n\treturn this;\n};\n\nAPI.prototype._defaults = _defaults2.default;\n\n// Prepares the encodings and calls the renderer\nfunction render(renderProperties, encodings, options) {\n\tencodings = (0, _linearizeEncodings2.default)(encodings);\n\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tencodings[i].options = (0, _merge2.default)(options, encodings[i].options);\n\t\t(0, _fixOptions2.default)(encodings[i].options);\n\t}\n\n\t(0, _fixOptions2.default)(options);\n\n\tvar Renderer = renderProperties.renderer;\n\tvar renderer = new Renderer(renderProperties.element, encodings, options);\n\trenderer.render();\n\n\tif (renderProperties.afterRender) {\n\t\trenderProperties.afterRender();\n\t}\n}\n\n// Export to browser\nif (typeof window !== \"undefined\") {\n\twindow.JsBarcode = JsBarcode;\n}\n\n// Export to jQuery\n/*global jQuery */\nif (typeof jQuery !== 'undefined') {\n\tjQuery.fn.JsBarcode = function (content, options) {\n\t\tvar elementArray = [];\n\t\tjQuery(this).each(function () {\n\t\t\telementArray.push(this);\n\t\t});\n\t\treturn JsBarcode(elementArray, content, options);\n\t};\n}\n\n// Export to commonJS\nmodule.exports = JsBarcode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.mod10 = mod10;\nexports.mod11 = mod11;\nfunction mod10(number) {\n\tvar sum = 0;\n\tfor (var i = 0; i < number.length; i++) {\n\t\tvar n = parseInt(number[i]);\n\t\tif ((i + number.length) % 2 === 0) {\n\t\t\tsum += n;\n\t\t} else {\n\t\t\tsum += n * 2 % 10 + Math.floor(n * 2 / 10);\n\t\t}\n\t}\n\treturn (10 - sum % 10) % 10;\n}\n\nfunction mod11(number) {\n\tvar sum = 0;\n\tvar weights = [2, 3, 4, 5, 6, 7];\n\tfor (var i = 0; i < number.length; i++) {\n\t\tvar n = parseInt(number[number.length - 1 - i]);\n\t\tsum += weights[i % weights.length] * n;\n\t}\n\treturn (11 - sum % 11) % 11;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _CODE2 = require('./CODE128');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _auto = require('./auto');\n\nvar _auto2 = _interopRequireDefault(_auto);\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 CODE128AUTO = function (_CODE) {\n\t_inherits(CODE128AUTO, _CODE);\n\n\tfunction CODE128AUTO(data, options) {\n\t\t_classCallCheck(this, CODE128AUTO);\n\n\t\t// ASCII value ranges 0-127, 200-211\n\t\tif (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(data)) {\n\t\t\tvar _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options));\n\t\t} else {\n\t\t\tvar _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options));\n\t\t}\n\t\treturn _possibleConstructorReturn(_this);\n\t}\n\n\treturn CODE128AUTO;\n}(_CODE3.default);\n\nexports.default = CODE128AUTO;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\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 CODE128B = function (_CODE) {\n\t_inherits(CODE128B, _CODE);\n\n\tfunction CODE128B(string, options) {\n\t\t_classCallCheck(this, CODE128B);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128B, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.B_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128B;\n}(_CODE3.default);\n\nexports.default = CODE128B;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = require(\"./shared.js\");\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 CanvasRenderer = function () {\n\tfunction CanvasRenderer(canvas, encodings, options) {\n\t\t_classCallCheck(this, CanvasRenderer);\n\n\t\tthis.canvas = canvas;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t}\n\n\t_createClass(CanvasRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\t// Abort if the browser does not support HTML5 canvas\n\t\t\tif (!this.canvas.getContext) {\n\t\t\t\tthrow new Error('The browser does not support canvas.');\n\t\t\t}\n\n\t\t\tthis.prepareCanvas();\n\t\t\tfor (var i = 0; i < this.encodings.length; i++) {\n\t\t\t\tvar encodingOptions = (0, _merge2.default)(this.options, this.encodings[i].options);\n\n\t\t\t\tthis.drawCanvasBarcode(encodingOptions, this.encodings[i]);\n\t\t\t\tthis.drawCanvasText(encodingOptions, this.encodings[i]);\n\n\t\t\t\tthis.moveCanvasDrawing(this.encodings[i]);\n\t\t\t}\n\n\t\t\tthis.restoreCanvas();\n\t\t}\n\t}, {\n\t\tkey: \"prepareCanvas\",\n\t\tvalue: function prepareCanvas() {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.save();\n\n\t\t\t(0, _shared.calculateEncodingAttributes)(this.encodings, this.options, ctx);\n\t\t\tvar totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n\t\t\tvar maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n\n\t\t\tthis.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight;\n\n\t\t\tthis.canvas.height = maxHeight;\n\n\t\t\t// Paint the canvas\n\t\t\tctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t\t\tif (this.options.background) {\n\t\t\t\tctx.fillStyle = this.options.background;\n\t\t\t\tctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\t\t\t}\n\n\t\t\tctx.translate(this.options.marginLeft, 0);\n\t\t}\n\t}, {\n\t\tkey: \"drawCanvasBarcode\",\n\t\tvalue: function drawCanvasBarcode(options, encoding) {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tvar binary = encoding.data;\n\n\t\t\t// Creates the barcode out of the encoded binary\n\t\t\tvar yFrom;\n\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\tyFrom = options.marginTop + options.fontSize + options.textMargin;\n\t\t\t} else {\n\t\t\t\tyFrom = options.marginTop;\n\t\t\t}\n\n\t\t\tctx.fillStyle = options.lineColor;\n\n\t\t\tfor (var b = 0; b < binary.length; b++) {\n\t\t\t\tvar x = b * options.width + encoding.barcodePadding;\n\n\t\t\t\tif (binary[b] === \"1\") {\n\t\t\t\t\tctx.fillRect(x, yFrom, options.width, options.height);\n\t\t\t\t} else if (binary[b]) {\n\t\t\t\t\tctx.fillRect(x, yFrom, options.width, options.height * binary[b]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawCanvasText\",\n\t\tvalue: function drawCanvasText(options, encoding) {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tvar font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n\t\t\t// Draw the text if displayValue is set\n\t\t\tif (options.displayValue) {\n\t\t\t\tvar x, y;\n\n\t\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\t\ty = options.marginTop + options.fontSize - options.textMargin;\n\t\t\t\t} else {\n\t\t\t\t\ty = options.height + options.textMargin + options.marginTop + options.fontSize;\n\t\t\t\t}\n\n\t\t\t\tctx.font = font;\n\n\t\t\t\t// Draw the text in the correct X depending on the textAlign option\n\t\t\t\tif (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\tctx.textAlign = 'left';\n\t\t\t\t} else if (options.textAlign == \"right\") {\n\t\t\t\t\tx = encoding.width - 1;\n\t\t\t\t\tctx.textAlign = 'right';\n\t\t\t\t}\n\t\t\t\t// In all other cases, center the text\n\t\t\t\telse {\n\t\t\t\t\t\tx = encoding.width / 2;\n\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t}\n\n\t\t\t\tctx.fillText(encoding.text, x, y);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"moveCanvasDrawing\",\n\t\tvalue: function moveCanvasDrawing(encoding) {\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.translate(encoding.width, 0);\n\t\t}\n\t}, {\n\t\tkey: \"restoreCanvas\",\n\t\tvalue: function restoreCanvas() {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.restore();\n\t\t}\n\t}]);\n\n\treturn CanvasRenderer;\n}();\n\nexports.default = CanvasRenderer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _canvas = require('./canvas.js');\n\nvar _canvas2 = _interopRequireDefault(_canvas);\n\nvar _svg = require('./svg.js');\n\nvar _svg2 = _interopRequireDefault(_svg);\n\nvar _object = require('./object.js');\n\nvar _object2 = _interopRequireDefault(_object);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = { CanvasRenderer: _canvas2.default, SVGRenderer: _svg2.default, ObjectRenderer: _object2.default };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = fixOptions;\n\n\nfunction fixOptions(options) {\n\t// Fix the margins\n\toptions.marginTop = options.marginTop || options.margin;\n\toptions.marginBottom = options.marginBottom || options.margin;\n\toptions.marginRight = options.marginRight || options.margin;\n\toptions.marginLeft = options.marginLeft || options.margin;\n\n\treturn options;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.pharmacode = 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 _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding documentation\n// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf\n\nvar pharmacode = function (_Barcode) {\n\t_inherits(pharmacode, _Barcode);\n\n\tfunction pharmacode(data, options) {\n\t\t_classCallCheck(this, pharmacode);\n\n\t\tvar _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options));\n\n\t\t_this.number = parseInt(data, 10);\n\t\treturn _this;\n\t}\n\n\t_createClass(pharmacode, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tvar z = this.number;\n\t\t\tvar result = \"\";\n\n\t\t\t// http://i.imgur.com/RMm4UDJ.png\n\t\t\t// (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34)\n\t\t\twhile (!isNaN(z) && z != 0) {\n\t\t\t\tif (z % 2 === 0) {\n\t\t\t\t\t// Even\n\t\t\t\t\tresult = \"11100\" + result;\n\t\t\t\t\tz = (z - 2) / 2;\n\t\t\t\t} else {\n\t\t\t\t\t// Odd\n\t\t\t\t\tresult = \"100\" + result;\n\t\t\t\t\tz = (z - 1) / 2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the two last zeroes\n\t\t\tresult = result.slice(0, -2);\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.number >= 3 && this.number <= 131070;\n\t\t}\n\t}]);\n\n\treturn pharmacode;\n}(_Barcode3.default);\n\nexports.pharmacode = pharmacode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\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 MSI1110 = function (_MSI) {\n\t_inherits(MSI1110, _MSI);\n\n\tfunction MSI1110(data, options) {\n\t\t_classCallCheck(this, MSI1110);\n\n\t\tdata += (0, _checksums.mod11)(data);\n\t\tdata += (0, _checksums.mod10)(data);\n\t\treturn _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options));\n\t}\n\n\treturn MSI1110;\n}(_MSI3.default);\n\nexports.default = MSI1110;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\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 MSI1010 = function (_MSI) {\n\t_inherits(MSI1010, _MSI);\n\n\tfunction MSI1010(data, options) {\n\t\t_classCallCheck(this, MSI1010);\n\n\t\tdata += (0, _checksums.mod10)(data);\n\t\tdata += (0, _checksums.mod10)(data);\n\t\treturn _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options));\n\t}\n\n\treturn MSI1010;\n}(_MSI3.default);\n\nexports.default = MSI1010;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _constants = require('./constants');\n\nvar _EAN2 = require('./EAN');\n\nvar _EAN3 = _interopRequireDefault(_EAN2);\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; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode\n\n// Calculate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\nvar checksum = function checksum(number) {\n\tvar res = number.substr(0, 12).split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a * 3 : sum + a;\n\t}, 0);\n\n\treturn (10 - res % 10) % 10;\n};\n\nvar EAN13 = function (_EAN) {\n\t_inherits(EAN13, _EAN);\n\n\tfunction EAN13(data, options) {\n\t\t_classCallCheck(this, EAN13);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{12}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\t// Adds a last character to the end of the barcode\n\t\tvar _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options));\n\n\t\t_this.lastChar = options.lastChar;\n\t\treturn _this;\n\t}\n\n\t_createClass(EAN13, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText() {\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode() {\n\t\t\tvar data = this.data.substr(1, 6);\n\t\t\tvar structure = _constants.EAN13_STRUCTURE[this.data[0]];\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText() {\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode() {\n\t\t\tvar data = this.data.substr(7, 6);\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR');\n\t\t}\n\n\t\t// The \"standard\" way of printing EAN13 barcodes with guard bars\n\n\t}, {\n\t\tkey: 'encodeGuarded',\n\t\tvalue: function encodeGuarded() {\n\t\t\tvar data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this);\n\n\t\t\t// Extend data with left digit & last character\n\t\t\tif (this.options.displayValue) {\n\t\t\t\tdata.unshift({\n\t\t\t\t\tdata: '000000000000',\n\t\t\t\t\ttext: this.text.substr(0, 1),\n\t\t\t\t\toptions: { textAlign: 'left', fontSize: this.fontSize }\n\t\t\t\t});\n\n\t\t\t\tif (this.options.lastChar) {\n\t\t\t\t\tdata.push({\n\t\t\t\t\t\tdata: '00'\n\t\t\t\t\t});\n\t\t\t\t\tdata.push({\n\t\t\t\t\t\tdata: '00000',\n\t\t\t\t\t\ttext: this.options.lastChar,\n\t\t\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\t}]);\n\n\treturn EAN13;\n}(_EAN3.default);\n\nexports.default = EAN13;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined;\n\nvar _MSI = require('./MSI.js');\n\nvar _MSI2 = _interopRequireDefault(_MSI);\n\nvar _MSI3 = require('./MSI10.js');\n\nvar _MSI4 = _interopRequireDefault(_MSI3);\n\nvar _MSI5 = require('./MSI11.js');\n\nvar _MSI6 = _interopRequireDefault(_MSI5);\n\nvar _MSI7 = require('./MSI1010.js');\n\nvar _MSI8 = _interopRequireDefault(_MSI7);\n\nvar _MSI9 = require('./MSI1110.js');\n\nvar _MSI10 = _interopRequireDefault(_MSI9);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.MSI = _MSI2.default;\nexports.MSI10 = _MSI4.default;\nexports.MSI11 = _MSI6.default;\nexports.MSI1010 = _MSI8.default;\nexports.MSI1110 = _MSI10.default;","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ITF14 = exports.ITF = undefined;\n\nvar _ITF = require('./ITF');\n\nvar _ITF2 = _interopRequireDefault(_ITF);\n\nvar _ITF3 = require('./ITF14');\n\nvar _ITF4 = _interopRequireDefault(_ITF3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.ITF = _ITF2.default;\nexports.ITF14 = _ITF4.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = linearizeEncodings;\n\n// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\nfunction linearizeEncodings(encodings) {\n\tvar linearEncodings = [];\n\tfunction nextLevel(encoded) {\n\t\tif (Array.isArray(encoded)) {\n\t\t\tfor (var i = 0; i < encoded.length; i++) {\n\t\t\t\tnextLevel(encoded[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tencoded.text = encoded.text || \"\";\n\t\t\tencoded.data = encoded.data || \"\";\n\t\t\tlinearEncodings.push(encoded);\n\t\t}\n\t}\n\tnextLevel(encodings);\n\n\treturn linearEncodings;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_2#Encoding\n\nvar EAN2 = function (_Barcode) {\n\t_inherits(EAN2, _Barcode);\n\n\tfunction EAN2(data, options) {\n\t\t_classCallCheck(this, EAN2);\n\n\t\treturn _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options));\n\t}\n\n\t_createClass(EAN2, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{2}$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\t// Choose the structure based on the number mod 4\n\t\t\tvar structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4];\n\t\t\treturn {\n\t\t\t\t// Start bits + Encode the two digits with 01 in between\n\t\t\t\tdata: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN2;\n}(_Barcode3.default);\n\nexports.default = EAN2;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _optionsFromStrings = require(\"./optionsFromStrings.js\");\n\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\n\nvar _defaults = require(\"../options/defaults.js\");\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getOptionsFromElement(element) {\n\tvar options = {};\n\tfor (var property in _defaults2.default) {\n\t\tif (_defaults2.default.hasOwnProperty(property)) {\n\t\t\t// jsbarcode-*\n\t\t\tif (element.hasAttribute(\"jsbarcode-\" + property.toLowerCase())) {\n\t\t\t\toptions[property] = element.getAttribute(\"jsbarcode-\" + property.toLowerCase());\n\t\t\t}\n\n\t\t\t// data-*\n\t\t\tif (element.hasAttribute(\"data-\" + property.toLowerCase())) {\n\t\t\t\toptions[property] = element.getAttribute(\"data-\" + property.toLowerCase());\n\t\t\t}\n\t\t}\n\t}\n\n\toptions[\"value\"] = element.getAttribute(\"jsbarcode-value\") || element.getAttribute(\"data-value\");\n\n\t// Since all atributes are string they need to be converted to integers\n\toptions = (0, _optionsFromStrings2.default)(options);\n\n\treturn options;\n}\n\nexports.default = getOptionsFromElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.getTotalWidthOfEncodings = exports.calculateEncodingAttributes = exports.getBarcodePadding = exports.getEncodingHeight = exports.getMaximumHeightOfEncodings = undefined;\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getEncodingHeight(encoding, options) {\n\treturn options.height + (options.displayValue && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom;\n}\n\nfunction getBarcodePadding(textWidth, barcodeWidth, options) {\n\tif (options.displayValue && barcodeWidth < textWidth) {\n\t\tif (options.textAlign == \"center\") {\n\t\t\treturn Math.floor((textWidth - barcodeWidth) / 2);\n\t\t} else if (options.textAlign == \"left\") {\n\t\t\treturn 0;\n\t\t} else if (options.textAlign == \"right\") {\n\t\t\treturn Math.floor(textWidth - barcodeWidth);\n\t\t}\n\t}\n\treturn 0;\n}\n\nfunction calculateEncodingAttributes(encodings, barcodeOptions, context) {\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tvar encoding = encodings[i];\n\t\tvar options = (0, _merge2.default)(barcodeOptions, encoding.options);\n\n\t\t// Calculate the width of the encoding\n\t\tvar textWidth;\n\t\tif (options.displayValue) {\n\t\t\ttextWidth = messureText(encoding.text, options, context);\n\t\t} else {\n\t\t\ttextWidth = 0;\n\t\t}\n\n\t\tvar barcodeWidth = encoding.data.length * options.width;\n\t\tencoding.width = Math.ceil(Math.max(textWidth, barcodeWidth));\n\n\t\tencoding.height = getEncodingHeight(encoding, options);\n\n\t\tencoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options);\n\t}\n}\n\nfunction getTotalWidthOfEncodings(encodings) {\n\tvar totalWidth = 0;\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\ttotalWidth += encodings[i].width;\n\t}\n\treturn totalWidth;\n}\n\nfunction getMaximumHeightOfEncodings(encodings) {\n\tvar maxHeight = 0;\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tif (encodings[i].height > maxHeight) {\n\t\t\tmaxHeight = encodings[i].height;\n\t\t}\n\t}\n\treturn maxHeight;\n}\n\nfunction messureText(string, options, context) {\n\tvar ctx;\n\n\tif (context) {\n\t\tctx = context;\n\t} else if (typeof document !== \"undefined\") {\n\t\tctx = document.createElement(\"canvas\").getContext(\"2d\");\n\t} else {\n\t\t// If the text cannot be messured we will return 0.\n\t\t// This will make some barcode with big text render incorrectly\n\t\treturn 0;\n\t}\n\tctx.font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n\t// Calculate the width of the encoding\n\tvar measureTextResult = ctx.measureText(string);\n\tif (!measureTextResult) {\n\t\t// Some implementations don't implement measureText and return undefined.\n\t\t// If the text cannot be measured we will return 0.\n\t\t// This will make some barcode with big text render incorrectly\n\t\treturn 0;\n\t}\n\tvar size = measureTextResult.width;\n\treturn size;\n}\n\nexports.getMaximumHeightOfEncodings = getMaximumHeightOfEncodings;\nexports.getEncodingHeight = getEncodingHeight;\nexports.getBarcodePadding = getBarcodePadding;\nexports.calculateEncodingAttributes = calculateEncodingAttributes;\nexports.getTotalWidthOfEncodings = getTotalWidthOfEncodings;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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; }; /* global HTMLImageElement */\n/* global HTMLCanvasElement */\n/* global SVGElement */\n\nvar _getOptionsFromElement = require(\"./getOptionsFromElement.js\");\n\nvar _getOptionsFromElement2 = _interopRequireDefault(_getOptionsFromElement);\n\nvar _renderers = require(\"../renderers\");\n\nvar _renderers2 = _interopRequireDefault(_renderers);\n\nvar _exceptions = require(\"../exceptions/exceptions.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Takes an element and returns an object with information about how\n// it should be rendered\n// This could also return an array with these objects\n// {\n// element: The element that the renderer should draw on\n// renderer: The name of the renderer\n// afterRender (optional): If something has to done after the renderer\n// completed, calls afterRender (function)\n// options (optional): Options that can be defined in the element\n// }\n\nfunction getRenderProperties(element) {\n\t// If the element is a string, query select call again\n\tif (typeof element === \"string\") {\n\t\treturn querySelectedRenderProperties(element);\n\t}\n\t// If element is array. Recursivly call with every object in the array\n\telse if (Array.isArray(element)) {\n\t\t\tvar returnArray = [];\n\t\t\tfor (var i = 0; i < element.length; i++) {\n\t\t\t\treturnArray.push(getRenderProperties(element[i]));\n\t\t\t}\n\t\t\treturn returnArray;\n\t\t}\n\t\t// If element, render on canvas and set the uri as src\n\t\telse if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement) {\n\t\t\t\treturn newCanvasRenderProperties(element);\n\t\t\t}\n\t\t\t// If SVG\n\t\t\telse if (element && element.nodeName && element.nodeName.toLowerCase() === 'svg' || typeof SVGElement !== 'undefined' && element instanceof SVGElement) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\telement: element,\n\t\t\t\t\t\toptions: (0, _getOptionsFromElement2.default)(element),\n\t\t\t\t\t\trenderer: _renderers2.default.SVGRenderer\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t// If canvas (in browser)\n\t\t\t\telse if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\toptions: (0, _getOptionsFromElement2.default)(element),\n\t\t\t\t\t\t\trenderer: _renderers2.default.CanvasRenderer\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\t// If canvas (in node)\n\t\t\t\t\telse if (element && element.getContext) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\t\trenderer: _renderers2.default.CanvasRenderer\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (element && (typeof element === \"undefined\" ? \"undefined\" : _typeof(element)) === 'object' && !element.nodeName) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\t\trenderer: _renderers2.default.ObjectRenderer\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new _exceptions.InvalidElementException();\n\t\t\t\t\t\t}\n}\n\nfunction querySelectedRenderProperties(string) {\n\tvar selector = document.querySelectorAll(string);\n\tif (selector.length === 0) {\n\t\treturn undefined;\n\t} else {\n\t\tvar returnArray = [];\n\t\tfor (var i = 0; i < selector.length; i++) {\n\t\t\treturnArray.push(getRenderProperties(selector[i]));\n\t\t}\n\t\treturn returnArray;\n\t}\n}\n\nfunction newCanvasRenderProperties(imgElement) {\n\tvar canvas = document.createElement('canvas');\n\treturn {\n\t\telement: canvas,\n\t\toptions: (0, _getOptionsFromElement2.default)(imgElement),\n\t\trenderer: _renderers2.default.CanvasRenderer,\n\t\tafterRender: function afterRender() {\n\t\t\timgElement.setAttribute(\"src\", canvas.toDataURL());\n\t\t}\n\t};\n}\n\nexports.default = getRenderProperties;","/*!\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _constants = require('./constants');\n\n// Match Set functions\nvar matchSetALength = function matchSetALength(string) {\n\treturn string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length;\n};\nvar matchSetBLength = function matchSetBLength(string) {\n\treturn string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length;\n};\nvar matchSetC = function matchSetC(string) {\n\treturn string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0];\n};\n\n// CODE128A or CODE128B\nfunction autoSelectFromAB(string, isA) {\n\tvar ranges = isA ? _constants.A_CHARS : _constants.B_CHARS;\n\tvar untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)'));\n\n\tif (untilC) {\n\t\treturn untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length));\n\t}\n\n\tvar chars = string.match(new RegExp('^' + ranges + '+'))[0];\n\n\tif (chars.length === string.length) {\n\t\treturn string;\n\t}\n\n\treturn chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA);\n}\n\n// CODE128C\nfunction autoSelectFromC(string) {\n\tvar cMatch = matchSetC(string);\n\tvar length = cMatch.length;\n\n\tif (length === string.length) {\n\t\treturn string;\n\t}\n\n\tstring = string.substring(length);\n\n\t// Select A/B depending on the longest match\n\tvar isA = matchSetALength(string) >= matchSetBLength(string);\n\treturn cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA);\n}\n\n// Detect Code Set (A, B or C) and format the string\n\nexports.default = function (string) {\n\tvar newString = void 0;\n\tvar cLength = matchSetC(string).length;\n\n\t// Select 128C if the string start with enough digits\n\tif (cLength >= 2) {\n\t\tnewString = _constants.C_START_CHAR + autoSelectFromC(string);\n\t} else {\n\t\t// Select A/B depending on the longest match\n\t\tvar isA = matchSetALength(string) > matchSetBLength(string);\n\t\tnewString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA);\n\t}\n\n\treturn newString.replace(/[\\xCD\\xCE]([^])[\\xCD\\xCE]/, // Any sequence between 205 and 206 characters\n\tfunction (match, char) {\n\t\treturn String.fromCharCode(203) + char;\n\t});\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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\n/*eslint no-console: 0 */\n\nvar ErrorHandler = function () {\n\tfunction ErrorHandler(api) {\n\t\t_classCallCheck(this, ErrorHandler);\n\n\t\tthis.api = api;\n\t}\n\n\t_createClass(ErrorHandler, [{\n\t\tkey: \"handleCatch\",\n\t\tvalue: function handleCatch(e) {\n\t\t\t// If babel supported extending of Error in a correct way instanceof would be used here\n\t\t\tif (e.name === \"InvalidInputException\") {\n\t\t\t\tif (this.api._options.valid !== this.api._defaults.valid) {\n\t\t\t\t\tthis.api._options.valid(false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow e.message;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\n\t\t\tthis.api.render = function () {};\n\t\t}\n\t}, {\n\t\tkey: \"wrapBarcodeCall\",\n\t\tvalue: function wrapBarcodeCall(func) {\n\t\t\ttry {\n\t\t\t\tvar result = func.apply(undefined, arguments);\n\t\t\t\tthis.api._options.valid(true);\n\t\t\t\treturn result;\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleCatch(e);\n\n\t\t\t\treturn this.api;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn ErrorHandler;\n}();\n\nexports.default = ErrorHandler;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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\n// Base class for EAN8 & EAN13\nvar EAN = function (_Barcode) {\n\t_inherits(EAN, _Barcode);\n\n\tfunction EAN(data, options) {\n\t\t_classCallCheck(this, EAN);\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tvar _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options));\n\n\t\t_this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize;\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(EAN, [{\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\treturn this.options.flat ? this.encodeFlat() : this.encodeGuarded();\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText(from, to) {\n\t\t\treturn this.text.substr(from, to);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode(data, structure) {\n\t\t\treturn (0, _encoder2.default)(data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText(from, to) {\n\t\t\treturn this.text.substr(from, to);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode(data, structure) {\n\t\t\treturn (0, _encoder2.default)(data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'encodeGuarded',\n\t\tvalue: function encodeGuarded() {\n\t\t\tvar textOptions = { fontSize: this.fontSize };\n\t\t\tvar guardOptions = { height: this.guardHeight };\n\n\t\t\treturn [{ data: _constants.SIDE_BIN, options: guardOptions }, { data: this.leftEncode(), text: this.leftText(), options: textOptions }, { data: _constants.MIDDLE_BIN, options: guardOptions }, { data: this.rightEncode(), text: this.rightText(), options: textOptions }, { data: _constants.SIDE_BIN, options: guardOptions }];\n\t\t}\n\t}, {\n\t\tkey: 'encodeFlat',\n\t\tvalue: function encodeFlat() {\n\t\t\tvar data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN];\n\n\t\t\treturn {\n\t\t\t\tdata: data.join(''),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN;\n}(_Barcode3.default);\n\nexports.default = EAN;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = require(\"./shared.js\");\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 svgns = \"http://www.w3.org/2000/svg\";\n\nvar SVGRenderer = function () {\n\tfunction SVGRenderer(svg, encodings, options) {\n\t\t_classCallCheck(this, SVGRenderer);\n\n\t\tthis.svg = svg;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t\tthis.document = options.xmlDocument || document;\n\t}\n\n\t_createClass(SVGRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar currentX = this.options.marginLeft;\n\n\t\t\tthis.prepareSVG();\n\t\t\tfor (var i = 0; i < this.encodings.length; i++) {\n\t\t\t\tvar encoding = this.encodings[i];\n\t\t\t\tvar encodingOptions = (0, _merge2.default)(this.options, encoding.options);\n\n\t\t\t\tvar group = this.createGroup(currentX, encodingOptions.marginTop, this.svg);\n\n\t\t\t\tthis.setGroupOptions(group, encodingOptions);\n\n\t\t\t\tthis.drawSvgBarcode(group, encodingOptions, encoding);\n\t\t\t\tthis.drawSVGText(group, encodingOptions, encoding);\n\n\t\t\t\tcurrentX += encoding.width;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"prepareSVG\",\n\t\tvalue: function prepareSVG() {\n\t\t\t// Clear the SVG\n\t\t\twhile (this.svg.firstChild) {\n\t\t\t\tthis.svg.removeChild(this.svg.firstChild);\n\t\t\t}\n\n\t\t\t(0, _shared.calculateEncodingAttributes)(this.encodings, this.options);\n\t\t\tvar totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n\t\t\tvar maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n\n\t\t\tvar width = totalWidth + this.options.marginLeft + this.options.marginRight;\n\t\t\tthis.setSvgAttributes(width, maxHeight);\n\n\t\t\tif (this.options.background) {\n\t\t\t\tthis.drawRect(0, 0, width, maxHeight, this.svg).setAttribute(\"style\", \"fill:\" + this.options.background + \";\");\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawSvgBarcode\",\n\t\tvalue: function drawSvgBarcode(parent, options, encoding) {\n\t\t\tvar binary = encoding.data;\n\n\t\t\t// Creates the barcode out of the encoded binary\n\t\t\tvar yFrom;\n\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\tyFrom = options.fontSize + options.textMargin;\n\t\t\t} else {\n\t\t\t\tyFrom = 0;\n\t\t\t}\n\n\t\t\tvar barWidth = 0;\n\t\t\tvar x = 0;\n\t\t\tfor (var b = 0; b < binary.length; b++) {\n\t\t\t\tx = b * options.width + encoding.barcodePadding;\n\n\t\t\t\tif (binary[b] === \"1\") {\n\t\t\t\t\tbarWidth++;\n\t\t\t\t} else if (barWidth > 0) {\n\t\t\t\t\tthis.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent);\n\t\t\t\t\tbarWidth = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Last draw is needed since the barcode ends with 1\n\t\t\tif (barWidth > 0) {\n\t\t\t\tthis.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawSVGText\",\n\t\tvalue: function drawSVGText(parent, options, encoding) {\n\t\t\tvar textElem = this.document.createElementNS(svgns, 'text');\n\n\t\t\t// Draw the text if displayValue is set\n\t\t\tif (options.displayValue) {\n\t\t\t\tvar x, y;\n\n\t\t\t\ttextElem.setAttribute(\"style\", \"font:\" + options.fontOptions + \" \" + options.fontSize + \"px \" + options.font);\n\n\t\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\t\ty = options.fontSize - options.textMargin;\n\t\t\t\t} else {\n\t\t\t\t\ty = options.height + options.textMargin + options.fontSize;\n\t\t\t\t}\n\n\t\t\t\t// Draw the text in the correct X depending on the textAlign option\n\t\t\t\tif (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"start\");\n\t\t\t\t} else if (options.textAlign == \"right\") {\n\t\t\t\t\tx = encoding.width - 1;\n\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"end\");\n\t\t\t\t}\n\t\t\t\t// In all other cases, center the text\n\t\t\t\telse {\n\t\t\t\t\t\tx = encoding.width / 2;\n\t\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"middle\");\n\t\t\t\t\t}\n\n\t\t\t\ttextElem.setAttribute(\"x\", x);\n\t\t\t\ttextElem.setAttribute(\"y\", y);\n\n\t\t\t\ttextElem.appendChild(this.document.createTextNode(encoding.text));\n\n\t\t\t\tparent.appendChild(textElem);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"setSvgAttributes\",\n\t\tvalue: function setSvgAttributes(width, height) {\n\t\t\tvar svg = this.svg;\n\t\t\tsvg.setAttribute(\"width\", width + \"px\");\n\t\t\tsvg.setAttribute(\"height\", height + \"px\");\n\t\t\tsvg.setAttribute(\"x\", \"0px\");\n\t\t\tsvg.setAttribute(\"y\", \"0px\");\n\t\t\tsvg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n\n\t\t\tsvg.setAttribute(\"xmlns\", svgns);\n\t\t\tsvg.setAttribute(\"version\", \"1.1\");\n\n\t\t\tsvg.setAttribute(\"style\", \"transform: translate(0,0)\");\n\t\t}\n\t}, {\n\t\tkey: \"createGroup\",\n\t\tvalue: function createGroup(x, y, parent) {\n\t\t\tvar group = this.document.createElementNS(svgns, 'g');\n\t\t\tgroup.setAttribute(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n\n\t\t\tparent.appendChild(group);\n\n\t\t\treturn group;\n\t\t}\n\t}, {\n\t\tkey: \"setGroupOptions\",\n\t\tvalue: function setGroupOptions(group, options) {\n\t\t\tgroup.setAttribute(\"style\", \"fill:\" + options.lineColor + \";\");\n\t\t}\n\t}, {\n\t\tkey: \"drawRect\",\n\t\tvalue: function drawRect(x, y, width, height, parent) {\n\t\t\tvar rect = this.document.createElementNS(svgns, 'rect');\n\n\t\t\trect.setAttribute(\"x\", x);\n\t\t\trect.setAttribute(\"y\", y);\n\t\t\trect.setAttribute(\"width\", width);\n\t\t\trect.setAttribute(\"height\", height);\n\n\t\t\tparent.appendChild(rect);\n\n\t\t\treturn rect;\n\t\t}\n\t}]);\n\n\treturn SVGRenderer;\n}();\n\nexports.default = SVGRenderer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode.js');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nvar _UPC = require('./UPC.js');\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; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n//\n// UPC-E documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E\n\nvar EXPANSIONS = [\"XX00000XXX\", \"XX10000XXX\", \"XX20000XXX\", \"XXX00000XX\", \"XXXX00000X\", \"XXXXX00005\", \"XXXXX00006\", \"XXXXX00007\", \"XXXXX00008\", \"XXXXX00009\"];\n\nvar PARITIES = [[\"EEEOOO\", \"OOOEEE\"], [\"EEOEOO\", \"OOEOEE\"], [\"EEOOEO\", \"OOEEOE\"], [\"EEOOOE\", \"OOEEEO\"], [\"EOEEOO\", \"OEOOEE\"], [\"EOOEEO\", \"OEEOOE\"], [\"EOOOEE\", \"OEEEOO\"], [\"EOEOEO\", \"OEOEOE\"], [\"EOEOOE\", \"OEOEEO\"], [\"EOOEOE\", \"OEEOEO\"]];\n\nvar UPCE = function (_Barcode) {\n\t_inherits(UPCE, _Barcode);\n\n\tfunction UPCE(data, options) {\n\t\t_classCallCheck(this, UPCE);\n\n\t\tvar _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options));\n\t\t// Code may be 6 or 8 digits;\n\t\t// A 7 digit code is ambiguous as to whether the extra digit\n\t\t// is a UPC-A check or number system digit.\n\n\n\t\t_this.isValid = false;\n\t\tif (data.search(/^[0-9]{6}$/) !== -1) {\n\t\t\t_this.middleDigits = data;\n\t\t\t_this.upcA = expandToUPCA(data, \"0\");\n\t\t\t_this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1];\n\t\t\t_this.isValid = true;\n\t\t} else if (data.search(/^[01][0-9]{7}$/) !== -1) {\n\t\t\t_this.middleDigits = data.substring(1, data.length - 1);\n\t\t\t_this.upcA = expandToUPCA(_this.middleDigits, data[0]);\n\n\t\t\tif (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) {\n\t\t\t\t_this.isValid = true;\n\t\t\t} else {\n\t\t\t\t// checksum mismatch\n\t\t\t\treturn _possibleConstructorReturn(_this);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _possibleConstructorReturn(_this);\n\t\t}\n\n\t\t_this.displayValue = options.displayValue;\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tif (options.fontSize > options.width * 10) {\n\t\t\t_this.fontSize = options.width * 10;\n\t\t} else {\n\t\t\t_this.fontSize = options.fontSize;\n\t\t}\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(UPCE, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.isValid;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tif (this.options.flat) {\n\t\t\t\treturn this.flatEncoding();\n\t\t\t} else {\n\t\t\t\treturn this.guardedEncoding();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'flatEncoding',\n\t\tvalue: function flatEncoding() {\n\t\t\tvar result = \"\";\n\n\t\t\tresult += \"101\";\n\t\t\tresult += this.encodeMiddleDigits();\n\t\t\tresult += \"010101\";\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'guardedEncoding',\n\t\tvalue: function guardedEncoding() {\n\t\t\tvar result = [];\n\n\t\t\t// Add the UPC-A number system digit beneath the quiet zone\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text[0],\n\t\t\t\t\toptions: { textAlign: \"left\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add the guard bars\n\t\t\tresult.push({\n\t\t\t\tdata: \"101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the 6 UPC-E digits\n\t\t\tresult.push({\n\t\t\t\tdata: this.encodeMiddleDigits(),\n\t\t\t\ttext: this.text.substring(1, 7),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the end bits\n\t\t\tresult.push({\n\t\t\t\tdata: \"010101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the UPC-A check digit beneath the quiet zone\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text[7],\n\t\t\t\t\toptions: { textAlign: \"right\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: 'encodeMiddleDigits',\n\t\tvalue: function encodeMiddleDigits() {\n\t\t\tvar numberSystem = this.upcA[0];\n\t\t\tvar checkDigit = this.upcA[this.upcA.length - 1];\n\t\t\tvar parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)];\n\t\t\treturn (0, _encoder2.default)(this.middleDigits, parity);\n\t\t}\n\t}]);\n\n\treturn UPCE;\n}(_Barcode3.default);\n\nfunction expandToUPCA(middleDigits, numberSystem) {\n\tvar lastUpcE = parseInt(middleDigits[middleDigits.length - 1]);\n\tvar expansion = EXPANSIONS[lastUpcE];\n\n\tvar result = \"\";\n\tvar digitIndex = 0;\n\tfor (var i = 0; i < expansion.length; i++) {\n\t\tvar c = expansion[i];\n\t\tif (c === 'X') {\n\t\t\tresult += middleDigits[digitIndex++];\n\t\t} else {\n\t\t\tresult += c;\n\t\t}\n\t}\n\n\tresult = '' + numberSystem + result;\n\treturn '' + result + (0, _UPC.checksum)(result);\n}\n\nexports.default = UPCE;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.codabar = 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 _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding specification:\n// http://www.barcodeisland.com/codabar.phtml\n\nvar codabar = function (_Barcode) {\n\t_inherits(codabar, _Barcode);\n\n\tfunction codabar(data, options) {\n\t\t_classCallCheck(this, codabar);\n\n\t\tif (data.search(/^[0-9\\-\\$\\:\\.\\+\\/]+$/) === 0) {\n\t\t\tdata = \"A\" + data + \"A\";\n\t\t}\n\n\t\tvar _this = _possibleConstructorReturn(this, (codabar.__proto__ || Object.getPrototypeOf(codabar)).call(this, data.toUpperCase(), options));\n\n\t\t_this.text = _this.options.text || _this.text.replace(/[A-D]/g, '');\n\t\treturn _this;\n\t}\n\n\t_createClass(codabar, [{\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[A-D][0-9\\-\\$\\:\\.\\+\\/]+[A-D]$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tvar result = [];\n\t\t\tvar encodings = this.getEncodings();\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\tresult.push(encodings[this.data.charAt(i)]);\n\t\t\t\t// for all characters except the last, append a narrow-space (\"0\")\n\t\t\t\tif (i !== this.data.length - 1) {\n\t\t\t\t\tresult.push(\"0\");\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttext: this.text,\n\t\t\t\tdata: result.join('')\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"getEncodings\",\n\t\tvalue: function getEncodings() {\n\t\t\treturn {\n\t\t\t\t\"0\": \"101010011\",\n\t\t\t\t\"1\": \"101011001\",\n\t\t\t\t\"2\": \"101001011\",\n\t\t\t\t\"3\": \"110010101\",\n\t\t\t\t\"4\": \"101101001\",\n\t\t\t\t\"5\": \"110101001\",\n\t\t\t\t\"6\": \"100101011\",\n\t\t\t\t\"7\": \"100101101\",\n\t\t\t\t\"8\": \"100110101\",\n\t\t\t\t\"9\": \"110100101\",\n\t\t\t\t\"-\": \"101001101\",\n\t\t\t\t\"$\": \"101100101\",\n\t\t\t\t\":\": \"1101011011\",\n\t\t\t\t\"/\": \"1101101011\",\n\t\t\t\t\".\": \"1101101101\",\n\t\t\t\t\"+\": \"101100110011\",\n\t\t\t\t\"A\": \"1011001001\",\n\t\t\t\t\"B\": \"1001001011\",\n\t\t\t\t\"C\": \"1010010011\",\n\t\t\t\t\"D\": \"1010011001\"\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn codabar;\n}(_Barcode3.default);\n\nexports.codabar = codabar;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n// Standard start end and middle bits\nvar SIDE_BIN = exports.SIDE_BIN = '101';\nvar MIDDLE_BIN = exports.MIDDLE_BIN = '01010';\n\nvar BINARIES = exports.BINARIES = {\n\t'L': [// The L (left) type of encoding\n\t'0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'],\n\t'G': [// The G type of encoding\n\t'0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'],\n\t'R': [// The R (right) type of encoding\n\t'1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'],\n\t'O': [// The O (odd) encoding for UPC-E\n\t'0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'],\n\t'E': [// The E (even) encoding for UPC-E\n\t'0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111']\n};\n\n// Define the EAN-2 structure\nvar EAN2_STRUCTURE = exports.EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG'];\n\n// Define the EAN-5 structure\nvar EAN5_STRUCTURE = exports.EAN5_STRUCTURE = ['GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG'];\n\n// Define the EAN-13 structure\nvar EAN13_STRUCTURE = exports.EAN13_STRUCTURE = ['LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL'];","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!./payroll.vue?vue&type=style&index=1&lang=scss&\"","/**\n * @fileoverview\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n * \n * @author davidshimjs\n * @see http://www.d-project.com/\n * @see http://jeromeetienne.github.com/jquery-qrcode/\n */\nvar QRCode;\n\n(function () {\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of \n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\tfunction QR8bitByte(data) {\n\t\tthis.mode = QRMode.MODE_8BIT_BYTE;\n\t\tthis.data = data;\n\t\tthis.parsedData = [];\n\n\t\t// Added to support UTF-8 Characters\n\t\tfor (var i = 0, l = this.data.length; i < l; i++) {\n\t\t\tvar byteArray = [];\n\t\t\tvar code = this.data.charCodeAt(i);\n\n\t\t\tif (code > 0x10000) {\n\t\t\t\tbyteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n\t\t\t\tbyteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[3] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x800) {\n\t\t\t\tbyteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[2] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x80) {\n\t\t\t\tbyteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n\t\t\t\tbyteArray[1] = 0x80 | (code & 0x3F);\n\t\t\t} else {\n\t\t\t\tbyteArray[0] = code;\n\t\t\t}\n\n\t\t\tthis.parsedData.push(byteArray);\n\t\t}\n\n\t\tthis.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n\t\tif (this.parsedData.length != this.data.length) {\n\t\t\tthis.parsedData.unshift(191);\n\t\t\tthis.parsedData.unshift(187);\n\t\t\tthis.parsedData.unshift(239);\n\t\t}\n\t}\n\n\tQR8bitByte.prototype = {\n\t\tgetLength: function (buffer) {\n\t\t\treturn this.parsedData.length;\n\t\t},\n\t\twrite: function (buffer) {\n\t\t\tfor (var i = 0, l = this.parsedData.length; i < l; i++) {\n\t\t\t\tbuffer.put(this.parsedData[i], 8);\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n\t\tthis.typeNumber = typeNumber;\n\t\tthis.errorCorrectLevel = errorCorrectLevel;\n\t\tthis.modules = null;\n\t\tthis.moduleCount = 0;\n\t\tthis.dataCache = null;\n\t\tthis.dataList = [];\n\t}\n\n\tQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\n\treturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}\n\tif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\n\tthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\n\treturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\n\tfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\n\tfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\n\tthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}\n\tvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\n\tthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\n\trow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error(\"code length overflow. (\"\n\t+buffer.getLengthInBits()\n\t+\">\"\n\t+totalDataCount*8\n\t+\")\");}\n\tif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\n\twhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\n\twhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD1,8);}\n\treturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}\n\tvar totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\n\treturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\n\treturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\n\treturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}\n\tfor(var row=0;row=256){n-=255;}\n\treturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\n\tif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\n\tthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\t\n\tfunction _isSupportCanvas() {\n\t\treturn typeof CanvasRenderingContext2D != \"undefined\";\n\t}\n\t\n\t// android 2.x doesn't support Data-URI spec\n\tfunction _getAndroid() {\n\t\tvar android = false;\n\t\tvar sAgent = navigator.userAgent;\n\t\t\n\t\tif (/android/i.test(sAgent)) { // android\n\t\t\tandroid = true;\n\t\t\tvar aMat = sAgent.toString().match(/android ([0-9]\\.[0-9])/i);\n\t\t\t\n\t\t\tif (aMat && aMat[1]) {\n\t\t\t\tandroid = parseFloat(aMat[1]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn android;\n\t}\n\t\n\tvar svgDrawer = (function() {\n\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\n\t\tDrawing.prototype.draw = function (oQRCode) {\n\t\t\tvar _htOption = this._htOption;\n\t\t\tvar _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\n\t\t\tthis.clear();\n\n\t\t\tfunction makeSVG(tag, attrs) {\n\t\t\t\tvar el = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\t\t\t\tfor (var k in attrs)\n\t\t\t\t\tif (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tvar svg = makeSVG(\"svg\" , {'viewBox': '0 0 ' + String(nCount) + \" \" + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});\n\t\t\tsvg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\t\t\t_el.appendChild(svg);\n\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorLight, \"width\": \"100%\", \"height\": \"100%\"}));\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorDark, \"width\": \"1\", \"height\": \"1\", \"id\": \"template\"}));\n\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tif (oQRCode.isDark(row, col)) {\n\t\t\t\t\t\tvar child = makeSVG(\"use\", {\"x\": String(row), \"y\": String(col)});\n\t\t\t\t\t\tchild.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#template\")\n\t\t\t\t\t\tsvg.appendChild(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tDrawing.prototype.clear = function () {\n\t\t\twhile (this._el.hasChildNodes())\n\t\t\t\tthis._el.removeChild(this._el.lastChild);\n\t\t};\n\t\treturn Drawing;\n\t})();\n\n\tvar useSVG = document.documentElement.tagName.toLowerCase() === \"svg\";\n\n\t// Drawing in DOM by using Table tag\n\tvar Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode\n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n var _htOption = this._htOption;\n var _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\t\t\tvar aHTML = [''];\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\taHTML.push('');\n\t\t\t\t\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\taHTML.push('');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\taHTML.push('');\n\t\t\t}\n\t\t\t\n\t\t\taHTML.push('
');\n\t\t\t_el.innerHTML = aHTML.join('');\n\t\t\t\n\t\t\t// Fix the margin values as real size.\n\t\t\tvar elTable = _el.childNodes[0];\n\t\t\tvar nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;\n\t\t\tvar nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;\n\t\t\t\n\t\t\tif (nLeftMarginTable > 0 && nTopMarginTable > 0) {\n\t\t\t\telTable.style.margin = nTopMarginTable + \"px \" + nLeftMarginTable + \"px\";\t\n\t\t\t}\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._el.innerHTML = '';\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})() : (function () { // Drawing in Canvas\n\t\tfunction _onMakeImage() {\n\t\t\tthis._elImage.src = this._elCanvas.toDataURL(\"image/png\");\n\t\t\tthis._elImage.style.setProperty(\"display\", \"block\", \"important\");\n\t\t\tthis._elCanvas.style.setProperty(\"display\", \"none\", \"important\");\n\t\t}\n\t\t\n\t\t// Android 2.1 bug workaround\n\t\t// http://code.google.com/p/android/issues/detail?id=5141\n\t\tif (this._android && this._android <= 2.1) {\n\t \tvar factor = 1 / window.devicePixelRatio;\n\t var drawImage = CanvasRenderingContext2D.prototype.drawImage; \n\t \tCanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {\n\t \t\tif ((\"nodeName\" in image) && /img/i.test(image.nodeName)) {\n\t\t \tfor (var i = arguments.length - 1; i >= 1; i--) {\n\t\t \targuments[i] = arguments[i] * factor;\n\t\t \t}\n\t \t\t} else if (typeof dw == \"undefined\") {\n\t \t\t\targuments[1] *= factor;\n\t \t\t\targuments[2] *= factor;\n\t \t\t\targuments[3] *= factor;\n\t \t\t\targuments[4] *= factor;\n\t \t\t}\n\t \t\t\n\t \tdrawImage.apply(this, arguments); \n\t \t};\n\t\t}\n\t\t\n\t\t/**\n\t\t * Check whether the user's browser supports Data URI or not\n\t\t * \n\t\t * @private\n\t\t * @param {Function} fSuccess Occurs if it supports Data URI\n\t\t * @param {Function} fFail Occurs if it doesn't support Data URI\n\t\t */\n\t\tfunction _safeSetDataURI(fSuccess, fFail) {\n var self = this;\n self._fFail = fFail;\n self._fSuccess = fSuccess;\n\n // Check it just once\n if (self._bSupportDataURI === null) {\n var el = document.createElement(\"img\");\n var fOnError = function() {\n self._bSupportDataURI = false;\n\n if (self._fFail) {\n self._fFail.call(self);\n }\n };\n var fOnSuccess = function() {\n self._bSupportDataURI = true;\n\n if (self._fSuccess) {\n self._fSuccess.call(self);\n }\n };\n\n el.onabort = fOnError;\n el.onerror = fOnError;\n el.onload = fOnSuccess;\n el.src = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"; // the Image contains 1px data.\n return;\n } else if (self._bSupportDataURI === true && self._fSuccess) {\n self._fSuccess.call(self);\n } else if (self._bSupportDataURI === false && self._fFail) {\n self._fFail.call(self);\n }\n\t\t};\n\t\t\n\t\t/**\n\t\t * Drawing QRCode by using canvas\n\t\t * \n\t\t * @constructor\n\t\t * @param {HTMLElement} el\n\t\t * @param {Object} htOption QRCode Options \n\t\t */\n\t\tvar Drawing = function (el, htOption) {\n \t\tthis._bIsPainted = false;\n \t\tthis._android = _getAndroid();\n\t\t\n\t\t\tthis._htOption = htOption;\n\t\t\tthis._elCanvas = document.createElement(\"canvas\");\n\t\t\tthis._elCanvas.width = htOption.width;\n\t\t\tthis._elCanvas.height = htOption.height;\n\t\t\tel.appendChild(this._elCanvas);\n\t\t\tthis._el = el;\n\t\t\tthis._oContext = this._elCanvas.getContext(\"2d\");\n\t\t\tthis._bIsPainted = false;\n\t\t\tthis._elImage = document.createElement(\"img\");\n\t\t\tthis._elImage.alt = \"Scan me!\";\n\t\t\tthis._elImage.style.setProperty(\"display\", \"none\", \"important\");\n\t\t\tthis._el.appendChild(this._elImage);\n\t\t\tthis._bSupportDataURI = null;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode \n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n var _elImage = this._elImage;\n var _oContext = this._oContext;\n var _htOption = this._htOption;\n \n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = _htOption.width / nCount;\n\t\t\tvar nHeight = _htOption.height / nCount;\n\t\t\tvar nRoundedWidth = Math.round(nWidth);\n\t\t\tvar nRoundedHeight = Math.round(nHeight);\n\n\t\t\t_elImage.style.setProperty(\"display\", \"none\", \"important\");\n\t\t\tthis.clear();\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tvar bIsDark = oQRCode.isDark(row, col);\n\t\t\t\t\tvar nLeft = col * nWidth;\n\t\t\t\t\tvar nTop = row * nHeight;\n\t\t\t\t\t_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\n\t\t\t\t\t_oContext.lineWidth = 1;\n\t\t\t\t\t_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\t\t\t\t\t\n\t\t\t\t\t_oContext.fillRect(nLeft, nTop, nWidth, nHeight);\n\t\t\t\t\t\n\t\t\t\t\t// 안티 앨리어싱 방지 처리\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.floor(nLeft) + 0.5,\n\t\t\t\t\t\tMath.floor(nTop) + 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t\t\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.ceil(nLeft) - 0.5,\n\t\t\t\t\t\tMath.ceil(nTop) - 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis._bIsPainted = true;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Make the image from Canvas if the browser supports Data URI.\n\t\t */\n\t\tDrawing.prototype.makeImage = function () {\n\t\t\tif (this._bIsPainted) {\n\t\t\t\t_safeSetDataURI.call(this, _onMakeImage);\n\t\t\t}\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Return whether the QRCode is painted or not\n\t\t * \n\t\t * @return {Boolean}\n\t\t */\n\t\tDrawing.prototype.isPainted = function () {\n\t\t\treturn this._bIsPainted;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\n\t\t\tthis._bIsPainted = false;\n\t\t};\n\t\t\n\t\t/**\n\t\t * @private\n\t\t * @param {Number} nNumber\n\t\t */\n\t\tDrawing.prototype.round = function (nNumber) {\n\t\t\tif (!nNumber) {\n\t\t\t\treturn nNumber;\n\t\t\t}\n\t\t\t\n\t\t\treturn Math.floor(nNumber * 1000) / 1000;\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})();\n\t\n\t/**\n\t * Get the type by string length\n\t * \n\t * @private\n\t * @param {String} sText\n\t * @param {Number} nCorrectLevel\n\t * @return {Number} type\n\t */\n\tfunction _getTypeNumber(sText, nCorrectLevel) {\t\t\t\n\t\tvar nType = 1;\n\t\tvar length = _getUTF8Length(sText);\n\t\t\n\t\tfor (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n\t\t\tvar nLimit = 0;\n\t\t\t\n\t\t\tswitch (nCorrectLevel) {\n\t\t\t\tcase QRErrorCorrectLevel.L :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][0];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.M :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.Q :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][2];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.H :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][3];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tif (length <= nLimit) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tnType++;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (nType > QRCodeLimitLength.length) {\n\t\t\tthrow new Error(\"Too long data\");\n\t\t}\n\t\t\n\t\treturn nType;\n\t}\n\n\tfunction _getUTF8Length(sText) {\n\t\tvar replacedText = encodeURI(sText).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n\t\treturn replacedText.length + (replacedText.length != sText ? 3 : 0);\n\t}\n\t\n\t/**\n\t * @class QRCode\n\t * @constructor\n\t * @example \n\t * new QRCode(document.getElementById(\"test\"), \"http://jindo.dev.naver.com/collie\");\n\t *\n\t * @example\n\t * var oQRCode = new QRCode(\"test\", {\n\t * text : \"http://naver.com\",\n\t * width : 128,\n\t * height : 128\n\t * });\n\t * \n\t * oQRCode.clear(); // Clear the QRCode.\n\t * oQRCode.makeCode(\"http://map.naver.com\"); // Re-create the QRCode.\n\t *\n\t * @param {HTMLElement|String} el target element or 'id' attribute of element.\n\t * @param {Object|String} vOption\n\t * @param {String} vOption.text QRCode link data\n\t * @param {Number} [vOption.width=256]\n\t * @param {Number} [vOption.height=256]\n\t * @param {String} [vOption.colorDark=\"#000000\"]\n\t * @param {String} [vOption.colorLight=\"#ffffff\"]\n\t * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H] \n\t */\n\tQRCode = function (el, vOption) {\n\t\tthis._htOption = {\n\t\t\twidth : 256, \n\t\t\theight : 256,\n\t\t\ttypeNumber : 4,\n\t\t\tcolorDark : \"#000000\",\n\t\t\tcolorLight : \"#ffffff\",\n\t\t\tcorrectLevel : QRErrorCorrectLevel.H\n\t\t};\n\t\t\n\t\tif (typeof vOption === 'string') {\n\t\t\tvOption\t= {\n\t\t\t\ttext : vOption\n\t\t\t};\n\t\t}\n\t\t\n\t\t// Overwrites options\n\t\tif (vOption) {\n\t\t\tfor (var i in vOption) {\n\t\t\t\tthis._htOption[i] = vOption[i];\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (typeof el == \"string\") {\n\t\t\tel = document.getElementById(el);\n\t\t}\n\n\t\tif (this._htOption.useSVG) {\n\t\t\tDrawing = svgDrawer;\n\t\t}\n\t\t\n\t\tthis._android = _getAndroid();\n\t\tthis._el = el;\n\t\tthis._oQRCode = null;\n\t\tthis._oDrawing = new Drawing(this._el, this._htOption);\n\t\t\n\t\tif (this._htOption.text) {\n\t\t\tthis.makeCode(this._htOption.text);\t\n\t\t}\n\t};\n\t\n\t/**\n\t * Make the QRCode\n\t * \n\t * @param {String} sText link data\n\t */\n\tQRCode.prototype.makeCode = function (sText) {\n\t\tthis._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n\t\tthis._oQRCode.addData(sText);\n\t\tthis._oQRCode.make();\n\t\tthis._el.title = sText;\n\t\tthis._oDrawing.draw(this._oQRCode);\t\t\t\n\t\tthis.makeImage();\n\t};\n\t\n\t/**\n\t * Make the Image from Canvas element\n\t * - It occurs automatically\n\t * - Android below 3 doesn't support Data-URI spec.\n\t * \n\t * @private\n\t */\n\tQRCode.prototype.makeImage = function () {\n\t\tif (typeof this._oDrawing.makeImage == \"function\" && (!this._android || this._android >= 3)) {\n\t\t\tthis._oDrawing.makeImage();\n\t\t}\n\t};\n\t\n\t/**\n\t * Clear the QRCode\n\t */\n\tQRCode.prototype.clear = function () {\n\t\tthis._oDrawing.clear();\n\t};\n\t\n\t/**\n\t * @name QRCode.CorrectLevel\n\t */\n\tQRCode.CorrectLevel = QRErrorCorrectLevel;\n})();\n\nif (module && module.exports) {\n module.exports = QRCode;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar defaults = {\n\twidth: 2,\n\theight: 100,\n\tformat: \"auto\",\n\tdisplayValue: true,\n\tfontOptions: \"\",\n\tfont: \"monospace\",\n\ttext: undefined,\n\ttextAlign: \"center\",\n\ttextPosition: \"bottom\",\n\ttextMargin: 2,\n\tfontSize: 20,\n\tbackground: \"#ffffff\",\n\tlineColor: \"#000000\",\n\tmargin: 10,\n\tmarginTop: undefined,\n\tmarginBottom: undefined,\n\tmarginLeft: undefined,\n\tmarginRight: undefined,\n\tvalid: function valid() {}\n};\n\nexports.default = defaults;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CODE128C = exports.CODE128B = exports.CODE128A = exports.CODE128 = undefined;\n\nvar _CODE128_AUTO = require('./CODE128_AUTO.js');\n\nvar _CODE128_AUTO2 = _interopRequireDefault(_CODE128_AUTO);\n\nvar _CODE128A = require('./CODE128A.js');\n\nvar _CODE128A2 = _interopRequireDefault(_CODE128A);\n\nvar _CODE128B = require('./CODE128B.js');\n\nvar _CODE128B2 = _interopRequireDefault(_CODE128B);\n\nvar _CODE128C = require('./CODE128C.js');\n\nvar _CODE128C2 = _interopRequireDefault(_CODE128C);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.CODE128 = _CODE128_AUTO2.default;\nexports.CODE128A = _CODE128A2.default;\nexports.CODE128B = _CODE128B2.default;\nexports.CODE128C = _CODE128C2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\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 InvalidInputException = function (_Error) {\n\t_inherits(InvalidInputException, _Error);\n\n\tfunction InvalidInputException(symbology, input) {\n\t\t_classCallCheck(this, InvalidInputException);\n\n\t\tvar _this = _possibleConstructorReturn(this, (InvalidInputException.__proto__ || Object.getPrototypeOf(InvalidInputException)).call(this));\n\n\t\t_this.name = \"InvalidInputException\";\n\n\t\t_this.symbology = symbology;\n\t\t_this.input = input;\n\n\t\t_this.message = '\"' + _this.input + '\" is not a valid input for ' + _this.symbology;\n\t\treturn _this;\n\t}\n\n\treturn InvalidInputException;\n}(Error);\n\nvar InvalidElementException = function (_Error2) {\n\t_inherits(InvalidElementException, _Error2);\n\n\tfunction InvalidElementException() {\n\t\t_classCallCheck(this, InvalidElementException);\n\n\t\tvar _this2 = _possibleConstructorReturn(this, (InvalidElementException.__proto__ || Object.getPrototypeOf(InvalidElementException)).call(this));\n\n\t\t_this2.name = \"InvalidElementException\";\n\t\t_this2.message = \"Not supported type to render on\";\n\t\treturn _this2;\n\t}\n\n\treturn InvalidElementException;\n}(Error);\n\nvar NoElementException = function (_Error3) {\n\t_inherits(NoElementException, _Error3);\n\n\tfunction NoElementException() {\n\t\t_classCallCheck(this, NoElementException);\n\n\t\tvar _this3 = _possibleConstructorReturn(this, (NoElementException.__proto__ || Object.getPrototypeOf(NoElementException)).call(this));\n\n\t\t_this3.name = \"NoElementException\";\n\t\t_this3.message = \"No element to render on.\";\n\t\treturn _this3;\n\t}\n\n\treturn NoElementException;\n}(Error);\n\nexports.InvalidInputException = InvalidInputException;\nexports.InvalidElementException = InvalidElementException;\nexports.NoElementException = NoElementException;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./QRCode.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./QRCode.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./QRCode.vue?vue&type=template&id=f25c6c34&\"\nimport script from \"./QRCode.vue?vue&type=script&lang=js&\"\nexport * from \"./QRCode.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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 toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Barcode = function Barcode(data, options) {\n\t_classCallCheck(this, Barcode);\n\n\tthis.data = data;\n\tthis.text = options.text || data;\n\tthis.options = options;\n};\n\nexports.default = Barcode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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\nexports.checksum = checksum;\n\nvar _encoder = require(\"./encoder\");\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n\nvar UPC = function (_Barcode) {\n\t_inherits(UPC, _Barcode);\n\n\tfunction UPC(data, options) {\n\t\t_classCallCheck(this, UPC);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{11}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\tvar _this = _possibleConstructorReturn(this, (UPC.__proto__ || Object.getPrototypeOf(UPC)).call(this, data, options));\n\n\t\t_this.displayValue = options.displayValue;\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tif (options.fontSize > options.width * 10) {\n\t\t\t_this.fontSize = options.width * 10;\n\t\t} else {\n\t\t\t_this.fontSize = options.fontSize;\n\t\t}\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(UPC, [{\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{12}$/) !== -1 && this.data[11] == checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tif (this.options.flat) {\n\t\t\t\treturn this.flatEncoding();\n\t\t\t} else {\n\t\t\t\treturn this.guardedEncoding();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"flatEncoding\",\n\t\tvalue: function flatEncoding() {\n\t\t\tvar result = \"\";\n\n\t\t\tresult += \"101\";\n\t\t\tresult += (0, _encoder2.default)(this.data.substr(0, 6), \"LLLLLL\");\n\t\t\tresult += \"01010\";\n\t\t\tresult += (0, _encoder2.default)(this.data.substr(6, 6), \"RRRRRR\");\n\t\t\tresult += \"101\";\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"guardedEncoding\",\n\t\tvalue: function guardedEncoding() {\n\t\t\tvar result = [];\n\n\t\t\t// Add the first digit\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text.substr(0, 1),\n\t\t\t\t\toptions: { textAlign: \"left\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add the guard bars\n\t\t\tresult.push({\n\t\t\t\tdata: \"101\" + (0, _encoder2.default)(this.data[0], \"L\"),\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the left side\n\t\t\tresult.push({\n\t\t\t\tdata: (0, _encoder2.default)(this.data.substr(1, 5), \"LLLLL\"),\n\t\t\t\ttext: this.text.substr(1, 5),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the middle bits\n\t\t\tresult.push({\n\t\t\t\tdata: \"01010\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the right side\n\t\t\tresult.push({\n\t\t\t\tdata: (0, _encoder2.default)(this.data.substr(6, 5), \"RRRRR\"),\n\t\t\t\ttext: this.text.substr(6, 5),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the end bits\n\t\t\tresult.push({\n\t\t\t\tdata: (0, _encoder2.default)(this.data[11], \"R\") + \"101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the last digit\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text.substr(11, 1),\n\t\t\t\t\toptions: { textAlign: \"right\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}]);\n\n\treturn UPC;\n}(_Barcode3.default);\n\n// Calulate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\n\n\nfunction checksum(number) {\n\tvar result = 0;\n\n\tvar i;\n\tfor (i = 1; i < 11; i += 2) {\n\t\tresult += parseInt(number[i]);\n\t}\n\tfor (i = 0; i < 11; i += 2) {\n\t\tresult += parseInt(number[i]) * 3;\n\t}\n\n\treturn (10 - result % 10) % 10;\n}\n\nexports.default = UPC;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\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 CODE128A = function (_CODE) {\n\t_inherits(CODE128A, _CODE);\n\n\tfunction CODE128A(string, options) {\n\t\t_classCallCheck(this, CODE128A);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128A.__proto__ || Object.getPrototypeOf(CODE128A)).call(this, _constants.A_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128A, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.A_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128A;\n}(_CODE3.default);\n\nexports.default = CODE128A;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: 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 _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\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 CODE128C = function (_CODE) {\n\t_inherits(CODE128C, _CODE);\n\n\tfunction CODE128C(string, options) {\n\t\t_classCallCheck(this, CODE128C);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128C.__proto__ || Object.getPrototypeOf(CODE128C)).call(this, _constants.C_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128C, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.C_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128C;\n}(_CODE3.default);\n\nexports.default = CODE128C;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _SET_BY_CODE;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// constants for internal usage\nvar SET_A = exports.SET_A = 0;\nvar SET_B = exports.SET_B = 1;\nvar SET_C = exports.SET_C = 2;\n\n// Special characters\nvar SHIFT = exports.SHIFT = 98;\nvar START_A = exports.START_A = 103;\nvar START_B = exports.START_B = 104;\nvar START_C = exports.START_C = 105;\nvar MODULO = exports.MODULO = 103;\nvar STOP = exports.STOP = 106;\nvar FNC1 = exports.FNC1 = 207;\n\n// Get set by start code\nvar SET_BY_CODE = exports.SET_BY_CODE = (_SET_BY_CODE = {}, _defineProperty(_SET_BY_CODE, START_A, SET_A), _defineProperty(_SET_BY_CODE, START_B, SET_B), _defineProperty(_SET_BY_CODE, START_C, SET_C), _SET_BY_CODE);\n\n// Get next set by code\nvar SWAP = exports.SWAP = {\n\t101: SET_A,\n\t100: SET_B,\n\t99: SET_C\n};\n\nvar A_START_CHAR = exports.A_START_CHAR = String.fromCharCode(208); // START_A + 105\nvar B_START_CHAR = exports.B_START_CHAR = String.fromCharCode(209); // START_B + 105\nvar C_START_CHAR = exports.C_START_CHAR = String.fromCharCode(210); // START_C + 105\n\n// 128A (Code Set A)\n// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4\nvar A_CHARS = exports.A_CHARS = \"[\\x00-\\x5F\\xC8-\\xCF]\";\n\n// 128B (Code Set B)\n// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4\nvar B_CHARS = exports.B_CHARS = \"[\\x20-\\x7F\\xC8-\\xCF]\";\n\n// 128C (Code Set C)\n// 00–99 (encodes two digits with a single code point) and FNC1\nvar C_CHARS = exports.C_CHARS = \"(\\xCF*[0-9]{2}\\xCF*)\";\n\n// CODE128 includes 107 symbols:\n// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one)\n// Each symbol consist of three black bars (1) and three white spaces (0).\nvar BARS = exports.BARS = [11011001100, 11001101100, 11001100110, 10010011000, 10010001100, 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, 11010011100, 1100011101011];","var JsBarcode = require('jsbarcode');\r\n\r\nvar VueBarcode = {\r\n render: function (createElement) {\r\n return createElement('div', [\r\n createElement(this.elementTag, {\r\n style: { display: this.valid ? undefined : 'none' },\r\n 'class': ['vue-barcode-element']\r\n }),\r\n createElement('div', {\r\n style: { display: this.valid ? 'none' : undefined }\r\n }, this.$slots.default),\r\n ]);\r\n },\r\n props: {\r\n value: [String, Number],\r\n format: [String],\r\n width: [String, Number],\r\n height: [String, Number],\r\n displayValue: {\r\n type: [String, Boolean],\r\n default: true\r\n },\r\n text: [String, Number],\r\n fontOptions : [String],\r\n font: [String],\r\n textAlign: [String],\r\n textPosition: [String],\r\n textMargin: [String, Number],\r\n fontSize: [String, Number],\r\n background: [String],\r\n lineColor: [String],\r\n margin: [String, Number],\r\n marginTop: [String, Number],\r\n marginBottom: [String, Number],\r\n marginLeft: [String, Number],\r\n marginRight: [String, Number],\r\n flat: [Boolean],\r\n ean128: [String, Boolean],\r\n elementTag: {\r\n type: String,\r\n default: 'svg',\r\n validator: function (value) {\r\n return ['canvas', 'svg', 'img'].indexOf(value) !== -1\r\n }\r\n }\r\n },\r\n mounted: function(){\r\n this.$watch('$props', render, { deep: true, immediate: true });\r\n render.call(this);\r\n },\r\n data: function(){\r\n return {valid: true};\r\n }\r\n};\r\n\r\nfunction render(){\r\n var that = this;\r\n\r\n var settings = {\r\n format: this.format,\r\n width: this.width,\r\n height: this.height,\r\n displayValue: this.displayValue,\r\n text: this.text,\r\n fontOptions: this.fontOptions,\r\n font: this.font,\r\n textAlign: this.textAlign,\r\n textPosition: this.textPosition,\r\n textMargin: this.textMargin,\r\n fontSize: this.fontSize,\r\n background: this.background,\r\n lineColor: this.lineColor,\r\n margin: this.margin,\r\n marginTop: this.marginTop,\r\n marginBottom: this.marginBottom,\r\n marginLeft: this.marginLeft,\r\n marginRight: this.marginRight,\r\n flat: this.flat,\r\n ean128: this.ean128,\r\n valid: function (valid) {\r\n that.valid = valid;\r\n },\r\n elementTag: this.elementTag\r\n };\r\n\r\n removeUndefinedProps(settings);\r\n\r\n JsBarcode(this.$el.querySelector('.vue-barcode-element'), String(this.value), settings);\r\n}\r\n\r\nfunction removeUndefinedProps(obj) {\r\n for (var prop in obj) {\r\n if (obj.hasOwnProperty(prop) && obj[prop] === undefined) {\r\n delete obj[prop];\r\n }\r\n }\r\n}\r\n\r\nmodule.exports = VueBarcode;\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.GenericBarcode = 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 _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\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 GenericBarcode = function (_Barcode) {\n\t_inherits(GenericBarcode, _Barcode);\n\n\tfunction GenericBarcode(data, options) {\n\t\t_classCallCheck(this, GenericBarcode);\n\n\t\treturn _possibleConstructorReturn(this, (GenericBarcode.__proto__ || Object.getPrototypeOf(GenericBarcode)).call(this, data, options)); // Sets this.data and this.text\n\t}\n\n\t// Return the corresponding binary numbers for the data provided\n\n\n\t_createClass(GenericBarcode, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\treturn {\n\t\t\t\tdata: \"10101010101010101010101010101010101010101\",\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\n\t\t// Resturn true/false if the string provided is valid for this encoder\n\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn true;\n\t\t}\n\t}]);\n\n\treturn GenericBarcode;\n}(_Barcode3.default);\n\nexports.GenericBarcode = GenericBarcode;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function (old, replaceObj) {\n return _extends({}, old, replaceObj);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _CODE = require('./CODE39/');\n\nvar _CODE2 = require('./CODE128/');\n\nvar _EAN_UPC = require('./EAN_UPC/');\n\nvar _ITF = require('./ITF/');\n\nvar _MSI = require('./MSI/');\n\nvar _pharmacode = require('./pharmacode/');\n\nvar _codabar = require('./codabar');\n\nvar _GenericBarcode = require('./GenericBarcode/');\n\nexports.default = {\n\tCODE39: _CODE.CODE39,\n\tCODE128: _CODE2.CODE128, CODE128A: _CODE2.CODE128A, CODE128B: _CODE2.CODE128B, CODE128C: _CODE2.CODE128C,\n\tEAN13: _EAN_UPC.EAN13, EAN8: _EAN_UPC.EAN8, EAN5: _EAN_UPC.EAN5, EAN2: _EAN_UPC.EAN2, UPC: _EAN_UPC.UPC, UPCE: _EAN_UPC.UPCE,\n\tITF14: _ITF.ITF14,\n\tITF: _ITF.ITF,\n\tMSI: _MSI.MSI, MSI10: _MSI.MSI10, MSI11: _MSI.MSI11, MSI1010: _MSI.MSI1010, MSI1110: _MSI.MSI1110,\n\tpharmacode: _pharmacode.pharmacode,\n\tcodabar: _codabar.codabar,\n\tGenericBarcode: _GenericBarcode.GenericBarcode\n};"],"sourceRoot":""}