{"version":3,"sources":["webpack:///./src/views/User/RecipesManagement.vue?6545","webpack:///./src/views/User/RecipesManagement.vue?7a7b","webpack:///./src/components/vTabbedContent.vue?c615","webpack:///./node_modules/base64-js/index.js","webpack:///./src/models/ListRequest.ts","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./src/components/vPreLoader.vue","webpack:///./src/components/vPreLoader.vue?6222","webpack:///./src/components/vPreLoader.vue?762f","webpack:///./src/components/vPreLoader.vue?e1b4","webpack:///./src/components/vToggleSwitch.vue","webpack:///./src/components/vToggleSwitch.vue?985c","webpack:///./src/components/vToggleSwitch.vue?b29c","webpack:///./src/components/vToggleSwitch.vue?df0d","webpack:///./src/assets/Customer/assets/img/icons/sugar-alcohol-database-icon.png","webpack:///./src/assets/Customer/assets/img/icons/icon-custom.png","webpack:///./src/assets/Customer/assets/img/logoForPrintRecipe.png","webpack:///./src/components/vExportLabel.vue?61ee","webpack:///./src/components/vSelectFx.vue","webpack:///./src/components/vSelectFx.vue?789c","webpack:///./src/components/vSelectFx.vue?b373","webpack:///./src/components/vSelectFx.vue?1512","webpack:///./src/assets/Customer/assets/img/icons/icon-custom-recipe.png","webpack:///./src/components/vIngredientsDisplayNames.vue?fb3c","webpack:///./src/utils/API/GeneralRepository.ts","webpack:///./src/utils/API/DishesRepository.ts","webpack:///./src/views/User/RecipesManagement.vue?550b","webpack:///./src/components/vToggleSwitch.vue?fa1a","webpack:///./src/components/vPreLoader.vue?aabe","webpack:///./src/views/User/RecipesManagement.vue","webpack:///./src/components/vIconWithTooltip.vue","webpack:///./src/components/vIconWithTooltip.vue?fa34","webpack:///./src/components/vIconWithTooltip.vue?2721","webpack:///./src/components/vIconWithTooltip.vue?0c73","webpack:///./src/views/User/RecipesManagement.vue?1241","webpack:///./src/views/User/RecipesManagement.vue?5949","webpack:///./src/views/User/RecipesManagement.vue?7025","webpack:///./src/assets/Customer/assets/img/icons/icon-usa-flag.png","webpack:///./src/assets/Customer/assets/img/icons/icon-canada-flag.png","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./src/assets/Customer/assets/img/icons/icon-uk-flag.png","webpack:///./src/components/vSelect.vue","webpack:///src/components/vSelect.vue","webpack:///./src/components/vSelect.vue?01b1","webpack:///./src/components/vSelect.vue?ce39","webpack:///./src/components/vNutritionLabel.vue","webpack:///./src/components/vNutritionLabel.vue?1f5f","webpack:///./src/components/vNutritionLabel.vue?3158","webpack:///./src/components/vNutritionLabel.vue?df5f","webpack:///./src/components/vSelect.vue?89bf","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vue2-editor/dist/vue2-editor.core.js","webpack:///./src/components/vNutritionLabel.vue?3eee","webpack:///./src/components/vExportLabel.vue","webpack:///./src/components/vIngredientsDisplayNames.vue","webpack:///./src/components/vIngredientsDisplayNames.vue?9de9","webpack:///./src/models/NutritionLabels/DietaryTypes.ts","webpack:///./src/components/vIngredientsDisplayNames.vue?d4ea","webpack:///./src/components/vIngredientsDisplayNames.vue?8469","webpack:///./src/utils/API/NutritionLabelsRepository.ts","webpack:///./src/components/vUSContainsPercentOfForm.vue","webpack:///./src/components/vUSContainsPercentOfForm.vue?cc35","webpack:///./src/components/vUSContainsPercentOfForm.vue?267d","webpack:///./src/components/vUSContainsPercentOfForm.vue?2eac","webpack:///./src/components/vExportLabel.vue?b021","webpack:///./src/components/vExportLabel.vue?3ca6","webpack:///./src/components/vExportLabel.vue?f953","webpack:///./src/components/vExportLabel.vue?aa77","webpack:///./src/components/vTabbedContent.vue","webpack:///./src/components/vTabbedContent.vue?223f","webpack:///./src/components/vTabbedContent.vue?b832","webpack:///./src/components/vTabbedContent.vue?5ef6","webpack:///./node_modules/lodash.debounce/index.js"],"names":["exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","OrderType","ListRequest","_createClass","listRequestOptions","restaurantId","_classCallCheck","this","queryOptions","toString","module","isArray","call","render","_vm","_self","_c","_setupProxy","_m","staticRenderFns","staticClass","vPreLoader","_Vue","_callSuper","arguments","_inherits","Vue","__decorate","Component","component","attrs","domProps","value","on","changeHandler","vToggleSwitch","key","$emit","Prop","ref","$event","handleInput","target","_t","_l","options","option","_v","_s","content","vSelectFx","val","oldVal","_this","JSON","stringify","nextTick","parentContainer","element","parentNode","appendChild","removeChild","selectFxInstance","SelectFx","_this2","$refs","$","window","get","Watch","resource","listCountries","Repository","post","concat","page","pageSize","withCredentials","listIndustries","listLanguages","listDishes","listRequest","getDishDetails","id","dishId","createDish","updateDish","calculate","dishCalculate","saveDishLabel","data","getDishLabel","deleteDishes","$store","getters","getUserDetails","staticStyle","require","$route","name","translations","recipesManagementState","recipe","recipeCategory","categories","selectCategory","class","errors","has","directives","rawName","expression","disableButtonsBeforeSave","composing","$set","required","regex","servingCount","setRecipeServingCount","description","toggleRecipeInst","showRecipeInst","onEditorTextChange","model","instructions","callback","$$v","openSearchIngredientsModal","recipeSaved","preventDefault","toggleScaleRecipeModal","apply","toggleMoistureLossModal","toggleAddedSugarModal","toggleServingModal","loadingRecipe","_e","ingredients","childRecipes","ingr","ingredient","quantity","calculateNutritions","isAddedSugar","_i","$$a","$$el","$$c","checked","$$i","slice","foodCode","measurement","allMeasurements","selectMeasurement","openMenu","closeMenu","nutrientSource","canadaFlag","usaFlag","ukFlag","sugarAlcoholsFlag","customIngrFlag","nutrientSourceName","brand","removeIngredient","customRecipeFlag","removeSubRecipe","nutritionAnalysis","volume","weight","servingUnitOfMeasurement","Math","round","openCalculationMethodModal","cautionaryMessage","dailyValueCalculationMethod","showRecipeCostBtn","submit","disabled","printRecipe","showExportLabelModal","toUpperCase","showCategoryModal","cancelAddCategory","addCategory","showIngredientModal","closeSearchIngredientsModal","searchIngredients","includeCustomIngredients","shouldShowNutrientSource","nutrientsListForSearch","selectAllUSAnutrients","allUSDAnutrientDatabases","showSugarAlcoholDatabase","selectedOption","searchOptions","selectOption","ingredientSearchString","checkForSpelling","hasAutoCorrection","autoCorrectionHtml","onCorrectSerachTerm","searchResults","recipes","customIngredients","totalResults","searchLoading","openAddIngredientModal","selectMeasurementInAddIngredient","find","addIngredient","energy","fat","protein","carbohydrate","sodium","filterSubRecipes","r","addSubRecipe","noResult","onDoneBtn","addCustomIngredientModalTitle","showAddIngredientModal","closeAddIngredientModal","newCustomIngredient","submitNewIngredient","showScaleRecipeModal","scaleRecipe","scaledRecipeServingSize","recipeCopy","showMoistureLossModal","yieldAdjustmentTabs","slot","rawWeight","invalid","invalidMoistureLossValue","moistureLossValue","modifiers","$forceUpdate","_n","moistureLossSelectedMeasurement","moistureLossMeasurementOptions","selectMeasurementForMoistureLoss","selectedCookingMethod","cookingMethods","selectCookingMethod","getPrimaryFoodGroupName","foodGroupClasses","selectPrimaryFoodGroup","foodGroupClassification","subClass","relatedFoodGroupClassifications","selectSecondaryFoodGroup","updateMoistureLoss","showAddedSugarModal","saveAdjustments","adjustedAddedSugarsValue","undefined","unadjustedAddedSugarPerServing","resetAdjustments","showServingSizeModal","resetState","recipeServingType","_q","servingQuantityInUnitOfMeasurement","setRecipeServingWeight","selectedServingWeightMeasurement","servingSizeMeasurementOptions","selectServingWeighMeasurement","updateServingSize","closeServingSizeModal","desanitizeString","parseFloat","servings","toFixed","servingWeight","printableInstructions","calculationMethodModal","isOpen","closeCalculationMethodModal","selectedCalculationMethod","selectedDailyValueCalculation","updateCaloriesCalculationMethod","tooltipPlacement","iClass","style","iStyle","tooltipContent","vIconWithTooltip","_regeneratorRuntime","e","t","Object","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","err","_createForOfIteratorHelper","allowArrayLike","it","_unsupportedIterableToArray","F","normalCompletion","didErr","step","_e2","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","from","test","iter","arr2","instance","Constructor","_defineProperties","props","descriptor","protoProps","staticProps","_toPrimitive","toPrimitive","String","Number","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","bind","superClass","_setPrototypeOf","_","debounce","RecipesManagement","cookingMethodId","lossAmount","lossType","rawWeightPerServing","weightPerServing","yieldFactor","dbIngredients","numberOfSearchClicks","previousSearchTerm","autoCorrection","createDefaultIngredient","recipeWeightLossValue","recipeWeightLossSelectedMeasurement","recipeWeightLossMeasurementOptions","invalidRecipeWeightLossValue","subFoodGroupClasses","foodGroupClassesMatrix","recipeId","allIngredientsHaveLiquidVolumes","nutrientCountryNames","nutrientSources","includes","NutrientSourceEnum","US","Branded","Foundation","Fndds","localizationState","accountState","userDetails","addOns","map","x","addOn","AddOnType","SugarAlcohols","tabsArray","filtered","sub","IngredientMeasurementEnum","Gram","Milliliter","Ounce","FluidOunce","hasVolumeUnitOfMeasurement","foodGroup","_this3","RecipesRepository","getRecipeDetails","parseInt","params","response","result","mapNutritions","getSelectedServingWeight","transformIntoSelectObject","childRecipe","$router","setSubFoodGroupsMatrix","setRecipeCookingMethodAndLoss","checkForLiquidVolumes","_this4","listRecipeCategories","category","_this5","$snotify","createRecipeCategory","body","message","errorMessages","userVisibleMessage","timeout","closeOnClick","_this6","serachList","trim","split","IngredientsRepository","getAutoCorrectSerchTerm","term","word","isCorrected","searchTerm","moistureLossTable","document","getElementById","recipeIngredientsTable","searchIngredientsTable","classList","add","remove","createIngredientSearchFailure","searchResultsCount","_this7","sendIngredientSearchFailure","isTrial","showZendesk","maxResultsCount","handleIngredientResponse","searchIngredientsByFoodCode","_this8","nutrients","_this9","newIngredient","weightInGrams","measurements","unitOfMeasurement","categoryDensityId","quantityInUnitOfMeasurement","subIngredients","createRestaurantIngredient","createInstanceOfIngredient","_this10","getIngredientDetails","fullIngredient","foodGroupClassificationId","_this11","fullRecipe","zE","cookingMethod","_this12","classificationName","includedInMatrix","subClassifications","listFoodGroupSubClasses","PrimaryClass","foodGroupSubClasses","subClassification","_this13","measurementObj","m","classificationsArray","_step","_iterator","_loop","ingredientClass","ingredientSubclass","some","isScaledRecipeServingSizeValid","scalingCoefficient","_this14","checkIfMoustureLossValueIsValid","Ingredients","RecipeComponentId","FoodGroupClassificationId","Subrecipes","CookingMethodId","LossAmount","abs","LossType","RecipeId","updateRecipeFoodClassifications","loadRecipeDetails","isValid","selectedOptionForMoistureLoss","_this15","updateRecipeServingSize","splice","subRecipe","el","_this16","childRecipeIds","child","ingredientMeasurementId","calcRecipe","caloriesCalculationMethod","_this17","redirectLink","redirectParams","$validator","validateAll","_ref","_callee","_context","updateRecipe","saveNewRecipe","_x","_this18","console","log","recipeCategoryId","udateRecipe","_this19","createRecipe","print","RecipeCost","w","zendeskChatStatus","chatStatus","_this20","iframes","match","src","replace","setTimeout","Pages","init","getElementsByTagName","_this21","dispatch","TRANSLATIONS_FETCH","collections","title","fetchCategories","SubscriptionRepository","listCurrentSubscriptionNutrientSources","nutrient","listCookingMethods","listFoodGroupClasses","index","components","vBreadcrumbs","vSelect","VueEditor","vNutritionLabel","vModal","vIngredientManagement","vExportLabel","vTabbedContent","computed","mapState","state","LocalizationModule","AccountModule","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","pow","write","rt","floor","LN2","root","factory","modules","installedModules","__webpack_require__","moduleId","getter","__esModule","object","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","query","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","b","__","ParchmentError","_super","attributes","classes","tags","types","input","BlotClass","node","Node","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","tagName","TYPE","Definitions","Definition","blotName","attrName","keyName","className","tagNames","tag","diff","equal","extend","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","text","newOp","retain","lastOp","unshift","chop","predicate","partition","passed","failed","reduce","initial","changeLength","elem","delete","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","min","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","nextType","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_get","receiver","Function","desc","parent","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","NEWLINE_LENGTH","_Parchment$Embed","domNode","formats","attribute","BLOCK_ATTRIBUTE","format","def","endsWith","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","shift","children","tail","head","context","force","statics","defaultChild","allowedChildren","overload","expandConfig","_slicedToArray","sliceIterator","_arr","_d","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","container","html","innerHTML","__quill","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","events","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","source","mutations","range","lastRange","modify","update","contents","convert","setContents","clear","placeholder","readOnly","disable","limit","level","imports","path","overwrite","warn","startsWith","refNode","createElement","setRange","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_overload3","_overload4","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","insertEmbed","_overload11","_overload12","insertText","contains","off","once","dangerouslyPasteHTML","_overload13","_overload14","removeFormat","deleted","applied","applyDelta","ret","_overload15","_overload16","Range","USER","userConfig","DEFAULTS","import","themeConfig","config","moduleNames","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","max","_map4","version","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","order","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","addEventListener","_len","_key","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","event","_len2","_key2","handler","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","objEquiv","isUndefinedOrNull","isBuffer","ka","kb","sort","attributeBit","ATTRIBUTE","item","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","lastIndexOf","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","merged","image","list","bullet","Selection","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","toLowerCase","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","Set","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","global","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","binding","normalize","which","keyCode","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","select","buildPicker","display","label","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","styles","attr","ClassAttributor","matches","camelize","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","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","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","click","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","append","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","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","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","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","j","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","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","nodeType","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","group","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","clearTimeout","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","noLabel","multiple","filled","hasValue","clearable","filterable","vals","searchQuery","searchable","noDrop","showError","errorMessage","created","isFirefox","addClass","nutrition","utilsRound","calories","fatDv","saturatedFat","transFat","saturatedAndTransDv","polyunsaturatedFats","omega6","omega3","monounsaturatedFats","fibre","sugars","fibreDv","sugarsDv","cholesterol","sodiumDv","potassium","potassiumDv","calcium","calciumDv","iron","ironDv","vitaminD","vitaminDDv","sendToPrint","number","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","encoding","string","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","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","defaultToolbar","color","background","oldApi","customModules","methods","registerCustomModules","customModule","alias","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","mergeDeep","isObject","targetValue","sourceValue","assign","HorizontalRule","MarkdownShortcuts","ignoreTags","pattern","action","exec","lineStart","annotatedText","matchedText","startIndex","strike","_pattern","search","hrefLink","hrefText","_oldContents","_source","onSpace","onEnter","_this$quill$getLine","_this$quill$getLine2","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_this$quill$getLine3","_this$quill$getLine4","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","script","mixins","editorToolbar","editorOptions","useCustomImageHandler","useMarkdownShortcuts","watch","status","mounted","registerPrototypes","initializeEditor","beforeDestroy","setupQuillEditor","checkForCustomImageHandler","handleInitialContent","registerEditorEventListeners","editorConfig","setModules","prepareEditorConfig","quillContainer","getHTML","getWordCount","handleTextChange","handleSelectionChange","listenForEditorEvent","oldContents","editorContent","handleImageRemoved","currrentContents","deletedContents","operations","operation","setupCustomImageHandler","getModule","customImageHandler","emitImageInfo","resetUploader","uploader","file","cursorLocation","normalizeComponent","template","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","existing","beforeCreate","normalizeComponent_1","__vue_script__","__vue_render__","_h","$createElement","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","install","installed","VPlugin","GlobalVue","use","exportLabelState","nutritionCountries","fetchNutritionLabels","nutritionCountry","nutritionLabels","fetchFreeTextFields","scopedSlots","_u","nutritionLabel","freeTextPlaceholders","displayText","debouncedFetchPreview","labelType","includeIngredients","fetchPreview","headerLabelTranslations","ingredientsPrimaryLanguageTranslation","ingredientsSecondaryLanguageTranslation","ingredientAndSubRecipeDisplays","containsLessThanPercentOf","ingredientsForDishDisplay","toggleDietaryLabels","active","showDietaryLabels","dietaryTypes","isIE","isChecked","toggleDietary","toggleCautionaryMessages","showCautionaryMessages","cautionaryMessagePrimaryLanguageTranslation","cautionaryMessageSecondaryLanguageTranslation","primaryLanguageAdditionalContent","secondaryLanguageAdditionalContent","toggleAllergies","showAllergies","containsPrimaryLanguageTranslation","containsSecondaryLanguageTranslation","allergens","allergen","updateAllergenStatus","primaryLanguageName","secondaryLanguageName","mayContainPrimaryLanguageTranslation","mayContainSecondaryLanguageTranslation","mayContain","loading","primaryLanguage","labelPreview","accountStoreState","nutritionLabelsLimit","labelsLimit","downloadedLabels","showLearnMoreModal","remainingLabelDownloads","nextResetDate","toLocaleDateString","saveRecipeLabel","disableDownload","downloadLabel","sortedIngredientDisplays","ingredientId","activeIngredientId","isBranded","setActiveIngredient","displayTextInPrimaryLanguage","country","displayTextInSecondaryLanguage","isAllergen","vIngredientsDisplayNames","prevValue","nextValue","ingredientDisplays","firstDisplay","secondDisplay","DietaryTypes","downloadNutritionLabelForDish","headers","accept","responseType","downloadNutritionLabelForRecipe","listNutritionCountries","listNutritionLabels","nutritionCountryId","previewNutritionLabelForDish","previewNutritionLabelForRecipe","getFreeTextPlaceholdersForNutritionLabel","nutritionLabelId","primaryLanguageContainsLessThanText","secondaryLanguageContainsLessThanText","acceptableThresholds","thresholdPercent","primaryLanguagePercentOfText","secondaryLanguagePercentOfText","vUSContainsPercentOfForm","Model","secondaryLanguage","savedDisplays","savedNutritionLabelId","savedSubRecipeDisplays","textPlaceholdersOfSavedLabel","languages","dietary","displays","savedDisplay","ingrWeight","subRecipeWeight","firstLevelSubRecipe","subRecipeIngredients","secondLevelSubRecipe","thirdLevelChildRecipe","firstIngredient","secondIngredient","subRecipeDisplays","displayIngr","dish","rec","recWeight","dishRecipeCount","ingredientDishDisplays","naturalWidth","naturalHeight","NutritionLabelRepository","checkedAllergens","ingredientsIncluded","headerTranslations","additionalContent","containsLessThanPercentOfText","nutritionLabelDownloadFileFormat","labelWidth","labelHeight","ingredientDisplayModels","filename","fileContentType","blob","Blob","msSaveBlob","msSaveOrOpenBlob","URL","createObjectURL","initMouseEvent","UserRepository","fetchUserInfo","commit","SET_USER_DETAILS","logged","enc","TextDecoder","parse","decode","additionalContents","subRecipeDisplayModels","success","DishesRepository","subRecipeDishDisplays","getRecipeLabel","fillLabelData","labelData","NutritionLabelsRepository","freeTextPlaceholder","dt","isValueProperty","isBilingual","labelsCount","fetchRecipeLabel","fetchDishLabel","GeneralRepository","is_ie","filteredTabs","tab","changeTab","tabs","tabId","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectProto","objectToString","nativeMax","nativeMin","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","flush","debounced","isInvoking","toNumber","isObjectLike","isSymbol","isBinary"],"mappings":"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","file":"js/chunk-9b2e627e.309785fc.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipesManagement.vue?vue&type=style&index=2&id=781dc617&prod&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipesManagement.vue?vue&type=style&index=1&id=781dc617&prod&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vTabbedContent.vue?vue&type=style&index=0&id=66af4b70&prod&scoped=true&lang=css\"","'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","\r\nexport enum OrderType {\r\n Asc, Desc,\r\n}\r\n\r\nexport interface Ordering {\r\n field: string;\r\n orderType: OrderType;\r\n}\r\n\r\nexport interface Filter {\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface ListRequestOptions {\r\n page?: number;\r\n pageSize?: number;\r\n filters?: Filter[];\r\n orders?: Ordering[];\r\n searchTerm?: string;\r\n\r\n}\r\n\r\nexport default class ListRequest {\r\n public queryOptions: ListRequestOptions;\r\n public restaurantId?: number;\r\n\r\n constructor(listRequestOptions: ListRequestOptions, restaurantId?: number) {\r\n this.queryOptions = listRequestOptions;\r\n this.restaurantId = restaurantId;\r\n }\r\n}\r\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"lds-css ng-scope\"},[_c('div',{staticClass:\"lds-dual-ring\"},[_c('div')])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class vPreLoader extends Vue {}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vPreLoader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vPreLoader.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vPreLoader.vue?vue&type=template&id=3032049b&scoped=true\"\nimport script from \"./vPreLoader.vue?vue&type=script&lang=ts\"\nexport * from \"./vPreLoader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vPreLoader.vue?vue&type=style&index=0&id=3032049b&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3032049b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('label',{staticClass:\"switch\"},[_c('input',{attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.value},on:{\"input\":_vm.changeHandler}}),_c('span',{staticClass:\"slider round\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class vToggleSwitch extends Vue {\r\n\r\n @Prop() value!: boolean;\r\n\r\n changeHandler() {\r\n this.$emit('toggled', !this.value);\r\n }\r\n\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vToggleSwitch.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vToggleSwitch.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vToggleSwitch.vue?vue&type=template&id=ccc516d4&scoped=true\"\nimport script from \"./vToggleSwitch.vue?vue&type=script&lang=ts\"\nexport * from \"./vToggleSwitch.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vToggleSwitch.vue?vue&type=style&index=0&id=ccc516d4&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ccc516d4\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMi1jMDAwIDc5LjFiNjVhNzliNCwgMjAyMi8wNi8xMy0yMjowMTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODc4QjZDN0MyRUJFMTFFRDhGM0REMTNEQTJDQUZCMDQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODc4QjZDN0IyRUJFMTFFRDhGM0REMTNEQTJDQUZCMDQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNThDQzZCQzM1MzExRThBRUY2RkI2RkQ0RTM4NUUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdCNThDQzZDQzM1MzExRThBRUY2RkI2RkQ0RTM4NUUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YBjyqwAABC5JREFUeNrEl1lME1EUhk+h+0ipQqUqbQGlbKZaE9FIFBcSiZqIUVHeiMQXYxR91MQlwZj44JLoi4aoDxpFjbvBXYhoxKWAIptaKCpIQSi1Q1s251zo2OlGlRJP0qQzc+//3XuWO2d4+xZdhv9h/GAG1WRcF0xpj98loWWbxLZIrdAupfgDIh4+G+A7hp1i2maX9jb1UZZLP5XGY7qKdf1jafIC7bhufqlo8g/1OXmnaoOYjghqkXapdaAnuvVqd4wpP+V1tsPfuDB/D4wpL1dr6tO7labUzcFC0XAszsG5qPFX4NbEdwdUn/W3pdYpkn+NIc5FDZP27b6gwN9mVhXFfp67n+8U88adQIyG6pP+4LeE6qKAYJP2TY6yJW0vbygsZNmLWsqW1L2o7RP8SVcmjm5LuBg+IAh56YQPCgC1keEFntSjODuemAYTc4ZxjlPHWKdaQ9YG94H6jRqYl50A6mTFn3oua4by83VgbrB6CS/akggrC/Rg6aTh6No7PuFMWa5HFtY52XFUe/xu95JBkZzCBdBc0wH7M0rI70jOTZDHULD1ZBYokiK8RFMyYqHD1AOR0VJIXjnNb6khi3W1mJbleoqY6s3w+EQte89mdsCtI29AJBWALlvNEcSFoGcMD41kx2mZqgB1PsLij15o3R9GRlPgoJ1ek9DFuHtPcy2kqaIdps2aDEnzZ/gFi0ZZZMfCPopyf9hQ+RWmquVQULwMVuxMGzNxkhfOIB7ChdWWtRKvYLh8gkdZZMeuA99ldw9VgZgSgi4zjrhwSW4acSEu6NnpOuJ2l2kWRJFF3i82kOv6+21g2UZD/NwYeAFN3ofKKMvvSXFtTyVxa3lJLVTeayRJk75KCzsvruIk1+wsFROWfqi+beJ4TJOiAEohCvx26hf2DQmckjGPSHQ77r7x7Xe4sOM5ubf75hqyKF+Gi3ZPUDSGNcywwoirnRKbjbmYNBYYReYsjwe5QsrWOkJvHH8FhistnLG4IIy9J9gxwhpxtV1iZYOBNXiwItdvclg6bdBjpsn/1MUqEntPKFr1EyOJPeYAByztbWRjbKcsbDeAyYEZujRvtldG43UMI/bgVPVIYjFxRIDPrqXUxOYAt1HoLWGzuktpPBrVNrPIdXoVFzwlEHQrxtRlGNsz2x+RskGPYNm4AL5qHjeQlB4Ld6GK7U5+ybqOcVqfdvXHS0znsGkiGzyGcRm7E045/ZKb8+mIn/aJgtIR3XZkeL0WZ9Vk2ruUzXmD4f0hh6ImE848ZPjsQFRN82780NQdHg4bChkUtVATtQP2XNO/6Pa0xX04HIqdowZqoWZQXSYO/J7wfh3GZTwxRQ1f0IBnNbqmJfmVHLPdIbEOBgvEsTgH53q6N+gvCfbQ1z8WUr1RhRJbJNPcyxIDfcLYZF3HkwwrnOP6hJlI+y3AAOc42O40Vsb5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0I1OENDNkNDMzUzMTFFOEFFRjZGQjZGRDRFMzg1RTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0I1OENDNkJDMzUzMTFFOEFFRjZGQjZGRDRFMzg1RTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI2Rjk4MzE4ODg0QzExRTNCRkY2QUQ4RDYwQ0M1NUE2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI2Rjk4MzE5ODg0QzExRTNCRkY2QUQ4RDYwQ0M1NUE2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+m8TXXAAAA2JJREFUeNrEV19IWlEY/zRdawuXGy2a0chq/XmYo5YltD2VD+2hlVQyqIeegl5WD6NYEIRB7GVRDFbPsWLBYAQFWj3FMsgwYxSzP2hQUY1EkrQsd87ZUa55zzWrre/y897L/e753e//URQIBOAmRIJ/RCKRoFKZoQzraREqEEoQshFk9LEbwY5gRhhHME52TPqF1sPGisgPgxgRStGpGeEdQuoFjdlG+IDwCX3ASczEiPQZOn1ByLukN5cR3iByKx+xmGFpDXVd3hXCiN8107UiJMJiqjiCIL6mPDpD0CPLR5mupu7FlsYLrZQsS4aM5AyQSqTgPfbC2u4auDwuoVd8OCmDbg8jpom0KOTe0txS0Gv0kPMoJzxm6FhYX4CBqQHY2N0QirkKJxzmlHAeNLNI48Rx0PqqFbRPteR+x7UDNqcNPF4PyBPloM5SQ6GyEPrT+6HzaydYNiysmGOO3lCMy7vL8Qc4WSXTVNYEumId+Pw+6JvoA5PNRKwMSuLtRGh/3Q7qTDUceg+h8XMjHHgOWKWWbnpv8gcTSMsiVT5UQnVxNbnu+d4DRpsxjBQLJjN8M8Cee498RK2mluXuVMoVytwKlmbl80oQoWNpcwlmVmaY2XN0fATDP4bBsm6BrYMtoUSrCLVM2gZ5pSiziJxnf81GrZsxyxhBFCnhWpzNpxEvjSelg2Vla+W65kM2l1jGp5F0Jyl0HaVOYxEZROtOZ4GzsJK6ThFzRluE4JIIzmuu9VcUN5fYzqfhP/WDY99BrnMVuVFXlN+VQ8PLBlA9Vgl5yM4lNrO05tfnyVnzRBOVGLfU+hf10FXTBWIRM4pmLvE4S2vCOkEaRr4inyzMkoRbCVCnqSPX0z+n4eT0hKU6ziU20nYWIc59J4zN/63Ntso20q9xQzk/rbr13ZByL4V0saGZIaHdiTFsHqPp9Bbdf+TdmMVJwFBrIIOAvO3ahkXHIulWCrkCCpQFIBFLSC/vGOkAq8PKIm5B06k3prGIY1alrgKdWhdqKtyxOGefg8GpQdj8vXmhsRjzRgC7Oe1BGijuK0jmYqtXd1bBfeS+3Ebgf299IhanCnr6lVcV33nS852Lj7yExuWyskzdOyrUMvnIcTxUOBNZpSZQMi00kZjpLfhP4p//hbkJ+SPAAOVze7xvEd48AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"img/logoForPrintRecipe.4497bcf8.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vExportLabel.vue?vue&type=style&index=1&id=0499eea7&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('select',{ref:`selectFx`,staticClass:\"cs-select cs-skin-slide\",on:{\"change\":function($event){return _vm.handleInput($event.target.value)}}},[_vm._t(\"default\"),_vm._l((_vm.options),function(option){return _c('option',{key:option.value,domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.content))])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class vSelectFx extends Vue {\r\n element: any;\r\n SelectFx: any;\r\n selectFxInstance: any;\r\n\r\n @Prop() value: any;\r\n @Prop() options: any;\r\n\r\n @Watch(\"options\")\r\n onOptionsChanged(val: any, oldVal: any) {\r\n if (JSON.stringify(val) !== JSON.stringify(oldVal)) {\r\n Vue.nextTick(() => {\r\n let parentContainer = this.element.parentNode;\r\n parentContainer.parentNode.appendChild(this.element);\r\n parentContainer.parentNode.removeChild(parentContainer);\r\n\r\n this.selectFxInstance = new this.SelectFx(this.element);\r\n });\r\n }\r\n }\r\n\r\n handleInput(val: any) {\r\n this.$emit(\"change\", val);\r\n }\r\n\r\n mounted() {\r\n Vue.nextTick(() => {\r\n this.element = this.$refs[\"selectFx\"];\r\n this.SelectFx = ($(window)).get(0).SelectFx;\r\n\r\n this.selectFxInstance = new this.SelectFx(this.element);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vSelectFx.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vSelectFx.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vSelectFx.vue?vue&type=template&id=75bd56ae\"\nimport script from \"./vSelectFx.vue?vue&type=script&lang=ts\"\nexport * from \"./vSelectFx.vue?vue&type=script&lang=ts\"\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","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAANtQTFRFAAAAAG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/AG7/QJL/gLf/Zqj/O5D/FHn/AG7/AG7/////pcz/S5n/AG7/ksH/udf/7fX/I4L/AG7/NYz/rtH/sdP/3ez/pMv/stP/6/T/ca7/WaH/1Of/utj/JYP/bq3/v9v/5fD/HX7/Kob/qs//G33/6fL/hrr/M4v/8vj/mcX/jL7/IYH/CnT/+/3/kMD/grj/C3T/vKSKzAAAAEl0Uk5TAARKlMzx/wUXh+vmcBV17dYwHNT4VbT9l/7//////yP2////mP/////w/////////////////////////////////////////+YP+rUAAAEcSURBVHicjZNnW8QgDMdpCzm1qD3teUr1NO69te69vv8nEiijUH30/4KR30NIQiDkn0rSjDIARrM0iVlvbHwCnHLeC+jk1DQEKvotOjMLscqBp3MdCjB0fH5B7UWltLg0sueN/+UVvRVotLpm7m/iWweL5emNTcSt7cbCdb47Dut5F3HP5KfyTyHEsI8HxpRKnMW4sgvIJKYxPsQjY6ISsxgf44kxMYnBYyHEaXWG5xfWFuJGl750ofO6rq/keG0p64Z2c4u1xfSHxO7usWol1inLA+KjL0uSR3j0hM96oYtKeIThBfFVzbzpsyLCb+/4Ae5BSb8MMXwifrl2IGQwhI58M0lexrTVisp/EdKgkVV8PPcw/gZ/faLf9A1NcSOIABAYkgAAAABJRU5ErkJggg==\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vIngredientsDisplayNames.vue?vue&type=style&index=0&id=5026cfbd&prod&scoped=true&lang=css\"","import Repository from './Repository';\r\nimport ListRequest from '@/models/ListRequest';\r\n\r\n\r\nconst resource = '/general';\r\n\r\nexport default {\r\n listCountries() {\r\n return Repository.post(`${resource}/ListCountries`, new ListRequest({page: 1, pageSize: 9999}), {withCredentials: true});\r\n },\r\n listIndustries() {\r\n return Repository.post(`${resource}/ListIndustries`, new ListRequest({page: 1, pageSize: 9999}), {withCredentials: true});\r\n },\r\n listLanguages() {\r\n return Repository.get(`${resource}/ListLanguages`, {withCredentials: true});\r\n },\r\n};\r\n","import Repository from './Repository';\r\nimport ListRequest from '@/models/ListRequest';\r\nimport { CreateDish } from '@/models/Dishes/CreateDish';\r\nimport { UpdateDish } from '@/models/Dishes/UpdateDish';\r\nimport { DishCalculate } from '@/models/Dishes/DishCalculate';\r\n\r\n\r\nconst resource = '/dishes';\r\n\r\nexport default {\r\n listDishes(listRequest: ListRequest) {\r\n return Repository.post(`${resource}/listDishes`, listRequest, { withCredentials: true });\r\n },\r\n getDishDetails(id: number) {\r\n return Repository.post(`${resource}/GetDishDetails`, { dishId: id }, { withCredentials: true });\r\n },\r\n createDish(createDish: CreateDish) {\r\n return Repository.post(`${resource}/CreateDish`, createDish, { withCredentials: true });\r\n },\r\n // deleteDishes(dishIds: number[]) {\r\n // return Repository.post(`${resource}/DeleteDishes`, { dishIds }, { withCredentials: true });\r\n // },\r\n updateDish(updateDish: UpdateDish) {\r\n return Repository.post(`${resource}/UpdateDish`, updateDish, { withCredentials: true });\r\n },\r\n calculate(dishCalculate: DishCalculate) {\r\n return Repository.post(`${resource}/CalculateDishNutritions`, dishCalculate, { withCredentials: true });\r\n },\r\n saveDishLabel(data: any) {\r\n return Repository.post(`${resource}/SaveDishLabel`, data, { withCredentials: true });\r\n },\r\n getDishLabel(data: any) {\r\n return Repository.post(`${resource}/GetDishLabel`, data, { withCredentials: true });\r\n },\r\n deleteDishes(data: any) {\r\n return Repository.post(`${resource}/DeleteDishes`, data, { withCredentials: true });\r\n }\r\n};\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipesManagement.vue?vue&type=style&index=0&id=781dc617&prod&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vToggleSwitch.vue?vue&type=style&index=0&id=ccc516d4&prod&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vPreLoader.vue?vue&type=style&index=0&id=3032049b&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"page-content-wrapper\"},[_c('div',{staticClass:\"content recipes-management\"},[_c('vBreadcrumbs',{attrs:{\"userDetails\":_vm.$store.getters.getUserDetails}}),_c('div',{staticClass:\"container-fluid container-fixed-lg\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('h2',[_c('img',{staticClass:\"img-thumbnail img-circle\",staticStyle:{\"width\":\"75px\"},attrs:{\"src\":require(\"../../assets/Customer/assets/img/dashboard/my-recipes-book-sm.jpg\"),\"alt\":\"\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$route.name === \"recipesEdit\"\n ? _vm.translations.get(\"rec_title_edit\")\n : _vm.translations.get(\"rec_title_add\"))+\"\\n \")])])])]),_c('div',{staticClass:\"container-fluid container-fixed-lg\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-8 col-md-12 col-sm-12 left-recipe-section\"},[_c('div',{staticClass:\"card card-default brown lighten-5\"},[_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_recipe_details\"))+\"\\n \")])]),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"form-group-attached\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"recipe-category\",attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"label\":_vm.translations.get('rec_select_category'),\"required\":true,\"value\":_vm.recipesManagementState.recipe.recipeCategory.name,\"options\":_vm.categories,\"clearable\":false},on:{\"input\":_vm.selectCategory}})],1)]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group form-group-default required\",class:{ 'has-error': _vm.errors.has('recipeName') }},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_recipe_name\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.recipesManagementState.recipe.name),expression:\"recipesManagementState.recipe.name\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control text-black\",attrs:{\"type\":\"text\",\"name\":\"recipeName\",\"data-vv-as\":_vm.translations.get('rec_recipe_name')},domProps:{\"value\":(_vm.recipesManagementState.recipe.name)},on:{\"change\":_vm.disableButtonsBeforeSave,\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.recipesManagementState.recipe, \"name\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-2\"},[_c('div',{staticClass:\"form-group form-group-default required\",class:{ 'has-error': _vm.errors.has('servings') }},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_servings\")))]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({\n required: true,\n regex: '[0-9]',\n }),expression:\"{\\n required: true,\\n regex: '[0-9]',\\n }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.servingCount),expression:\"servingCount\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"servings\",\"data-vv-as\":_vm.translations.get('rec_servings')},domProps:{\"value\":(_vm.servingCount)},on:{\"change\":() =>\n _vm.setRecipeServingCount() &\n _vm.disableButtonsBeforeSave(),\"input\":function($event){if($event.target.composing)return;_vm.servingCount=$event.target.value}}})])]),_c('div',{staticClass:\"col-md-4\"},[_c('div',{staticClass:\"form-group form-group-default\"},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_description\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.recipesManagementState.recipe.description),expression:\"recipesManagementState.recipe.description\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"description\"},domProps:{\"value\":(_vm.recipesManagementState.recipe.description)},on:{\"change\":_vm.disableButtonsBeforeSave,\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.recipesManagementState.recipe, \"description\", $event.target.value)}}})])])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"card card-default\"},[_c('div',{staticClass:\"accordion-header\",staticStyle:{\"padding\":\"20px 0\"},on:{\"click\":_vm.toggleRecipeInst}},[_c('span',{staticStyle:{\"margin-left\":\"20px\",\"font-family\":\"'Montserrat'\",\"text-transform\":\"uppercase\",\"letter-spacing\":\"0.06em\",\"font-size\":\"10.5px\",\"font-weight\":\"500\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_instructions\")))]),_c('i',{staticClass:\"fa\",class:_vm.showRecipeInst ? 'fa-close' : 'fa-plus-circle'})]),_c('transition',{attrs:{\"name\":\"accordion\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showRecipeInst),expression:\"showRecipeInst\"}],staticClass:\"toggle-container form-group form-group-default\",staticStyle:{\"overflow\":\"hidden\"}},[_c('vue-editor',{on:{\"text-change\":_vm.onEditorTextChange,\"image-added\":_vm.disableButtonsBeforeSave},model:{value:(_vm.recipesManagementState.recipe.instructions),callback:function ($$v) {_vm.$set(_vm.recipesManagementState.recipe, \"instructions\", $$v)},expression:\"recipesManagementState.recipe.instructions\"}})],1)])],1)])])])]),_c('div',{staticClass:\"card card-default brown lighten-5\",attrs:{\"id\":\"recipe-ingredients\"}},[_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_recipe_ingredients\"))+\"\\n \")])]),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\",attrs:{\"id\":\"recipe-ingr-action-buttons\"}},[_c('div',{staticClass:\"add-ingr-button\"},[_c('button',{staticClass:\"btn btn-sm btn-primary recipe-ingr-button\",attrs:{\"data-target\":\"#modalSlideUp\",\"data-toggle\":\"modal\"},on:{\"click\":_vm.openSearchIngredientsModal}},[_c('i',{staticClass:\"fa fa-search\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_add_ingredient_btn\"))+\"\\n \")])]),_c('div',[_c('div',{staticClass:\"btn-toolbar\",attrs:{\"role\":\"toolbar\"}},[_c('button',{staticClass:\"btn btn-default recipe-ingr-button\",attrs:{\"type\":\"button\",\"disabled\":_vm.$route.name !== 'recipesEdit' || !_vm.recipeSaved},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleScaleRecipeModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_scale\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-default recipe-ingr-button\",attrs:{\"type\":\"button\",\"disabled\":_vm.$route.name !== 'recipesEdit' || !_vm.recipeSaved},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMoistureLossModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_yield_adjustments\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-default recipe-ingr-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleAddedSugarModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ser_addedsugar\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-default recipe-ingr-button\",attrs:{\"type\":\"button\",\"disabled\":_vm.$route.name !== 'recipesEdit' || !_vm.recipeSaved},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleServingModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ser_serving\"))+\"\\n \")])])])])]),(_vm.recipesManagementState.loadingRecipe)?_c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-12\"},[_c('vPreLoader')],1)]):_vm._e(),_c('div',{staticClass:\"table-responsive\",attrs:{\"id\":\"ingr-and-recipe-table\"}},[_c('table',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n _vm.recipesManagementState.recipe.ingredients.length > 0 ||\n _vm.recipesManagementState.recipe.childRecipes.length > 0\n ),expression:\"\\n recipesManagementState.recipe.ingredients.length > 0 ||\\n recipesManagementState.recipe.childRecipes.length > 0\\n \"}],staticClass:\"table\"},[_c('thead',{staticClass:\"thead-nutrition-table\"},[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_quantity\")))]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_added_sugar\")))]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_food_code\")))]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_measure\")))]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_ingredient\")))]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_source\"))+\"\\n \")]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_database\")))]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_brand\")))]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"delete\"))+\"\\n \")])])]),_vm._m(0),_c('tbody',[_vm._l((_vm.recipesManagementState.recipe\n .ingredients),function(ingr){return _c('tr',{key:'ingr' + ingr.ingredient.id},[_c('td',{staticClass:\"v-align-middle\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(ingr.quantity),expression:\"ingr.quantity\"},{name:\"validate\",rawName:\"v-validate\",value:('required|min_value:0'),expression:\"'required|min_value:0'\"}],staticClass:\"form-control\",class:{\n 'is-invalid': _vm.errors.has(\n 'ingr_quantity_' + ingr.ingredient.id\n ),\n },attrs:{\"type\":\"number\",\"name\":'ingr_quantity_' + ingr.ingredient.id,\"data-vv-as\":_vm.translations.get('rec_ingr_quantity')},domProps:{\"value\":(ingr.quantity)},on:{\"change\":function($event){_vm.calculateNutritions();\n _vm.disableButtonsBeforeSave();},\"input\":function($event){if($event.target.composing)return;_vm.$set(ingr, \"quantity\", $event.target.value)}}})]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(ingr.isAddedSugar),expression:\"ingr.isAddedSugar\"}],attrs:{\"type\":\"checkbox\",\"id\":'addSug' + ingr.ingredient.id},domProps:{\"checked\":Array.isArray(ingr.isAddedSugar)?_vm._i(ingr.isAddedSugar,null)>-1:(ingr.isAddedSugar)},on:{\"input\":function($event){_vm.calculateNutritions();\n _vm.disableButtonsBeforeSave();},\"change\":function($event){var $$a=ingr.isAddedSugar,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(ingr, \"isAddedSugar\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(ingr, \"isAddedSugar\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(ingr, \"isAddedSugar\", $$c)}}}}),_c('label',{staticClass:\"no-padding no-margin\",attrs:{\"for\":'addSug' + ingr.ingredient.id}})])]),_c('td',{staticClass:\"v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(ingr.ingredient.foodCode != null\n ? ingr.ingredient.foodCode\n : \"\")+\"\\n \")]),_c('td',{staticClass:\"v-align-middle\"},[_c('div',{staticClass:\"ingr-measurement-select\"},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":ingr.measurement.name,\"options\":ingr.ingredient.allMeasurements,\"clearable\":false},on:{\"input\":function($event){return _vm.selectMeasurement($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)]),_c('td',{staticClass:\"v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(ingr.ingredient.name)+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[(ingr.ingredient.nutrientSource !== null)?[(ingr.ingredient.nutrientSource === 0)?_c('img',{attrs:{\"src\":_vm.canadaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.ingredient.nutrientSource === 1)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.ingredient.nutrientSource === 3)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.ingredient.nutrientSource === 4)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.ingredient.nutrientSource === 2)?_c('img',{attrs:{\"src\":_vm.ukFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.ingredient.nutrientSource === 5)?_c('img',{attrs:{\"src\":_vm.sugarAlcoholsFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.ingredient.nutrientSource === 6)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e()]:_c('img',{attrs:{\"src\":_vm.customIngrFlag,\"alt\":\"Database\"}})],2),_c('td',{staticClass:\"v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.nutrientSourceName(ingr.ingredient))+\"\\n \")]),_c('td',{staticClass:\"v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(ingr.ingredient.brand)+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\",staticStyle:{\"font-size\":\"1.5em\"}},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeIngredient(ingr.ingredient.id)}}},[_c('i',{staticClass:\"fa fa-trash\"})])])])}),_vm._l((_vm.recipesManagementState.recipe\n .childRecipes),function(recipe){return _c('tr',{key:'recipe' + recipe.recipe.id},[_c('td',{staticClass:\"v-align-middle\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(recipe.quantity),expression:\"recipe.quantity\"},{name:\"validate\",rawName:\"v-validate\",value:('required|min_value:0'),expression:\"'required|min_value:0'\"}],staticClass:\"form-control\",class:{\n 'is-invalid': _vm.errors.has(\n 'rec_quantity_' + recipe.recipe.id\n ),\n },attrs:{\"type\":\"number\",\"name\":'rec_quantity_' + recipe.recipe.id,\"data-vv-as\":_vm.translations.get('rec_ingr_quantity')},domProps:{\"value\":(recipe.quantity)},on:{\"change\":function($event){_vm.calculateNutritions();\n _vm.disableButtonsBeforeSave();},\"input\":function($event){if($event.target.composing)return;_vm.$set(recipe, \"quantity\", $event.target.value)}}})]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(recipe.isAddedSugar),expression:\"recipe.isAddedSugar\"}],attrs:{\"type\":\"checkbox\",\"id\":'addSug' + recipe.recipe.id},domProps:{\"checked\":Array.isArray(recipe.isAddedSugar)?_vm._i(recipe.isAddedSugar,null)>-1:(recipe.isAddedSugar)},on:{\"input\":function($event){_vm.calculateNutritions();\n _vm.disableButtonsBeforeSave();},\"change\":function($event){var $$a=recipe.isAddedSugar,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(recipe, \"isAddedSugar\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(recipe, \"isAddedSugar\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(recipe, \"isAddedSugar\", $$c)}}}}),_c('label',{staticClass:\"no-padding no-margin\",attrs:{\"for\":'addSug' + recipe.recipe.id}})])]),_c('td',{staticClass:\"v-align-middle\"}),_c('td',{staticClass:\"v-align-middle\"},[_c('div',{staticClass:\"ingr-measurement-select\"},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":_vm.translations.get('rec_serving'),\"options\":[],\"clearable\":false,\"searchable\":false,\"noDrop\":true}})],1)]),_c('td',{staticClass:\"v-align-middle\"},[_vm._v(_vm._s(recipe.recipe.name))]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('img',{attrs:{\"src\":_vm.customRecipeFlag,\"alt\":\"Database\"}})]),_c('td',{staticClass:\"v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_custom_recipe\"))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"}),_c('td',{staticClass:\"text-center v-align-middle\",staticStyle:{\"font-size\":\"1.5em\"}},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeSubRecipe(recipe.recipe.id)}}},[_c('i',{staticClass:\"fa fa-trash\"})])])])})],2)])]),(\n _vm.recipesManagementState.recipe.nutritionAnalysis.volume !=\n 'NaN' ||\n _vm.recipesManagementState.recipe.nutritionAnalysis.weight !=\n 'NaN'\n )?_c('div',{staticClass:\"total-weight-container\"},[(\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .servingUnitOfMeasurement == 'ml' ||\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .servingUnitOfMeasurement == 'fl. oz'\n )?_c('span',[_vm._v(\"Recipe Volume Total:\\n \"+_vm._s(Math.round(\n _vm.recipesManagementState.recipe.nutritionAnalysis.volume *\n 100\n ) / 100)+\"\\n mL\")]):_c('span',[_vm._v(\"Recipe Weight Total:\\n \"+_vm._s(Math.round(\n _vm.recipesManagementState.recipe.nutritionAnalysis.weight *\n 100\n ) / 100)+\"\\n g\")])]):_vm._e()])])]),_c('div',{staticClass:\"col-lg-4 col-md-12 col-sm-12\",staticStyle:{\"position\":\"relative\"}},[_c('div',{staticClass:\"card card-default brown lighten-5 resolution\"},[_c('div',{staticClass:\"card-body\"},[(_vm.recipesManagementState.recipe.id != null)?_c('button',{staticClass:\"btn btn-default calc-method-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openCalculationMethodModal.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_recipe_calculation_method\"))+\"\\n \")]):_vm._e(),_c('p',{staticClass:\"text-right\",class:{\n 'mt--30': _vm.recipesManagementState.recipe.id != null,\n }},[_c('a',{staticClass:\"btn btn-xs btn-primary calc-btn\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.calculateNutritions();\n _vm.disableButtonsBeforeSave();}}},[_c('i',{staticClass:\"fa fa-calculator\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_calc_nutrition\"))+\"\\n \")])]),_c('div',[_c('vNutritionLabel',{attrs:{\"nutrition\":_vm.recipesManagementState.recipe.nutritionAnalysis,\"cautionaryLabel\":_vm.recipesManagementState.recipe.cautionaryMessage}})],1)])]),(\n _vm.recipesManagementState.recipe.dailyValueCalculationMethod == 1\n )?_c('div',{staticClass:\"card card-default brown lighten-5 resolution disclaimer-message\"},[_c('p',[_c('span',{staticClass:\"attention-text\"},[_vm._v(_vm._s(_vm.translations.get(\"attention\"))+\": \")]),_c('span',{staticClass:\"f-size-12\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"recipe_desclaimer_attention_msg\")))])]),_c('ul',{staticClass:\"disclaimer-bullets\"},[_c('li',[_c('span',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.translations.get(\"recipe_regulatory_risk\"))+\": \")]),_c('span',[_vm._v(_vm._s(_vm.translations.get(\"recipe_desclaimer_msg_1\"))+\".\")])]),_c('li',[_c('span',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.translations.get(\"recipe_consumer_clarity\"))+\": \")]),_c('span',[_vm._v(_vm._s(_vm.translations.get(\"recipe_desclaimer_msg_2\"))+\".\")])]),_c('li',[_c('span',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.translations.get(\"recipe_your_responsibility\"))+\": \")]),_c('span',[_vm._v(_vm._s(_vm.translations.get(\"recipe_desclaimer_msg_3\"))+\".\")])])]),_c('p',{staticClass:\"f-size-12\"},[_c('span',{staticClass:\"bold\"},[_vm._v(_vm._s(_vm.translations.get(\"disclaimer\"))+\": \")]),_c('span',[_vm._v(_vm._s(_vm.translations.get(\"disclaimer_message\")))])])]):_vm._e()])])])],1),_c('div',{staticClass:\"container-fluid container-fixed-lg\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('nav',{staticClass:\"fixed-bottom navbar-light bg-light\",staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticClass:\"pull-right\"},[(_vm.showRecipeCostBtn())?_c('button',{staticClass:\"btn btn-primary m-l-5\",attrs:{\"href\":\"#\",\"disabled\":(_vm.recipesManagementState.recipe.ingredients.length == 0 ||\n _vm.recipesManagementState.recipe.childRecipes,\n _vm.length == 0) || !_vm.recipeSaved},on:{\"click\":function($event){$event.preventDefault();return _vm.submit('calculateRecipesCost', {\n id: `${_vm.recipesManagementState.recipe.id}`,\n })}}},[_c('i',{staticClass:\"fa fa-calculator\"}),_c('span',{staticClass:\"d-none d-md-inline-block d-md-inline-block\"},[_vm._v(\" \"+_vm._s(_vm.translations.get(\"rec-cost-btn\")))])]):_vm._e(),_c('a',{staticClass:\"btn btn-primary m-l-5\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.submit('', null)}}},[_c('i',{staticClass:\"fa fa-save\"}),_c('span',{staticClass:\"d-none d-md-inline-block d-md-inline-block\"},[_vm._v(\" \"+_vm._s(_vm.translations.get(\"rec_save_rec\")))])]),_c('a',{staticClass:\"btn btn-primary m-l-5\",attrs:{\"href\":\"RecipesList.html\"},on:{\"click\":function($event){$event.preventDefault();return _vm.submit('recipes')}}},[_c('i',{staticClass:\"fa fa-sign-out\"}),_c('span',{staticClass:\"d-none d-md-inline-block d-md-inline-block\"},[_vm._v(\" \"+_vm._s(_vm.translations.get(\"rec_save_exit_rec\")))])]),_c('a',{staticClass:\"btn btn-primary m-l-5\",class:{ disabled: !_vm.recipeSaved },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.printRecipe.apply(null, arguments)}}},[_c('i',{staticClass:\"fa fa-print\"}),_c('span',{staticClass:\"d-none d-md-inline-block d-md-inline-block\"},[_vm._v(\" \"+_vm._s(_vm.translations.get(\"rec_print_rec\")))])]),_c('a',{staticClass:\"btn btn-primary m-l-5\",class:{ disabled: !_vm.recipeSaved },attrs:{\"href\":\"#exportLabel\",\"data-toggle\":\"modal\"},on:{\"click\":function($event){$event.preventDefault();_vm.showExportLabelModal = true}}},[_c('i',{staticClass:\"fa fa-download\"}),_c('span',{staticClass:\"d-none d-md-inline-block d-md-inline-block\"},[_vm._v(\" \"+_vm._s(_vm.translations.get(\"rec_export_label\").toUpperCase()))])])])])])])]),_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_category_modal_title'),\"show\":_vm.showCategoryModal,\"size\":'s'},on:{\"cancelModal\":_vm.cancelAddCategory}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.addCategory.apply(null, arguments)},\"reset\":function($event){$event.preventDefault();return _vm.cancelAddCategory.apply(null, arguments)}}},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group\",staticStyle:{\"width\":\"100%\"}},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_category_modal_name\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.recipesManagementState.addCategory.name),expression:\"recipesManagementState.addCategory.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.recipesManagementState.addCategory.name)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.recipesManagementState.addCategory, \"name\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('button',{staticClass:\"btn btn-primary btn-block m-t-10\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(this.translations.get(\"submit\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-block m-t-10\",attrs:{\"type\":\"reset\"}},[_vm._v(\"\\n \"+_vm._s(this.translations.get(\"cancel\"))+\"\\n \")])])])]),_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_ingr_add_modal_title'),\"show\":_vm.showIngredientModal,\"size\":'l'},on:{\"cancelModal\":_vm.closeSearchIngredientsModal}},[_c('form',{staticClass:\"form\",staticStyle:{\"padding\":\"20px\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.searchIngredients.apply(null, arguments)},\"reset\":_vm.closeSearchIngredientsModal}},[_c('div',{staticClass:\"form-group row\"},[_c('div',{staticClass:\"col-md-3\"},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_select_database\")))]),_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.includeCustomIngredients),expression:\"includeCustomIngredients\"}],attrs:{\"type\":\"checkbox\",\"id\":\"src_custom\"},domProps:{\"checked\":Array.isArray(_vm.includeCustomIngredients)?_vm._i(_vm.includeCustomIngredients,null)>-1:(_vm.includeCustomIngredients)},on:{\"change\":function($event){var $$a=_vm.includeCustomIngredients,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.includeCustomIngredients=$$a.concat([$$v]))}else{$$i>-1&&(_vm.includeCustomIngredients=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.includeCustomIngredients=$$c}}}}),_c('label',{attrs:{\"for\":\"src_custom\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_custom_ingr\")))])]),(_vm.shouldShowNutrientSource(0))?_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"canada\"},domProps:{\"value\":0,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,0)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=0,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"canada\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_canda\")))])]):_vm._e(),(_vm.shouldShowNutrientSource(1))?_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{attrs:{\"type\":\"checkbox\",\"id\":\"usa-all\"},domProps:{\"checked\":_vm.selectAllUSAnutrients},on:{\"click\":function($event){$event.preventDefault();return _vm.allUSDAnutrientDatabases.apply(null, arguments)}}}),_c('label',{attrs:{\"for\":\"usa-all\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_all_usa_database\")))])]):_vm._e(),(_vm.shouldShowNutrientSource(1))?_c('div',{staticStyle:{\"margin-left\":\"26px\"}},[_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"usa\"},domProps:{\"value\":1,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,1)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=1,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"usa\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_usa\")))])]),_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"usa-foundation\"},domProps:{\"value\":4,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,4)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=4,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"usa-foundation\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_usa_foundation\")))])]),_c('div',{staticClass:\"checkbox check-primary last-nutrient-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"usa-branded\"},domProps:{\"value\":3,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,3)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=3,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"usa-branded\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_usa_branded\")))]),_c('vIconWithTooltip',{attrs:{\"tooltipContent\":_vm.translations.get('rec_database_tooltip'),\"tooltipPlacement\":'bottom-end',\"iStyle\":'height: 25px; margin-left: 2px;',\"iClass\":'fa fa-info-circle'}})],1),_c('div',{staticClass:\"checkbox check-primary\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"usa-fndds\"},domProps:{\"value\":6,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,6)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=6,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"usa-fndds\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_fndds\")))])])]):_vm._e(),(_vm.shouldShowNutrientSource(2))?_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"uk\"},domProps:{\"value\":2,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,2)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=2,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"uk\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_uk\")))])]):_vm._e(),(_vm.showSugarAlcoholDatabase)?_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nutrientsListForSearch),expression:\"nutrientsListForSearch\"}],attrs:{\"type\":\"checkbox\",\"id\":\"sugar-alcohol\"},domProps:{\"value\":5,\"checked\":Array.isArray(_vm.nutrientsListForSearch)?_vm._i(_vm.nutrientsListForSearch,5)>-1:(_vm.nutrientsListForSearch)},on:{\"change\":function($event){var $$a=_vm.nutrientsListForSearch,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=5,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nutrientsListForSearch=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nutrientsListForSearch=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nutrientsListForSearch=$$c}}}}),_c('label',{attrs:{\"for\":\"sugar-alcohol\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_include_sugar_alcohol\")))])]):_vm._e()]),_c('div',{staticClass:\"col-md-3\"},[_c('vSelect',{staticClass:\"select-search\",attrs:{\"multiple\":false,\"value\":_vm.selectedOption,\"options\":_vm.searchOptions,\"clearable\":false,\"label\":'Search by',\"searchable\":false},on:{\"input\":_vm.selectOption}})],1),_c('div',{staticClass:\"col-md-4\"},[_c('div',{staticClass:\"form-group form-group-default\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.ingredientSearchString),expression:\"ingredientSearchString\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.ingredientSearchString)},on:{\"keyup\":_vm.checkForSpelling,\"input\":function($event){if($event.target.composing)return;_vm.ingredientSearchString=$event.target.value}}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasAutoCorrection),expression:\"hasAutoCorrection\"}]},[_vm._v(\"\\n \"+_vm._s(this.translations.get(\"rec_did_you_mean\"))+\":\\n \"),_c('span',{staticClass:\"corrected-search-term\",domProps:{\"innerHTML\":_vm._s(_vm.autoCorrectionHtml)},on:{\"click\":_vm.onCorrectSerachTerm}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n _vm.searchResults.ingredients.length > 0 ||\n _vm.searchResults.recipes.length > 0 ||\n _vm.searchResults.customIngredients.length > 0\n ),expression:\"\\n searchResults.ingredients.length > 0 ||\\n searchResults.recipes.length > 0 ||\\n searchResults.customIngredients.length > 0\\n \"}]},[_vm._v(\"\\n \"+_vm._s(`${_vm.translations.get(`rec_search_total`)}: ${_vm.totalResults}`)+\"\\n \")]),_c('div',{staticClass:\"search-btn-holder\"},[_c('button',{staticClass:\"btn btn-primary ingredient-search-btn\",attrs:{\"id\":\"showTable\",\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.searchIngredients.apply(null, arguments)}}},[_c('i',{staticClass:\"fa fa-search-plus\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"search\").toUpperCase())+\"\\n \")])])]),_c('div',{staticClass:\"col-md-2\"},[_c('vPreLoader',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.searchLoading),expression:\"searchLoading\"}]})],1)]),_c('div',{staticClass:\"form-row\",staticStyle:{\"max-height\":\"400px\",\"overflow-y\":\"auto\"}},[(\n _vm.searchResults.ingredients.length > 0 ||\n _vm.searchResults.recipes.length > 0 ||\n _vm.searchResults.customIngredients.length > 0\n )?_c('div',{staticClass:\"table-responsive\",attrs:{\"id\":\"search-ingr-table\"}},[_c('table',{staticClass:\"table\"},[_c('thead',{staticClass:\"thead-nutrition-table\"},[_c('tr',[_c('th',{staticClass:\"no-padding\",staticStyle:{\"background\":\"none\"},attrs:{\"colspan\":\"7\"}},[_c('a',{staticClass:\"text-blue\",attrs:{\"href\":\"#\",\"data-target\":\"addCustomIngredient\",\"data-toggle\":\"modal\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openAddIngredientModal.apply(null, arguments)}}},[_c('i',{staticClass:\"fa fa-plus-circle\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ingr_add_button\"))+\"\\n \")])]),_c('th',{staticClass:\"thead-nutrition-table-light-blue text-center\",attrs:{\"colspan\":\"5\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_per_gram\"))+\"\\n \")])]),_c('tr',[_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_ingredient\")))]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"Added Sugars\")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_food_code\"))+\"\\n \")]),_c('th',[_vm._v(_vm._s(_vm.translations.get(\"rec_ingr_measure\")))]),_c('th',{staticClass:\"text-center\"}),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_source\"))+\"\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_database\"))+\"\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_brand\"))+\"\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_calories\"))+\"\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_fat\"))+\" (g)\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_protein\"))+\" (g)\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_carbs\"))+\" (g)\\n \")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingr_sodium\"))+\" (mg)\\n \")])])]),_c('tbody',[_vm._l((_vm.searchResults.customIngredients),function(ingr){return _c('tr',{key:'ingrSearch' + ingr.id},[_c('td',{staticClass:\"v-align-middle\"},[_vm._v(_vm._s(ingr.name))]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(ingr.foodCode)+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(ingr.isAddedSugar),expression:\"ingr.isAddedSugar\"}],attrs:{\"type\":\"checkbox\",\"id\":'addSug' + ingr.id},domProps:{\"checked\":Array.isArray(ingr.isAddedSugar)?_vm._i(ingr.isAddedSugar,null)>-1:(ingr.isAddedSugar)},on:{\"change\":function($event){var $$a=ingr.isAddedSugar,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(ingr, \"isAddedSugar\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(ingr, \"isAddedSugar\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(ingr, \"isAddedSugar\", $$c)}}}}),_c('label',{staticClass:\"no-padding no-margin\",attrs:{\"for\":'addSug' + ingr.id}})])]),_c('td',{staticClass:\"v-align-middle\"},[_c('div',{staticClass:\"ingr-measurement-select\"},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":ingr.measurement.name,\"options\":ingr.allMeasurements,\"clearable\":false},on:{\"input\":function($event){return _vm.selectMeasurementInAddIngredient($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)]),_c('td',{staticClass:\"text-center v-align-middle\",staticStyle:{\"font-size\":\"1.5em\"}},[(\n _vm.recipesManagementState.recipe.ingredients.find(\n (i) => i.ingredient.id === ingr.id\n )\n )?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeIngredient(ingr.id)}}},[_c('i',{staticClass:\"fa fa-check\"})]):_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.addIngredient(ingr)}}},[_c('i',{staticClass:\"fa fa-plus-circle\"})])]),_c('td',{staticClass:\"text-center v-align-middle\"},[(ingr.nutrientSource !== null)?[(ingr.nutrientSource === 0)?_c('img',{attrs:{\"src\":_vm.canadaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 1)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 2)?_c('img',{attrs:{\"src\":_vm.ukFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 3)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 4)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 5)?_c('img',{attrs:{\"src\":_vm.sugarAlcoholsFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 6)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e()]:_c('img',{attrs:{\"src\":_vm.customIngrFlag,\"alt\":\"Database\"}})],2),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.nutrientSourceName(ingr))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(_vm._s(ingr.brand))]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.energy, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.fat, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.protein, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.carbohydrate, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.sodium, 2))+\"\\n \")])])}),_vm._l((_vm.filterSubRecipes),function(recipe){return _c('tr',{key:'recipeSearch' + recipe.id},[_c('td',{staticClass:\"v-align-middle\"},[_vm._v(_vm._s(recipe.name))]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(recipe.isAddedSugar),expression:\"recipe.isAddedSugar\"}],attrs:{\"type\":\"checkbox\",\"id\":'addSug' + recipe.id},domProps:{\"checked\":Array.isArray(recipe.isAddedSugar)?_vm._i(recipe.isAddedSugar,null)>-1:(recipe.isAddedSugar)},on:{\"change\":function($event){var $$a=recipe.isAddedSugar,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(recipe, \"isAddedSugar\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(recipe, \"isAddedSugar\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(recipe, \"isAddedSugar\", $$c)}}}}),_c('label',{staticClass:\"no-padding no-margin\",attrs:{\"for\":'addSug' + recipe.id}})])]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(recipe.foodCode)+\"\\n \")]),_c('td',{staticClass:\"v-align-middle\"},[_c('div',{staticClass:\"ingr-measurement-select\"},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":'Serving',\"options\":[_vm.translations.get('rec_serving')],\"clearable\":false},on:{\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)]),_c('td',{staticClass:\"text-center v-align-middle\",staticStyle:{\"font-size\":\"1.5em\"}},[(\n _vm.recipesManagementState.recipe.childRecipes.find(\n (r) => r.recipe.id === recipe.id\n )\n )?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeSubRecipe(recipe.id)}}},[_c('i',{staticClass:\"fa fa-check\"})]):_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.addSubRecipe(recipe)}}},[_c('i',{staticClass:\"fa fa-plus-circle\"})])]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('img',{attrs:{\"src\":_vm.customRecipeFlag,\"alt\":\"Database\"}})]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_custom_recipe\"))+\"\\n \")]),_c('td'),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(recipe.energy, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(recipe.fat, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(recipe.protein, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(recipe.carbohydrate, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(recipe.sodium, 2))+\"\\n \")])])}),_vm._l((_vm.searchResults.ingredients),function(ingr){return _c('tr',{key:'ingrSearch' + ingr.id},[_c('td',{staticClass:\"v-align-middle\"},[_vm._v(_vm._s(ingr.name))]),_c('td',{staticClass:\"text-center v-align-middle\"},[_c('div',{staticClass:\"checkbox check-primary\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(ingr.isAddedSugar),expression:\"ingr.isAddedSugar\"}],attrs:{\"type\":\"checkbox\",\"id\":'addSug' + ingr.id},domProps:{\"checked\":Array.isArray(ingr.isAddedSugar)?_vm._i(ingr.isAddedSugar,null)>-1:(ingr.isAddedSugar)},on:{\"change\":function($event){var $$a=ingr.isAddedSugar,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(ingr, \"isAddedSugar\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(ingr, \"isAddedSugar\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(ingr, \"isAddedSugar\", $$c)}}}}),_c('label',{staticClass:\"no-padding no-margin\",attrs:{\"for\":'addSug' + ingr.id}})])]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(ingr.foodCode)+\"\\n \")]),_c('td',{staticClass:\"v-align-middle\"},[_c('div',{staticClass:\"ingr-measurement-select\"},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":ingr.measurement.name,\"options\":ingr.allMeasurements,\"clearable\":false},on:{\"input\":function($event){return _vm.selectMeasurementInAddIngredient($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)]),_c('td',{staticClass:\"text-center v-align-middle\",staticStyle:{\"font-size\":\"1.5em\"}},[(\n _vm.recipesManagementState.recipe.ingredients.find(\n (i) => i.ingredient.id === ingr.id\n )\n )?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeIngredient(ingr.id)}}},[_c('i',{staticClass:\"fa fa-check\"})]):_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.addIngredient(ingr)}}},[_c('i',{staticClass:\"fa fa-plus-circle\"})])]),_c('td',{staticClass:\"text-center v-align-middle\"},[(ingr.nutrientSource !== null)?[(ingr.nutrientSource === 0)?_c('img',{attrs:{\"src\":_vm.canadaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 1)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 2)?_c('img',{attrs:{\"src\":_vm.ukFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 3)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 4)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 5)?_c('img',{attrs:{\"src\":_vm.sugarAlcoholsFlag,\"alt\":\"Database\"}}):_vm._e(),(ingr.nutrientSource === 6)?_c('img',{attrs:{\"src\":_vm.usaFlag,\"alt\":\"Database\"}}):_vm._e()]:_c('img',{attrs:{\"src\":_vm.customIngrFlag,\"alt\":\"Database\"}})],2),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.nutrientSourceName(ingr))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(_vm._s(ingr.brand))]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.energy, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.fat, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.protein, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.carbohydrate, 2))+\"\\n \")]),_c('td',{staticClass:\"text-center v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.round(ingr.sodium, 2))+\"\\n \")])])})],2)])]):_c('table',{staticClass:\"table table-responsive\"},[_c('thead',[_c('tr',[_c('th',{staticClass:\"no-padding\",staticStyle:{\"background\":\"none\"},attrs:{\"colspan\":\"4\"}},[_c('a',{staticClass:\"text-blue\",attrs:{\"href\":\"#\",\"data-target\":\"addCustomIngredient\",\"data-toggle\":\"modal\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openAddIngredientModal.apply(null, arguments)}}},[_c('i',{staticClass:\"fa fa-plus-circle\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"ingr_add_button\"))+\"\\n \")])])])])]),(_vm.noResult)?_c('div',{staticClass:\"text-center\"},[_c('h3',[_vm._v(_vm._s(_vm.translations.get(\"table_no_results\")))])]):_vm._e()]),_c('button',{staticClass:\"btn btn-primary m-t-30\",attrs:{\"type\":\"reset\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDoneBtn.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"done\"))+\"\\n \")])])]),_c('vModal',{attrs:{\"modalTitle\":_vm.addCustomIngredientModalTitle,\"show\":_vm.showAddIngredientModal,\"size\":'l'},on:{\"cancelModal\":_vm.closeAddIngredientModal}},[(_vm.showAddIngredientModal)?_c('vIngredientManagement',{attrs:{\"ingredient\":_vm.newCustomIngredient},on:{\"submit\":_vm.submitNewIngredient,\"cancel\":_vm.closeAddIngredientModal}}):_vm._e()],1),_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_scale_recipe'),\"show\":_vm.showScaleRecipeModal,\"size\":'s'},on:{\"cancelModal\":_vm.toggleScaleRecipeModal}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.scaleRecipe.apply(null, arguments)}}},[_c('div',[_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_scaling_modal_value_label\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.scaledRecipeServingSize),expression:\"scaledRecipeServingSize\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.scaledRecipeServingSize)},on:{\"input\":function($event){if($event.target.composing)return;_vm.scaledRecipeServingSize=$event.target.value}}})])]),_c('div',{staticClass:\"form-row\"},[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){$event.preventDefault();return _vm.scaleRecipe.apply(null, arguments)}}},[_vm._v(\"\\n SCALE\\n \")])])])]),(_vm.recipeCopy != null)?_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_yield_adjustments'),\"show\":_vm.showMoistureLossModal,\"size\":'l'},on:{\"cancelModal\":_vm.toggleMoistureLossModal}},[_c('vTabbedContent',{attrs:{\"tabs\":_vm.yieldAdjustmentTabs}},[_c('template',{slot:1},[_c('form',{attrs:{\"id\":\"moistureLossForm\",\"role\":\"form\",\"autocomplete\":\"off\"}},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_original_value\"))+\":\\n \"+_vm._s(Math.round(_vm.recipesManagementState.recipe.rawWeight * 100) / 100)+\"\\n g\\n \")]),_c('div',[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-md-2 col-sm-12 col-xs-12\"},[_c('p',{staticStyle:{\"margin-top\":\"5px\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_loss\"))+\"\\n \")])]),_c('div',{staticClass:\"col-md-2 col-sm-12 col-xs-12\"},[_c('div',{staticClass:\"form-group form-group-default\",class:{ invalid: _vm.invalidMoistureLossValue }},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.moistureLossValue),expression:\"moistureLossValue\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"name\":\"percent\"},domProps:{\"value\":(_vm.moistureLossValue)},on:{\"blur\":[function($event){_vm.invalidMoistureLossValue = false},function($event){return _vm.$forceUpdate()}],\"input\":function($event){if($event.target.composing)return;_vm.moistureLossValue=_vm._n($event.target.value)}}})])]),_c('div',{staticClass:\"col-md-3 col-sm-12 col-xs-12\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":_vm.moistureLossSelectedMeasurement.name,\"options\":_vm.moistureLossMeasurementOptions,\"clearable\":false},on:{\"input\":_vm.selectMeasurementForMoistureLoss}})],1)])]),_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-md-2 col-sm-12 col-xs-12\"},[_c('p',{staticStyle:{\"margin-top\":\"8px\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_cooking_method\"))+\"\\n \")])]),_c('div',{staticClass:\"col-lg-4 col-md-3 col-sm-12 col-xs-12\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"required\":true,\"value\":_vm.selectedCookingMethod.name,\"options\":_vm.cookingMethods,\"clearable\":false},on:{\"input\":_vm.selectCookingMethod}})],1)])])]),_c('div',{staticClass:\"card-title margin-top-30\",staticStyle:{\"text-transform\":\"uppercase\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_ingredient_classification\"))+\"\\n \")]),_c('div',{staticClass:\"table-responsive\",attrs:{\"id\":\"table-moisture-loss-classification\"}},[_c('table',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n _vm.recipeCopy.ingredients.length > 0 ||\n _vm.recipeCopy.childRecipes.length > 0\n ),expression:\"\\n recipeCopy.ingredients.length > 0 ||\\n recipeCopy.childRecipes.length > 0\\n \"}],staticClass:\"table\",staticStyle:{\"position\":\"relative\",\"margin-top\":\"0\"}},[_c('thead',{staticClass:\"thead-nutrition-table\"},[_c('tr',[_c('th',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_recipe_ingredient\"))+\"\\n \")]),_c('th',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_classification\"))+\"\\n \")]),_c('th',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_sub_classification\"))+\"\\n \")])])]),_c('colgroup',[_c('col',{staticStyle:{\"width\":\"15%\"},attrs:{\"span\":\"1\"}}),_c('col',{staticStyle:{\"width\":\"40%\"},attrs:{\"span\":\"1\"}}),_c('col',{staticStyle:{\"width\":\"40%\"},attrs:{\"span\":\"1\"}})]),_c('tbody',[_vm._l((_vm.recipeCopy.ingredients),function(ingr){return _c('tr',{key:'ingr' + ingr.ingredient.id},[_c('td',{staticClass:\"v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(ingr.ingredient.name)+\"\\n \")]),_c('td',{staticClass:\"v-align-middle select-classification\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":_vm.getPrimaryFoodGroupName(ingr),\"options\":_vm.foodGroupClasses,\"clearable\":false},on:{\"input\":function($event){return _vm.selectPrimaryFoodGroup($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)]),_c('td',{staticClass:\"v-align-middle select-classification\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"disabled\":_vm.getPrimaryFoodGroupName(ingr) ===\n 'None Applicable',\"value\":_vm.getPrimaryFoodGroupName(ingr) != 'None Applicable'\n ? ingr.foodGroupClassification.subClass\n : '',\"options\":ingr.foodGroupClassification\n .relatedFoodGroupClassifications,\"clearable\":false},on:{\"input\":function($event){return _vm.selectSecondaryFoodGroup($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)])])}),_vm._l((_vm.recipeCopy.childRecipes),function(ingr){return _c('tr',{key:'ingr' + ingr.id},[_c('td',{staticClass:\"v-align-middle\"},[_vm._v(_vm._s(ingr.recipe.name))]),_c('td',{staticClass:\"v-align-middle select-classification\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":_vm.getPrimaryFoodGroupName(ingr),\"options\":_vm.foodGroupClasses,\"clearable\":false},on:{\"input\":function($event){return _vm.selectPrimaryFoodGroup($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)]),_c('td',{staticClass:\"v-align-middle select-classification\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"disabled\":_vm.getPrimaryFoodGroupName(ingr) ===\n 'None Applicable',\"value\":_vm.getPrimaryFoodGroupName(ingr) != 'None Applicable'\n ? ingr.foodGroupClassification.subClass\n : '',\"options\":ingr.foodGroupClassification\n .relatedFoodGroupClassifications,\"clearable\":false},on:{\"input\":function($event){return _vm.selectSecondaryFoodGroup($event, ingr)},\"search:focus\":function($event){return _vm.openMenu()},\"search:blur\":function($event){return _vm.closeMenu()}}})],1)])])})],2)])])]),_c('br'),_c('div',{staticClass:\"pull-right\"},[_c('button',{staticClass:\"btn btn-primary p-right-10 m-right-5\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updateMoistureLoss.apply(null, arguments)}}},[_c('i',{staticClass:\"pg-refresh\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"update\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMoistureLossModal.apply(null, arguments)}}},[_c('i',{staticClass:\"pg-close\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"cancel\"))+\"\\n \")])])])])],2)],1):_vm._e(),_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_addedsugar_modal_title'),\"show\":_vm.showAddedSugarModal,\"size\":'s'},on:{\"cancelModal\":_vm.toggleAddedSugarModal}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.saveAdjustments.apply(null, arguments)}}},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(_vm._s(_vm.translations.get(\"rec_addedsugar_modal_value_label\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.recipesManagementState.recipe.adjustedAddedSugarsValue),expression:\"recipesManagementState.recipe.adjustedAddedSugarsValue\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.recipesManagementState.recipe.adjustedAddedSugarsValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.recipesManagementState.recipe, \"adjustedAddedSugarsValue\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[(\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .unadjustedAddedSugarPerServing != undefined\n )?_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_addedsugar_original_value\"))+\": \"+_vm._s(_vm.round(\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .unadjustedAddedSugarPerServing,\n 4\n ))+\"g.\\n \"),_c('span',{staticClass:\"text-link\",on:{\"click\":_vm.resetAdjustments}},[_vm._v(\"Reset\")])]):_vm._e()]),_c('div',{staticClass:\"form-row\"},[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){$event.preventDefault();return _vm.toggleAddedSugarModal.apply(null, arguments)}}},[_vm._v(\"\\n OK\\n \")])])])]),_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_modal_serving_size'),\"show\":_vm.showServingSizeModal,\"size\":'l'},on:{\"cancelModal\":_vm.resetState}},[_c('div',{staticClass:\"col-md-12\"},[_c('form',{attrs:{\"id\":\"servigSizeForm\",\"role\":\"form\",\"autocomplete\":\"off\",\"novalidate\":\"\"}},[_c('div',{staticClass:\"card card-transparent\"},[_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_serving_size\"))+\"\\n \")])]),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-md-2\"},[_c('div',{staticClass:\"radio radio-success\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.recipeServingType),expression:\"recipeServingType\"}],attrs:{\"type\":\"radio\",\"checked\":\"checked\",\"name\":\"serving\",\"id\":\"recipeMakes\"},domProps:{\"value\":0,\"checked\":_vm._q(_vm.recipeServingType,0)},on:{\"change\":function($event){_vm.recipeServingType=0}}}),_c('label',{attrs:{\"for\":\"recipeMakes\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_makes\")))])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.recipeServingType === 0),expression:\"recipeServingType === 0\"}],staticClass:\"col-md-2\"},[_c('div',{staticClass:\"form-group form-group-default\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.servingCount),expression:\"servingCount\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"amount\",\"disabled\":_vm.recipeServingType === 1},domProps:{\"value\":(_vm.servingCount)},on:{\"input\":function($event){if($event.target.composing)return;_vm.servingCount=$event.target.value}}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.recipeServingType === 0),expression:\"recipeServingType === 0\"}],staticClass:\"col-md-2\"},[_c('p',{staticStyle:{\"margin-top\":\"10px\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_servings\"))+\"\\n \")])])]),_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-md-2\"},[_c('div',{staticClass:\"radio radio-success\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.recipeServingType),expression:\"recipeServingType\"}],attrs:{\"type\":\"radio\",\"name\":\"serving\",\"id\":\"servingWeighs\"},domProps:{\"value\":1,\"checked\":_vm._q(_vm.recipeServingType,1)},on:{\"change\":function($event){_vm.recipeServingType=1}}}),_c('label',{attrs:{\"for\":\"servingWeighs\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_ser_weight\")))])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.recipeServingType === 1),expression:\"recipeServingType === 1\"}],staticClass:\"col-md-2\"},[_c('div',{staticClass:\"form-group form-group-default\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.servingQuantityInUnitOfMeasurement),expression:\"servingQuantityInUnitOfMeasurement\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"name\":\"amount\",\"disabled\":_vm.recipeServingType === 0},domProps:{\"value\":(_vm.servingQuantityInUnitOfMeasurement)},on:{\"change\":_vm.setRecipeServingWeight,\"input\":function($event){if($event.target.composing)return;_vm.servingQuantityInUnitOfMeasurement=$event.target.value}}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.recipeServingType === 1),expression:\"recipeServingType === 1\"}],staticClass:\"col-md-4\"},[_c('div',{attrs:{\"id\":\"select-container\"}},[_c('vSelect',{attrs:{\"multiple\":false,\"value\":_vm.selectedServingWeightMeasurement.name,\"options\":_vm.servingSizeMeasurementOptions,\"clearable\":false,\"disabled\":_vm.recipeServingType === 0},on:{\"input\":_vm.selectServingWeighMeasurement}})],1)])])])])]),_c('br'),_c('div',{staticClass:\"pull-right\"},[_c('button',{staticClass:\"btn btn-primary p-right-10 m-right-5\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updateServingSize.apply(null, arguments)}}},[_c('i',{staticClass:\"pg-refresh\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"update\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.closeServingSizeModal.apply(null, arguments)}}},[_c('i',{staticClass:\"pg-close\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"cancel\"))+\"\\n \")])])])])]),_c('div',{staticClass:\"page print-page\"},[_c('h2',[_vm._v(_vm._s(_vm.recipesManagementState.recipe.name))]),_c('table',[_c('col'),_c('col',{attrs:{\"width\":\"200\"}}),_c('tr',[_c('td',[_c('table',[_vm._m(1),_c('tbody',[_c('tr',{staticStyle:{\"font-size\":\"1.3rem\"}},[_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.desanitizeString(\n _vm.recipesManagementState.recipe.recipeCategory.name\n ))+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(parseFloat(\n _vm.recipesManagementState.recipe.servings\n ).toFixed(2))+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(parseFloat(\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .servingWeight\n ).toFixed(2))+\"\\n g\\n \")]),(\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .servingUnitOfMeasurement == 'ml' ||\n _vm.recipesManagementState.recipe.nutritionAnalysis\n .servingUnitOfMeasurement == 'fl. oz'\n )?_c('td',[_vm._v(\"\\n \"+_vm._s(Math.round(\n _vm.recipesManagementState.recipe.nutritionAnalysis.volume *\n 100\n ) / 100)+\"\\n mL\\n \")]):_c('td',[_vm._v(\"\\n \"+_vm._s(Math.round(\n _vm.recipesManagementState.recipe.nutritionAnalysis.weight *\n 100\n ) / 100)+\"\\n g\\n \")])])])])]),_vm._m(2)])]),_c('table',[_vm._m(3),_c('tbody',[_c('tr',[_c('td',[_vm._v(_vm._s(_vm.recipesManagementState.recipe.description))])])])]),_c('table',[_vm._m(4),_c('col'),_c('col',{attrs:{\"width\":\"300\"}}),_c('tbody',[_c('tr',{attrs:{\"valign\":\"top\"}},[_c('td',{staticStyle:{\"padding-right\":\"20px\"}},[_c('ul',[_vm._l((_vm.recipesManagementState.recipe\n .ingredients),function(ingredient){return _c('li',{key:`printIngr${ingredient.ingredient.id}`},[_vm._v(\"\\n \"+_vm._s(ingredient.quantity)+\" \"+_vm._s(ingredient.measurement.name)+\" of\\n \"+_vm._s(ingredient.ingredient.name)+\"\\n \")])}),_vm._l((_vm.recipesManagementState.recipe.childRecipes),function(recipe){return _c('li',{key:`printRec${recipe.recipe.id}`},[_vm._v(\"\\n \"+_vm._s(recipe.quantity)+\" of \"+_vm._s(recipe.recipe.name)+\"\\n \")])})],2)]),_c('td',[_c('vNutritionLabel',{staticClass:\"printLabel\",attrs:{\"nutrition\":_vm.recipesManagementState.recipe.nutritionAnalysis}})],1)])])]),_c('table',[_vm._m(5),_c('tbody',[_c('tr',[_c('td',[_c('div',{staticClass:\"editor-container\",staticStyle:{\"max-width\":\"100mm\"},domProps:{\"innerHTML\":_vm._s(_vm.printableInstructions)}})])])])]),_vm._m(6)]),_c('vModal',{staticClass:\"export-label-modal-wrapper\",attrs:{\"modalTitle\":_vm.translations.get('rec_export_label'),\"show\":_vm.showExportLabelModal,\"size\":'xl'},on:{\"cancelModal\":_vm.resetState}},[(_vm.showExportLabelModal)?_c('vExportLabel',{attrs:{\"labelType\":'r',\"id\":_vm.recipesManagementState.recipe.id,\"name\":_vm.recipesManagementState.recipe.name,\"recipe\":_vm.recipesManagementState.recipe}}):_vm._e()],1),_c('vModal',{attrs:{\"modalTitle\":_vm.translations.get('rec_modal_calculation_method'),\"show\":_vm.calculationMethodModal.isOpen,\"size\":'s'},on:{\"cancelModal\":_vm.closeCalculationMethodModal}},[_c('div',{staticClass:\"col-md-12\"},[_c('form',{attrs:{\"id\":\"servigSizeForm\",\"role\":\"form\",\"autocomplete\":\"off\",\"novalidate\":\"\"}},[_c('div',{staticClass:\"card card-transparent\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"calorie-calculation\"},[_c('span',[_vm._v(\"Calorie Calculation\")]),_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"radio radio-success calc-methods\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(\n _vm.calculationMethodModal.selectedCalculationMethod\n ),expression:\"\\n calculationMethodModal.selectedCalculationMethod\\n \"}],attrs:{\"type\":\"radio\",\"checked\":\"checked\",\"name\":\"calcMethod\",\"id\":\"summation\"},domProps:{\"value\":0,\"checked\":_vm._q(\n _vm.calculationMethodModal.selectedCalculationMethod\n ,0)},on:{\"change\":function($event){return _vm.$set(_vm.calculationMethodModal, \"selectedCalculationMethod\", 0)}}}),_c('label',{attrs:{\"for\":\"summation\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_modal_summation\")))]),_c('vIconWithTooltip',{attrs:{\"tooltipContent\":_vm.translations.get('rec_modal_summation_tooltip'),\"tooltipPlacement\":'bottom-end',\"iStyle\":'height: 25px; margin-left: 2px;',\"iClass\":'fa fa-info-circle'}})],1)])]),_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"radio radio-success calc-methods\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(\n _vm.calculationMethodModal.selectedCalculationMethod\n ),expression:\"\\n calculationMethodModal.selectedCalculationMethod\\n \"}],attrs:{\"type\":\"radio\",\"name\":\"calcMethod\",\"id\":\"method449\"},domProps:{\"value\":1,\"checked\":_vm._q(\n _vm.calculationMethodModal.selectedCalculationMethod\n ,1)},on:{\"change\":function($event){return _vm.$set(_vm.calculationMethodModal, \"selectedCalculationMethod\", 1)}}}),_c('label',{attrs:{\"for\":\"method449\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_modal_449\")))]),_c('vIconWithTooltip',{attrs:{\"tooltipContent\":_vm.translations.get('rec_modal_449_tooltip'),\"tooltipPlacement\":'bottom-end',\"iStyle\":'height: 25px; margin-left: 2px;',\"iClass\":'fa fa-info-circle'}})],1)])])]),_c('div',{staticClass:\"daily-value-calculation\"},[_c('span',[_vm._v(\"Daily Value Calculation\")]),_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"radio radio-success calc-methods\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(\n _vm.calculationMethodModal.selectedDailyValueCalculation\n ),expression:\"\\n calculationMethodModal.selectedDailyValueCalculation\\n \"}],attrs:{\"type\":\"radio\",\"checked\":\"checked\",\"name\":\"dailyValueMethod\",\"id\":\"roundedValues\"},domProps:{\"value\":0,\"checked\":_vm._q(\n _vm.calculationMethodModal.selectedDailyValueCalculation\n ,0)},on:{\"change\":function($event){return _vm.$set(_vm.calculationMethodModal, \"selectedDailyValueCalculation\", 0)}}}),_c('label',{attrs:{\"for\":\"roundedValues\"}},[_vm._v(_vm._s(_vm.translations.get(\"rec_modal_rounded_value\")))])])])]),_c('div',{staticClass:\"row clearfix\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"radio radio-success calc-methods\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(\n _vm.calculationMethodModal.selectedDailyValueCalculation\n ),expression:\"\\n calculationMethodModal.selectedDailyValueCalculation\\n \"}],attrs:{\"type\":\"radio\",\"name\":\"dailyValueMethod\",\"id\":\"unroundedValues\"},domProps:{\"value\":1,\"checked\":_vm._q(\n _vm.calculationMethodModal.selectedDailyValueCalculation\n ,1)},on:{\"change\":function($event){return _vm.$set(_vm.calculationMethodModal, \"selectedDailyValueCalculation\", 1)}}}),_c('label',{attrs:{\"for\":\"unroundedValues\"}},[_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"rec_modal_unrounded_value\")))])])])])])])])]),_c('br'),_c('div',{staticClass:\"pull-right\"},[_c('button',{staticClass:\"btn btn-primary p-right-10 m-right-5\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.updateCaloriesCalculationMethod.apply(null, arguments)}}},[_c('i',{staticClass:\"pg-refresh\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"update\"))+\"\\n \")]),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){$event.preventDefault();return _vm.closeCalculationMethodModal.apply(null, arguments)}}},[_c('i',{staticClass:\"pg-close\"}),_vm._v(\"\\n \"+_vm._s(_vm.translations.get(\"cancel\"))+\"\\n \")])])])])])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('colgroup',[_c('col',{staticStyle:{\"width\":\"15%\"},attrs:{\"span\":\"1\"}}),_c('col',{staticStyle:{\"width\":\"10%\"},attrs:{\"span\":\"1\"}}),_c('col',{staticStyle:{\"width\":\"25%\"},attrs:{\"span\":\"1\"}}),_c('col',{attrs:{\"span\":\"1\"}}),_c('col',{staticStyle:{\"width\":\"10%\"},attrs:{\"span\":\"1\"}}),_c('col',{staticStyle:{\"width\":\"10%\"},attrs:{\"span\":\"1\"}})])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Category:\")]),_c('th',[_vm._v(\"Servings:\")]),_c('th',[_vm._v(\"Per serving size:\")]),_c('th',[_vm._v(\"Total Weight:\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',[_c('img',{staticStyle:{\"float\":\"right\"},attrs:{\"src\":require(\"../../assets/Customer/assets/img/logoForPrintRecipe.png\"),\"width\":\"200\"}})])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Recipe Description:\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Ingredients:\")]),_c('th',[_vm._v(\"NutritionFacts:\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Instructions:\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Disclaimer:\")])])]),_c('tbody',[_c('tr',[_c('td',[_vm._v(\"\\n MenuSano makes no warranties or representations as to the accuracy\\n or completeness of the information on this menu, or the\\n nutriitional information of the food you are served. MenuSano does\\n not assume any risk for the content provided.\\n \"),_c('br'),_c('small',[_vm._v(\"www.menusano.com\")])])])])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-popover',{attrs:{\"placement\":_vm.tooltipPlacement,\"trigger\":\"hover\",\"offset\":\"16\"}},[_c('i',{staticClass:\"tooltip-target\",class:_vm.iClass,style:(_vm.iStyle),attrs:{\"alt\":\"\"}}),_c('template',{slot:\"popover\"},[_c('p',[_vm._v(_vm._s(_vm.tooltipContent))])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class vIconWithTooltip extends Vue {\r\n @Prop() iStyle!: string;\r\n @Prop() iClass!: string;\r\n @Prop() tooltipContent!: string;\r\n @Prop() tooltipPlacement!: string;\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vIconWithTooltip.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vIconWithTooltip.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vIconWithTooltip.vue?vue&type=template&id=95e353c6\"\nimport script from \"./vIconWithTooltip.vue?vue&type=script&lang=ts\"\nexport * from \"./vIconWithTooltip.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport { mapState } from \"vuex\";\r\n\r\n// Translation\r\nimport { TRANSLATIONS_FETCH } from \"@/store/ActionTypes\";\r\n\r\n// Repositories\r\nimport RecipesRepository from \"@/utils/API/RecipesRepository\";\r\nimport SubscriptionRepository from \"@/utils/API/SubscriptionRepository\";\r\nimport IngredientsRepository from \"@/utils/API/IngredientsRepository\";\r\n\r\n//Utils\r\nimport { mapNutritions, round, desanitizeString } from \"@/utils/Helpers\";\r\n\r\n//Models\r\nimport { RecipeCalculate } from \"@/models/Recipes/RecipeCalculate\";\r\nimport { NutrientSourceEnum } from \"@/models/NutrientSource/NutrientSourceEnum\";\r\nimport { IngredientMeasurementEnum } from \"@/models/Ingredient/IngredientMeasurementEnum\";\r\nimport { Measurement } from \"@/models/Ingredient/Measurement\";\r\nimport { SearchIngredients } from \"@/models/Ingredient/SearchIngredients\";\r\nimport { createDefaultIngredient, Ingredient } from \"@/models/Ingredient/Ingredient\";\r\nimport { CreateRestaurantIngredient } from \"@/models/Ingredient/CreateRestaurantIngredient\";\r\nimport { CreateRecipe } from \"@/models/Recipes/CreateRecipe\";\r\nimport { UpdateRecipe } from \"@/models/Recipes/UpdateRecipe\";\r\nimport { AddOnType } from \"@/models/Subscriptions/AddOns/AddOnType\";\r\nimport { RecipeIngredient } from \"@/models/Recipes/RecipeIngredient\";\r\nimport vTabbedContent from \"@/components/vTabbedContent.vue\";\r\n\r\n// Components\r\n// @ts-ignore: Unreachable code error\r\nimport { VueEditor } from \"vue2-editor/dist/vue2-editor.core.js\";\r\nimport vBreadcrumbs from \"@/components/vBreadcrumbs.vue\";\r\nimport vSelect from \"@/components/vSelect.vue\";\r\nimport vSelectFx from \"@/components/vSelectFx.vue\";\r\nimport vNutritionLabel from \"@/components/vNutritionLabel.vue\";\r\nimport vModal from \"@/components/vModal.vue\";\r\nimport vPreLoader from \"@/components/vPreLoader.vue\";\r\nimport vIconWithTooltip from \"@/components/vIconWithTooltip.vue\";\r\nimport vIngredientManagement from \"@/components/vIngredientManagement.vue\";\r\nimport vExportLabel from \"@/components/vExportLabel.vue\";\r\n\r\nvar _ = require(\"lodash\");\r\nvar debounce = require(\"lodash.debounce\");\r\n\r\n//Types\r\ntype SelectObj = { id: number; name: string };\r\ntype ServingWeighMeasurement = {\r\n id: string;\r\n name: string;\r\n};\r\ntype Category = { id: number; name: string; recipes?: any };\r\ntype RecipeCopyMoistureLoss = {\r\n ingredients: any[];\r\n childRecipes: any[];\r\n cookingMethodId: number;\r\n lossAmount: number;\r\n lossType: number;\r\n recipeId: number;\r\n weight: number;\r\n};\r\ntype IngredientReduced = {\r\n id: number;\r\n name: string;\r\n brand: string;\r\n component: string | null;\r\n isAddedSugar: boolean;\r\n allMeasurements: Measurement[];\r\n nutrientSource: NutrientSourceEnum;\r\n energy: number;\r\n fat: number;\r\n protein: number;\r\n carbohydrate: number;\r\n sodium: number;\r\n measurement?: Measurement;\r\n};\r\ntype RecipeReduced = {\r\n id: number;\r\n name: string;\r\n energy: number;\r\n fat: number;\r\n protein: number;\r\n carbohydrate: number;\r\n sodium: number;\r\n isAddedSugar: boolean;\r\n weightPerServing: number;\r\n};\r\n\r\n//Interfaces\r\ninterface RecipesManagementState {\r\n recipe: any;\r\n addCategory: SelectObj;\r\n loadingRecipe: boolean;\r\n}\r\ninterface SearcResults {\r\n customIngredients: IngredientReduced[];\r\n ingredients: IngredientReduced[];\r\n recipes: RecipeReduced[];\r\n dbIngredients: IngredientReduced[];\r\n}\r\n\r\n@Component({\r\n components: {\r\n vBreadcrumbs,\r\n vSelect,\r\n vSelectFx,\r\n VueEditor,\r\n vNutritionLabel,\r\n vModal,\r\n vPreLoader,\r\n vIconWithTooltip,\r\n vIngredientManagement,\r\n vExportLabel,\r\n vTabbedContent,\r\n },\r\n computed: {\r\n ...mapState({\r\n localizationState: (state: any) => state.LocalizationModule,\r\n accountState: (state: any) => state.AccountModule,\r\n }),\r\n },\r\n})\r\nclass RecipesManagement extends Vue {\r\n /** VARIABLES **/\r\n\r\n // Make helper functions available in template by storing them in state\r\n round = round;\r\n desanitizeString = desanitizeString;\r\n\r\n // Flags\r\n canadaFlag = require(\"@/assets/Customer/assets/img/icons/icon-canada-flag.png\");\r\n usaFlag = require(\"@/assets/Customer/assets/img/icons/icon-usa-flag.png\");\r\n customIngrFlag = require(\"@/assets/Customer/assets/img/icons/icon-custom.png\");\r\n customRecipeFlag = require(\"@/assets/Customer/assets/img/icons/icon-custom-recipe.png\");\r\n ukFlag = require(\"@/assets/Customer/assets/img/icons/icon-uk-flag.png\");\r\n sugarAlcoholsFlag = require(\"@/assets/Customer/assets/img/icons/sugar-alcohol-database-icon.png\");\r\n\r\n // Recipe state\r\n recipesManagementState: RecipesManagementState = {\r\n recipe: {\r\n adjustedAddedSugarsValue: null,\r\n childRecipes: [],\r\n cookingMethodId: null,\r\n description: \"\",\r\n id: null,\r\n ingredients: [],\r\n instructions: \"\",\r\n cautionaryMessage: \"\",\r\n lossAmount: 0,\r\n lossType: 0,\r\n name: \"\",\r\n nutritionAnalysis: {},\r\n recipeCategory: {},\r\n recipeServingType: 0,\r\n rawWeight: 0,\r\n rawWeightPerServing: 0,\r\n servingCount: null,\r\n servingQuantityInUnitOfMeasurement: null,\r\n servingUnitOfMeasurement: null,\r\n servings: null,\r\n weight: null,\r\n weightPerServing: null,\r\n yieldFactor: null,\r\n },\r\n addCategory: { id: 0, name: \"\" },\r\n loadingRecipe: false,\r\n };\r\n\r\n selectedOption: string = \"Ingredient name\";\r\n searchOptions: { name: string; value: string }[] = [\r\n { name: \"Ingredient name\", value: \"Ingredient name\" },\r\n { name: \"Food code\", value: \"Food code\" },\r\n ];\r\n\r\n localizationState: any;\r\n accountState: any;\r\n categories: Category[] = [];\r\n\r\n // Booleans for modals\r\n showCategoryModal = false;\r\n showRecipeInst = false;\r\n showIngredientModal = false;\r\n showScaleRecipeModal = false;\r\n showMoistureLossModal = false;\r\n showAddedSugarModal = false;\r\n showServingSizeModal = false;\r\n showAddIngredientModal = false;\r\n showExportLabelModal = false;\r\n\r\n // Search ingredient modal variables\r\n searchResults: SearcResults = {\r\n customIngredients: [],\r\n ingredients: [],\r\n recipes: [],\r\n dbIngredients: [],\r\n };\r\n numberOfSearchClicks = 0; // number of how many times search ingredient button is clicked (needed for version control)\r\n previousSearchTerm = \"\"; // keep track of previously searched term\r\n includeCustomIngredients = true; // for include custom ingredient checkbox\r\n selectAllUSAnutrients = false;\r\n ingredientSearchString = \"\"; // binding of the user input for searching ingredients\r\n hasAutoCorrection = false; //autocorrect flag for misspelled word\r\n autoCorrection = \"\"; // auto correct frase\r\n autoCorrectionHtml = \"\"; // html content containing auto corrected phrase\r\n searchLoading = false; // show preloader while searching\r\n noResult = false; // show message if there's no result\r\n\r\n // Add new ingredient modal variables\r\n newCustomIngredient: Ingredient = createDefaultIngredient();\r\n addCustomIngredientModalTitle = \"\"; // modal title when adding custom ingredient, title can also be 'edit'\r\n\r\n // Scale recipe variables\r\n scaledRecipeServingSize = null; // the serving size that the user enters in the scale modal, divide the current serving size by this number to get coefficient for scaling\r\n\r\n // Moisture loss variables\r\n moistureLossValue = 0;\r\n recipeWeightLossValue = 0;\r\n moistureLossSelectedMeasurement: SelectObj = { id: 0, name: \"g\" };\r\n recipeWeightLossSelectedMeasurement: SelectObj = { id: 0, name: \"g\" };\r\n moistureLossMeasurementOptions: SelectObj[] = [\r\n { id: 0, name: \"g\" },\r\n { id: 1, name: \"Percent\" },\r\n ];\r\n recipeWeightLossMeasurementOptions: SelectObj[] = [\r\n { id: 0, name: \"g\" },\r\n { id: 1, name: \"Percent\" },\r\n ];\r\n invalidMoistureLossValue = false;\r\n invalidRecipeWeightLossValue = false;\r\n selectedCookingMethod: SelectObj = { id: -1, name: \"Not specified\" };\r\n cookingMethods: SelectObj[] = [];\r\n foodGroupClasses: SelectObj[] = [];\r\n subFoodGroupClasses: SelectObj[] = [];\r\n foodGroupClassesMatrix: { class: string; subClass: SelectObj[] }[] = [];\r\n recipeCopy: RecipeCopyMoistureLoss = {\r\n ingredients: [],\r\n childRecipes: [],\r\n cookingMethodId: 0,\r\n lossAmount: 0,\r\n lossType: 0,\r\n recipeId: 0,\r\n weight: 0,\r\n };\r\n\r\n // Serving size modal variables\r\n allIngredientsHaveLiquidVolumes: Boolean = true;\r\n selectedServingWeightMeasurement: ServingWeighMeasurement = {\r\n id: \"g\",\r\n name: \"g\",\r\n };\r\n servingCount = 1;\r\n servingQuantityInUnitOfMeasurement = 1;\r\n recipeServingType = 0;\r\n\r\n nutrientCountryNames: string[] = [\r\n \"Canada\",\r\n \"SR Legacy\",\r\n \"UK\",\r\n \"Branded\",\r\n \"Foundation\",\r\n ];\r\n nutrientSources: NutrientSourceEnum[] = []; // Nutrient source countries\r\n nutrientsListForSearch: number[] = []; // Ids of all selected checkboxes in add ingredient\r\n\r\n recipeSaved: boolean = true; // Track if the user saved the recipe after making changes so that buttons get enabled\r\n\r\n calculationMethodModal = {\r\n isOpen: false,\r\n selectedCalculationMethod: null,\r\n selectedDailyValueCalculation: null,\r\n };\r\n\r\n /** WATCHERS **/\r\n @Watch(\"nutrientsListForSearch\")\r\n onNutrientsList(val: number[], oldVal: number[]) {\r\n if (\r\n val.includes(NutrientSourceEnum.US) &&\r\n val.includes(NutrientSourceEnum.Branded) &&\r\n val.includes(NutrientSourceEnum.Foundation) &&\r\n val.includes(NutrientSourceEnum.Fndds)\r\n ) {\r\n this.selectAllUSAnutrients = true;\r\n } else {\r\n this.selectAllUSAnutrients = false;\r\n }\r\n }\r\n\r\n /** METHODS **/\r\n get translations() {\r\n return this.localizationState.translations;\r\n }\r\n // Check if user has sugar alcohol addon\r\n get showSugarAlcoholDatabase() {\r\n if (this.accountState.userDetails.addOns.length > 0) {\r\n return this.accountState.userDetails.addOns\r\n .map((x: any) => x.addOn)\r\n .includes(AddOnType.SugarAlcohols);\r\n }\r\n return false;\r\n }\r\n\r\n get yieldAdjustmentTabs() {\r\n // TODO\r\n let tabsArray = [\r\n { id: 1, name: this.translations.get(\"yield-adjustment_tab_moisture\") },\r\n // {\r\n // id: 2,\r\n // name: this.translations.get(\"yield-adjustment_tab_weight-loss\"),\r\n // },\r\n ];\r\n return tabsArray;\r\n }\r\n\r\n /**\r\n * Count total results\r\n */\r\n get totalResults() {\r\n if (this.selectedOption === \"Ingredient name\") {\r\n return (\r\n this.searchResults.ingredients.length +\r\n this.searchResults.recipes.length +\r\n this.searchResults.customIngredients.length\r\n );\r\n } else if (this.selectedOption === \"Food code\") {\r\n return this.searchResults.dbIngredients.length;\r\n }\r\n }\r\n /**\r\n * Remove recipes from search results that are already ingredients of the given recipe\r\n */\r\n get filterSubRecipes() {\r\n let filtered: RecipeReduced[] = [];\r\n this.searchResults.recipes.map((sub) => {\r\n if (sub.id !== this.recipesManagementState.recipe.id) {\r\n filtered.push(sub);\r\n }\r\n });\r\n return filtered;\r\n }\r\n\r\n get servingSizeMeasurementOptions() {\r\n return this.allIngredientsHaveLiquidVolumes\r\n ? [\r\n { id: IngredientMeasurementEnum.Gram.toString(), name: \"g\" },\r\n { id: IngredientMeasurementEnum.Milliliter.toString(), name: \"ml\" },\r\n { id: IngredientMeasurementEnum.Ounce.toString(), name: \"oz\" },\r\n {\r\n id: IngredientMeasurementEnum.FluidOunce.toString(),\r\n name: \"fl. oz\",\r\n },\r\n ]\r\n : [\r\n { id: IngredientMeasurementEnum.Gram.toString(), name: \"g\" },\r\n { id: IngredientMeasurementEnum.Ounce.toString(), name: \"oz\" },\r\n ];\r\n }\r\n selectOption(option: { name: string; value: string }) {\r\n this.selectedOption = option.name;\r\n }\r\n\r\n checkForLiquidVolumes() {\r\n // Check if all ingredients and sub recipes of the recipe have liquid measurements for the serving size dropdown options\r\n this.allIngredientsHaveLiquidVolumes =\r\n this.recipesManagementState.recipe.ingredients.filter((element: any) => {\r\n return element.ingredient.hasVolumeUnitOfMeasurement === false;\r\n }).length > 0 ||\r\n this.recipesManagementState.recipe.childRecipes.filter((element: any) => {\r\n return element.hasVolumeUnitOfMeasurement === false;\r\n }).length > 0\r\n ? false\r\n : true;\r\n }\r\n // Select option for primary food group\r\n getPrimaryFoodGroupName(ingr: any): string {\r\n const foodGroup: SelectObj = _.has(ingr.foodGroupClassification, \"class\")\r\n ? this.foodGroupClasses.find(\r\n (x) => x.name == ingr.foodGroupClassification.class\r\n )!\r\n : { id: 0, name: \"None Applicable\" };\r\n return foodGroup.name;\r\n }\r\n\r\n getSelectedServingWeight(measurement: string) {\r\n this.selectedServingWeightMeasurement.name = measurement;\r\n switch (measurement) {\r\n case \"g\":\r\n this.selectedServingWeightMeasurement.id =\r\n IngredientMeasurementEnum.Gram.toString();\r\n case \"ml\":\r\n this.selectedServingWeightMeasurement.id =\r\n IngredientMeasurementEnum.Milliliter.toString();\r\n case \"oz\":\r\n this.selectedServingWeightMeasurement.id =\r\n IngredientMeasurementEnum.Ounce.toString();\r\n case \"fl. oz\":\r\n this.selectedServingWeightMeasurement.id =\r\n IngredientMeasurementEnum.FluidOunce.toString();\r\n }\r\n }\r\n\r\n loadRecipeDetails() {\r\n this.recipesManagementState.loadingRecipe = true;\r\n RecipesRepository.getRecipeDetails(parseInt(this.$route.params.id))\r\n .then((response: any) => {\r\n if (response.data.result) {\r\n this.calculationMethodModal.selectedDailyValueCalculation =\r\n response.data.result.dailyValueCalculationMethod;\r\n this.recipesManagementState.recipe = response.data.result;\r\n this.recipesManagementState.recipe.nutritionAnalysis = mapNutritions(\r\n this.recipesManagementState.recipe.nutritionAnalysis,\r\n this.calculationMethodModal.selectedDailyValueCalculation\r\n );\r\n // Define value for serving count in case serving weight is chosen, set servings as recommendation for the user\r\n this.servingCount =\r\n this.recipesManagementState.recipe.servingCount != null\r\n ? Math.round(\r\n this.recipesManagementState.recipe.servingCount * 100\r\n ) / 100\r\n : Math.round(this.recipesManagementState.recipe.servings * 100) /\r\n 100;\r\n // Define value for serving weight in case serving count is chosen, set weightPerServing as recommendation for the user\r\n this.servingQuantityInUnitOfMeasurement =\r\n this.recipesManagementState.recipe\r\n .servingQuantityInUnitOfMeasurement != null\r\n ? Math.round(\r\n this.recipesManagementState.recipe\r\n .servingQuantityInUnitOfMeasurement * 100\r\n ) / 100\r\n : Math.round(\r\n this.recipesManagementState.recipe.weightPerServing * 100\r\n ) / 100;\r\n if (\r\n this.recipesManagementState.recipe\r\n .servingQuantityInUnitOfMeasurement != null\r\n ) {\r\n this.getSelectedServingWeight(\r\n this.recipesManagementState.recipe.servingUnitOfMeasurement\r\n );\r\n }\r\n this.recipeServingType =\r\n this.recipesManagementState.recipe.recipeServingType;\r\n this.recipesManagementState.recipe.ingredients.map(\r\n (ingredient: any) => {\r\n if (ingredient.foodGroupClassification == null) {\r\n ingredient.foodGroupClassification = {\r\n relatedFoodGroupClassifications: [],\r\n };\r\n } else {\r\n // ReleatedFoodGroupClassifications needs to have a name and id to fit the select requirements\r\n ingredient.foodGroupClassification.relatedFoodGroupClassifications =\r\n this.transformIntoSelectObject(\r\n ingredient.foodGroupClassification\r\n .relatedFoodGroupClassifications\r\n );\r\n }\r\n return;\r\n }\r\n );\r\n this.recipesManagementState.recipe.childRecipes.map(\r\n (childRecipe: any) => {\r\n if (childRecipe.foodGroupClassification == null) {\r\n childRecipe.foodGroupClassification = {\r\n relatedFoodGroupClassifications: [],\r\n };\r\n } else {\r\n childRecipe.foodGroupClassification.relatedFoodGroupClassifications =\r\n this.transformIntoSelectObject(\r\n childRecipe.foodGroupClassification\r\n .relatedFoodGroupClassifications\r\n );\r\n }\r\n return;\r\n }\r\n );\r\n } else {\r\n this.$router.push({ name: \"recipesAdd\" });\r\n }\r\n this.recipesManagementState.loadingRecipe = false;\r\n this.calculateNutritions();\r\n this.setSubFoodGroupsMatrix();\r\n this.setRecipeCookingMethodAndLoss();\r\n this.checkForLiquidVolumes();\r\n })\r\n .catch((error: any) => {\r\n this.$router.push({ name: \"recipesAdd\" });\r\n });\r\n }\r\n\r\n fetchCategories() {\r\n RecipesRepository.listRecipeCategories().then((response) => {\r\n response.data.result && response.data.result.length\r\n ? (this.categories = [\r\n { id: -1, name: \"Add new category\" },\r\n ...response.data.result,\r\n ])\r\n : (this.categories = [{ id: -1, name: \"Add new category\" }]);\r\n });\r\n }\r\n\r\n selectCategory(category: { id: number; name: string; recipes?: any }) {\r\n // If add category is clicked -> open modal, else -> assign value from selected element to recipe category\r\n category.id == -1\r\n ? (this.showCategoryModal = true)\r\n : (this.recipesManagementState.recipe.recipeCategory.id = category.id);\r\n }\r\n\r\n addCategory() {\r\n // @ts-ignore\r\n this.$snotify.async(\r\n this.translations.get(\"rec_category_adding\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n RecipesRepository.createRecipeCategory({\r\n name: this.recipesManagementState.addCategory.name,\r\n })\r\n .then((response) => {\r\n resolve({\r\n body: this.translations.get(\"rec_category_added\"),\r\n });\r\n\r\n this.categories.push({\r\n id: response.data.result.id,\r\n name: response.data.result.name,\r\n recipes: [],\r\n });\r\n this.recipesManagementState.recipe.recipeCategory = {\r\n ...response.data.result,\r\n };\r\n\r\n // reset fields\r\n this.recipesManagementState.addCategory = { id: 0, name: \"\" };\r\n this.showCategoryModal = false;\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n\r\n cancelAddCategory() {\r\n this.showCategoryModal = false;\r\n this.recipesManagementState.addCategory = { id: 0, name: \"\" };\r\n }\r\n\r\n openSearchIngredientsModal() {\r\n this.showIngredientModal = true;\r\n this.numberOfSearchClicks = 0;\r\n }\r\n\r\n nutrientSourceName(ingr: any) {\r\n if (ingr.nutrientSource != null && ingr.nutrientSource <= 4) {\r\n return this.nutrientCountryNames[ingr.nutrientSource];\r\n } else if (ingr.nutrientSource != null && ingr.nutrientSource == 5) {\r\n return \"Sugar Alcohols\";\r\n } else if (ingr.nutrientSource != null && ingr.nutrientSource == 6) {\r\n return \"FNDDS\";\r\n } else {\r\n return \"Custom Ingredients\";\r\n }\r\n }\r\n\r\n shouldShowNutrientSource(nutrientSource: NutrientSourceEnum) {\r\n return this.nutrientSources.indexOf(nutrientSource) > -1;\r\n }\r\n\r\n allUSDAnutrientDatabases() {\r\n this.selectAllUSAnutrients = !this.selectAllUSAnutrients;\r\n if (this.selectAllUSAnutrients) {\r\n if (!this.nutrientsListForSearch.includes(NutrientSourceEnum.US)) {\r\n this.nutrientsListForSearch.push(NutrientSourceEnum.US);\r\n }\r\n if (!this.nutrientsListForSearch.includes(NutrientSourceEnum.Branded)) {\r\n this.nutrientsListForSearch.push(NutrientSourceEnum.Branded);\r\n }\r\n if (\r\n !this.nutrientsListForSearch.includes(NutrientSourceEnum.Foundation)\r\n ) {\r\n this.nutrientsListForSearch.push(NutrientSourceEnum.Foundation);\r\n }\r\n if (!this.nutrientsListForSearch.includes(NutrientSourceEnum.Fndds)) {\r\n this.nutrientsListForSearch.push(NutrientSourceEnum.Fndds);\r\n }\r\n } else {\r\n var nutrientSources = [];\r\n for (var i = 0; i < this.nutrientsListForSearch.length; i++) {\r\n if (\r\n this.nutrientsListForSearch[i] !== NutrientSourceEnum.US &&\r\n this.nutrientsListForSearch[i] !== NutrientSourceEnum.Branded &&\r\n this.nutrientsListForSearch[i] !== NutrientSourceEnum.Foundation &&\r\n this.nutrientsListForSearch[i] !== NutrientSourceEnum.Fndds\r\n ) {\r\n nutrientSources.push(this.nutrientsListForSearch[i]);\r\n }\r\n }\r\n this.nutrientsListForSearch = nutrientSources;\r\n }\r\n }\r\n /**\r\n * check for spelling errors on enetered serach term\r\n */\r\n checkForSpelling() {\r\n debounce(() => {\r\n var serachList = this.ingredientSearchString.trim().split(\" \");\r\n IngredientsRepository.getAutoCorrectSerchTerm(serachList).then(\r\n (response) => {\r\n this.autoCorrectionHtml = \"\";\r\n this.autoCorrection = \"\";\r\n var term = response.data.result;\r\n this.hasAutoCorrection = false;\r\n for (var i = 0; i < term.length; i++) {\r\n var word = term[i];\r\n if (word.isCorrected) {\r\n this.hasAutoCorrection = true;\r\n this.autoCorrectionHtml +=\r\n '' +\r\n word.searchTerm +\r\n \"\";\r\n this.autoCorrection += word.searchTerm;\r\n } else {\r\n this.autoCorrectionHtml += word.searchTerm;\r\n this.autoCorrection += word.searchTerm;\r\n }\r\n if (i < term.length - 1) {\r\n this.autoCorrectionHtml += \" \";\r\n this.autoCorrection += \" \";\r\n }\r\n }\r\n }\r\n );\r\n }, 600);\r\n }\r\n /** change search term with corrected term\r\n */\r\n onCorrectSerachTerm() {\r\n this.ingredientSearchString = this.autoCorrection;\r\n this.hasAutoCorrection = false;\r\n this.autoCorrectionHtml = \"\";\r\n this.autoCorrection = \"\";\r\n }\r\n /**\r\n * add class to table when a dropdown is opened so it can overflow the container\r\n */\r\n openMenu() {\r\n var moistureLossTable = document.getElementById(\r\n \"table-moisture-loss-classification\"\r\n );\r\n var recipeIngredientsTable = document.getElementById(\r\n \"ingr-and-recipe-table\"\r\n );\r\n var searchIngredientsTable = document.getElementById(\"search-ingr-table\");\r\n\r\n if (moistureLossTable) {\r\n moistureLossTable!.classList.add(\"overflow-visible\");\r\n moistureLossTable!.classList.remove(\"overflow-hidden\");\r\n }\r\n recipeIngredientsTable!.classList.add(\"overflow-visible\");\r\n recipeIngredientsTable!.classList.remove(\"overflow-hidden\");\r\n if (searchIngredientsTable) {\r\n searchIngredientsTable!.classList.add(\"overflow-visible\");\r\n searchIngredientsTable!.classList.remove(\"overflow-hidden\");\r\n }\r\n }\r\n /**\r\n * remove class from table when a dropdown is closed so it can be scrolled horizontally on small devices\r\n */\r\n closeMenu() {\r\n var moistureLossTable = document.getElementById(\r\n \"table-moisture-loss-classification\"\r\n );\r\n var recipeIngredientsTable = document.getElementById(\r\n \"ingr-and-recipe-table\"\r\n );\r\n var searchIngredientsTable = document.getElementById(\"search-ingr-table\");\r\n\r\n if (moistureLossTable) {\r\n moistureLossTable!.classList.add(\"overflow-hidden\");\r\n moistureLossTable!.classList.remove(\"overflow-visible\");\r\n }\r\n recipeIngredientsTable!.classList.add(\"overflow-hidden\");\r\n recipeIngredientsTable!.classList.remove(\"overflow-visible\");\r\n if (searchIngredientsTable) {\r\n searchIngredientsTable!.classList.add(\"overflow-hidden\");\r\n searchIngredientsTable!.classList.remove(\"overflow-visible\");\r\n }\r\n }\r\n /**\r\n * keep track of how many times the user makes a search but does not select any of the ingredients\r\n */\r\n sendIngredientSearchFailure() {\r\n if (this.numberOfSearchClicks > 0) {\r\n IngredientsRepository.createIngredientSearchFailure({\r\n searchTerm: this.previousSearchTerm,\r\n searchResultsCount: this.totalResults,\r\n });\r\n }\r\n }\r\n\r\n searchIngredients() {\r\n this.sendIngredientSearchFailure();\r\n this.searchLoading = true;\r\n this.numberOfSearchClicks += 1;\r\n\r\n if (\r\n this.numberOfSearchClicks > 3 &&\r\n this.accountState.userDetails.isTrial\r\n ) {\r\n this.showZendesk();\r\n }\r\n\r\n this.previousSearchTerm = this.ingredientSearchString;\r\n\r\n const model: SearchIngredients = {\r\n nutrientSources: this.nutrientsListForSearch,\r\n maxResultsCount: 100,\r\n includeCustomIngredients: this.includeCustomIngredients,\r\n searchTerm: this.ingredientSearchString,\r\n recipeId:\r\n this.recipesManagementState.recipe.id > 0\r\n ? this.recipesManagementState.recipe.id\r\n : null,\r\n };\r\n\r\n if (this.selectedOption === \"Ingredient name\") {\r\n IngredientsRepository.searchIngredients(model).then((response) => {\r\n this.handleIngredientResponse(response);\r\n });\r\n } else if (this.selectedOption === \"Food code\") {\r\n IngredientsRepository.searchIngredientsByFoodCode(model).then(\r\n (response) => {\r\n this.handleIngredientResponse(response);\r\n }\r\n );\r\n }\r\n }\r\n\r\n handleIngredientResponse(response) {\r\n this.searchResults.ingredients.length = 0;\r\n this.searchResults.recipes.length = 0;\r\n this.searchResults.customIngredients.length = 0;\r\n this.searchResults.dbIngredients.length = 0;\r\n\r\n if (response.data.result.dbIngredients !== null) {\r\n response.data.result.dbIngredients.map((ingr: IngredientReduced) => {\r\n ingr.measurement = { ...ingr.allMeasurements[0] };\r\n this.searchResults.ingredients.push(ingr);\r\n });\r\n }\r\n\r\n if (response.data.result.customIngredients != null) {\r\n response.data.result.customIngredients.map((ingr: IngredientReduced) => {\r\n ingr.measurement = { ...ingr.allMeasurements[0] };\r\n this.searchResults.customIngredients.push(ingr);\r\n });\r\n }\r\n\r\n if (response.data.result.recipes !== null) {\r\n this.searchResults.recipes = response.data.result.recipes;\r\n }\r\n\r\n this.searchLoading = false;\r\n\r\n if (\r\n response.data.result.dbIngredients.length === 0 &&\r\n response.data.result.customIngredients.length === 0 &&\r\n response.data.result.recipes.length === 0\r\n ) {\r\n this.noResult = true;\r\n } else {\r\n this.noResult = false;\r\n }\r\n }\r\n\r\n selectMeasurementInAddIngredient(\r\n measurement: { id: number; name: string; weightInGrams: number },\r\n ingredient: IngredientReduced\r\n ) {\r\n ingredient.measurement = { ...measurement };\r\n }\r\n openAddIngredientModal() {\r\n this.showAddIngredientModal = true;\r\n this.addCustomIngredientModalTitle = this.translations.get(\r\n \"ingr_modal_add_title\"\r\n );\r\n }\r\n submitNewIngredient(\r\n ingredient: Ingredient,\r\n nutrients: {\r\n value: number;\r\n nutrientUnitId: number;\r\n }[]\r\n ) {\r\n let newIngredient: CreateRestaurantIngredient = {\r\n name: this.newCustomIngredient.name,\r\n weightInGrams: this.newCustomIngredient.weightInGrams,\r\n measurements: this.newCustomIngredient.allMeasurements,\r\n unitOfMeasurement: this.newCustomIngredient.unitOfMeasurement,\r\n categoryDensityId: this.newCustomIngredient.categoryDensityId,\r\n quantityInUnitOfMeasurement:\r\n this.newCustomIngredient.quantityInUnitOfMeasurement,\r\n nutrients: nutrients,\r\n subIngredients: ingredient.subIngredients,\r\n };\r\n\r\n // @ts-ignore\r\n this.$snotify.async(\r\n this.translations.get(\"ingr_toastr_adding\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n IngredientsRepository.createRestaurantIngredient(newIngredient)\r\n .then((response) => {\r\n this.showAddIngredientModal = false;\r\n this.ingredientSearchString = response.data.result.name;\r\n this.searchIngredients();\r\n\r\n resolve({\r\n body: this.translations.get(\r\n \"ingr_toastr_added\",\r\n newIngredient.name\r\n ),\r\n });\r\n this.newCustomIngredient = this.createInstanceOfIngredient();\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n closeAddIngredientModal() {\r\n this.showAddIngredientModal = false;\r\n this.newCustomIngredient = this.createInstanceOfIngredient();\r\n }\r\n addIngredient(ingr: IngredientReduced) {\r\n if (ingr) {\r\n IngredientsRepository.getIngredientDetails(ingr.id).then((response) => {\r\n let fullIngredient: Ingredient = response.data.result;\r\n this.recipesManagementState.recipe.ingredients.push({\r\n ingredient: fullIngredient,\r\n measurement: ingr.measurement\r\n ? ingr.measurement\r\n : ingr.allMeasurements[0],\r\n quantity: 1,\r\n isAddedSugar: ingr.isAddedSugar,\r\n foodGroupClassification: { relatedFoodGroupClassifications: [] },\r\n foodGroupClassificationId: null,\r\n });\r\n\r\n // Check if the newly added ingredient has a liquid volume measurement, if it doesn't then change the serving size to serving count\r\n if (\r\n !fullIngredient.hasVolumeUnitOfMeasurement &&\r\n (this.selectedServingWeightMeasurement.id ==\r\n IngredientMeasurementEnum.Milliliter.toString() ||\r\n this.selectedServingWeightMeasurement.id ==\r\n IngredientMeasurementEnum.FluidOunce.toString())\r\n ) {\r\n this.servingCount = 1;\r\n this.setRecipeServingCount();\r\n } else {\r\n this.calculateNutritions();\r\n }\r\n this.disableButtonsBeforeSave();\r\n this.resetState();\r\n this.submit(\"\", null);\r\n });\r\n }\r\n }\r\n addSubRecipe(recipe: RecipeReduced) {\r\n if (recipe) {\r\n RecipesRepository.getRecipeDetails(recipe.id).then((response) => {\r\n let fullRecipe: any = response.data.result;\r\n fullRecipe.nutritionAnalysis = mapNutritions(\r\n fullRecipe.nutritionAnalysis\r\n );\r\n this.recipesManagementState.recipe.childRecipes.push({\r\n recipe: fullRecipe,\r\n quantity: 1,\r\n isAddedSugar: recipe.isAddedSugar,\r\n weightPerServing: fullRecipe.weightPerServing,\r\n });\r\n\r\n // Check if the newly added recipe has a liquid volume measurement, if it doesn't then change the serving size to serving count\r\n if (\r\n !fullRecipe.hasVolumeUnitOfMeasurement &&\r\n (this.selectedServingWeightMeasurement.id ==\r\n IngredientMeasurementEnum.Milliliter.toString() ||\r\n this.selectedServingWeightMeasurement.id ==\r\n IngredientMeasurementEnum.FluidOunce.toString())\r\n ) {\r\n this.servingCount = 1;\r\n this.setRecipeServingCount();\r\n }\r\n\r\n this.resetState();\r\n });\r\n }\r\n }\r\n closeSearchIngredientsModal() {\r\n this.showIngredientModal = false;\r\n this.sendIngredientSearchFailure();\r\n }\r\n onDoneBtn() {\r\n this.showIngredientModal = false;\r\n this.sendIngredientSearchFailure();\r\n (window).zE(\"webWidget\", \"close\");\r\n }\r\n selectMeasurementForMoistureLoss(measurement: SelectObj) {\r\n this.moistureLossSelectedMeasurement = { ...measurement };\r\n }\r\n selectMeasurementForRecipeWeightLoss(measurement: SelectObj) {\r\n this.recipeWeightLossSelectedMeasurement = { ...measurement };\r\n }\r\n selectCookingMethod(cookingMethod: SelectObj) {\r\n this.selectedCookingMethod = { ...cookingMethod };\r\n }\r\n selectPrimaryFoodGroup(foodGroup: SelectObj, ingredient: any) {\r\n ingredient.foodGroupClassification.class = foodGroup.name;\r\n ingredient.foodGroupClassification.id = foodGroup.id;\r\n\r\n const classificationName =\r\n foodGroup != null ? foodGroup.name : \"None Applicable\";\r\n if (classificationName != \"None Applicable\") {\r\n ingredient.foodGroupClassification.subClass = foodGroup.name;\r\n }\r\n const includedInMatrix = this.foodGroupClassesMatrix.find(\r\n (x) => x.class == classificationName\r\n );\r\n\r\n if (\r\n includedInMatrix != null &&\r\n includedInMatrix.subClass != null &&\r\n includedInMatrix.subClass.length\r\n ) {\r\n // set sub classifications for ingredient\r\n let subClassifications = this.foodGroupClassesMatrix.find(\r\n (x) => x.class == classificationName\r\n )!.subClass;\r\n\r\n ingredient.foodGroupClassification.relatedFoodGroupClassifications =\r\n this.transformIntoSelectObject(subClassifications);\r\n ingredient.foodGroupClassification.id = ingredient.foodGroupClassification\r\n .relatedFoodGroupClassifications.length\r\n ? ingredient.foodGroupClassification.relatedFoodGroupClassifications[0]\r\n .id\r\n : -1;\r\n this.$forceUpdate();\r\n } else {\r\n // Send request to get sub classification, set them to the ingredient and set them in the matrix\r\n RecipesRepository.listFoodGroupSubClasses({\r\n PrimaryClass: classificationName,\r\n }).then((response) => {\r\n const foodGroupSubClasses = response.data.result;\r\n this.foodGroupClassesMatrix.push({\r\n class: classificationName,\r\n subClass: [...foodGroupSubClasses],\r\n });\r\n ingredient.foodGroupClassification.relatedFoodGroupClassifications =\r\n this.transformIntoSelectObject(foodGroupSubClasses);\r\n ingredient.foodGroupClassification.id = ingredient\r\n .foodGroupClassification.relatedFoodGroupClassifications.length\r\n ? ingredient.foodGroupClassification\r\n .relatedFoodGroupClassifications[0].id\r\n : -1;\r\n this.$forceUpdate();\r\n });\r\n }\r\n }\r\n selectSecondaryFoodGroup(\r\n subClassification: SelectObj,\r\n ingredient: RecipeIngredient\r\n ) {\r\n ingredient.foodGroupClassification.id = subClassification.id;\r\n }\r\n selectMeasurement(\r\n measurement: { id: number; name: string; weightInGrams: number },\r\n ingredient: RecipeIngredient\r\n ) {\r\n ingredient.measurement = { ...measurement };\r\n this.calculateNutritions();\r\n this.disableButtonsBeforeSave();\r\n }\r\n setRecipeCookingMethodAndLoss() {\r\n if (this.recipesManagementState.recipe) {\r\n if (this.recipesManagementState.recipe.lossAmount != null) {\r\n this.moistureLossValue = this.recipesManagementState.recipe.lossAmount;\r\n }\r\n\r\n if (this.recipesManagementState.recipe.lossType != null) {\r\n let measurementObj: SelectObj =\r\n this.moistureLossMeasurementOptions.find(\r\n (m: any) => m.id === this.recipesManagementState.recipe.lossType\r\n )!;\r\n this.selectMeasurementForMoistureLoss(measurementObj);\r\n //TODO for Recipe Weight Loss\r\n }\r\n\r\n if (this.recipesManagementState.recipe.cookingMethodId == null)\r\n this.recipesManagementState.recipe.cookingMethodId = -1;\r\n const cookingMethod: SelectObj = this.cookingMethods.find(\r\n (cookingMethod: any) =>\r\n cookingMethod.id ===\r\n this.recipesManagementState.recipe.cookingMethodId\r\n )!;\r\n this.selectCookingMethod(cookingMethod);\r\n }\r\n }\r\n setSubFoodGroupsMatrix() {\r\n // Food classification\r\n const classificationsArray: any[] = [];\r\n if (\r\n this.recipesManagementState.recipe &&\r\n this.recipesManagementState.recipe.ingredients != null &&\r\n this.recipesManagementState.recipe.ingredients.length\r\n ) {\r\n for (const ingredient of this.recipesManagementState.recipe.ingredients) {\r\n let ingredientClass =\r\n ingredient.foodGroupClassification != null\r\n ? ingredient.foodGroupClassification.class\r\n : \"\";\r\n let ingredientSubclass =\r\n ingredient.foodGroupClassification != null &&\r\n ingredient.foodGroupClassification.relatedFoodGroupClassifications !=\r\n null\r\n ? ingredient.foodGroupClassification.relatedFoodGroupClassifications\r\n : [];\r\n if (\r\n !classificationsArray.some((x: any) => x.class === ingredientClass)\r\n ) {\r\n classificationsArray.push({\r\n class: ingredientClass,\r\n subClass: ingredientSubclass,\r\n });\r\n } else {\r\n if (ingredientSubclass.length) {\r\n classificationsArray.find(\r\n (x) => x.class === ingredientClass\r\n ).subClass = [...ingredientSubclass];\r\n }\r\n }\r\n }\r\n }\r\n this.foodGroupClassesMatrix = [...classificationsArray];\r\n }\r\n\r\n onEditorTextChange() {\r\n this.disableButtonsBeforeSave();\r\n }\r\n\r\n isScaledRecipeServingSizeValid(scaledRecipeServingSize) {\r\n if (scaledRecipeServingSize != null && scaledRecipeServingSize > 0) {\r\n return true;\r\n } else return false;\r\n }\r\n scaleRecipe() {\r\n if (!this.isScaledRecipeServingSizeValid(this.scaledRecipeServingSize)) {\r\n // Don't allow negative values or zero\r\n this.$snotify.error(this.translations.get(\"rec_invalid_scaling_value\"));\r\n return;\r\n }\r\n if (this.servingCount != null && this.servingCount != 0) {\r\n var scalingCoefficient = this.scaledRecipeServingSize / this.servingCount;\r\n if (this.recipesManagementState.recipe.ingredients.length > 0) {\r\n // Multiply the quantity of each ingredient by the coefficient so that the size per serving stays exactly the same\r\n this.recipesManagementState.recipe.ingredients.map(\r\n (ingr: RecipeIngredient) =>\r\n (ingr.quantity = round(ingr.quantity * scalingCoefficient, 2))\r\n );\r\n }\r\n if (this.recipesManagementState.recipe.childRecipes.length > 0) {\r\n // Same goes for quantity of child recipes added as ingredients\r\n this.recipesManagementState.recipe.childRecipes.map(\r\n (childRecipe: any) =>\r\n (childRecipe.quantity = round(\r\n childRecipe.quantity * scalingCoefficient,\r\n 2\r\n ))\r\n );\r\n }\r\n this.servingCount = this.scaledRecipeServingSize;\r\n this.setRecipeServingCount(); // Set the new serving size to be the entered value in the modal\r\n }\r\n this.toggleScaleRecipeModal(); // Close modal\r\n }\r\n updateMoistureLoss() {\r\n if (!this.checkIfMoustureLossValueIsValid()) {\r\n this.$snotify.error(\r\n this.translations.get(\"rec_invalid_moisture_loss_value\")\r\n );\r\n return;\r\n }\r\n if (this.selectedCookingMethod.name == \"Not specified\") {\r\n this.$snotify.error(\r\n this.translations.get(\"UpdateCookingMethodSpecification\")\r\n );\r\n return;\r\n }\r\n // @ts-ignore\r\n this.$snotify.async(\r\n this.translations.get(\"rec_updating_yield_adjustments\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n const model = {\r\n Ingredients: this.recipeCopy.ingredients.map((ingr: any) => {\r\n return {\r\n RecipeComponentId: ingr.id,\r\n FoodGroupClassificationId:\r\n ingr.foodGroupClassification != null &&\r\n ingr.foodGroupClassification.id != -1\r\n ? ingr.foodGroupClassification.id\r\n : null,\r\n };\r\n }),\r\n Subrecipes: this.recipeCopy.childRecipes.map((childRecipe: any) => {\r\n return {\r\n RecipeComponentId: childRecipe.id,\r\n FoodGroupClassificationId:\r\n childRecipe.foodGroupClassification != null &&\r\n childRecipe.foodGroupClassification.id != -1\r\n ? childRecipe.foodGroupClassification.id\r\n : null,\r\n };\r\n }),\r\n CookingMethodId:\r\n this.selectedCookingMethod.id > 0\r\n ? this.selectedCookingMethod.id\r\n : null,\r\n LossAmount: Math.abs(this.moistureLossValue),\r\n LossType: this.moistureLossSelectedMeasurement.id,\r\n RecipeId: this.recipesManagementState.recipe.id,\r\n };\r\n RecipesRepository.updateRecipeFoodClassifications(model)\r\n .then((response) => {\r\n resolve({\r\n body: this.translations.get(\"rec_updated_yield_adjustments\"),\r\n });\r\n this.loadRecipeDetails();\r\n this.toggleMoistureLossModal();\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n checkIfMoustureLossValueIsValid() {\r\n let isValid = true;\r\n\r\n const weightInGrams =\r\n this.recipeCopy.weight != null ? this.recipeCopy.weight : 0;\r\n\r\n // can be 0 for grams and 1 for percent\r\n const selectedOptionForMoistureLoss =\r\n this.moistureLossSelectedMeasurement.id;\r\n\r\n if (selectedOptionForMoistureLoss == 0) {\r\n // Moisture loss can't be greater than recipe weight in grams\r\n if (this.moistureLossValue >= weightInGrams) {\r\n isValid = false;\r\n this.invalidMoistureLossValue = true;\r\n }\r\n } else {\r\n // Moisture loss can't be equal or greater than 100%\r\n if (this.moistureLossValue >= 100) {\r\n isValid = false;\r\n this.invalidMoistureLossValue = true;\r\n }\r\n }\r\n return isValid;\r\n }\r\n updateRecipeWeightLoss() {\r\n //TODO\r\n }\r\n checkIfRecipeWeightLossValueIsValid() {\r\n //TODO\r\n }\r\n toggleRecipeWeightLossModal() {\r\n this.showMoistureLossModal = !this.showMoistureLossModal;\r\n //TODO\r\n }\r\n resetAdjustments() {\r\n this.recipesManagementState.recipe.adjustedAddedSugarsValue = null;\r\n }\r\n\r\n setRecipeServingCount() {\r\n this.recipeServingType = 0;\r\n // Reset serving weight if customer choose radio button for serving count\r\n this.recipesManagementState.recipe.servingQuantityInUnitOfMeasurement =\r\n null;\r\n this.selectedServingWeightMeasurement = {\r\n id: \"g\",\r\n name: \"g\",\r\n };\r\n this.calculateNutritions();\r\n }\r\n selectServingWeighMeasurement(measurement: ServingWeighMeasurement) {\r\n this.selectedServingWeightMeasurement = { ...measurement };\r\n }\r\n setRecipeServingWeight() {\r\n this.recipeServingType = 1;\r\n }\r\n updateServingSize() {\r\n // @ts-ignore\r\n this.$snotify.async(\r\n \"Updating recipe's serving size\",\r\n () =>\r\n new Promise((resolve, reject) => {\r\n const model: any = {\r\n recipeId: this.recipesManagementState.recipe.id,\r\n recipeServingType: this.recipeServingType,\r\n };\r\n\r\n if (this.recipeServingType === 0) {\r\n model.servingCount = Math.round(this.servingCount * 100) / 100;\r\n } else {\r\n model.servingQuantityInUnitOfMeasurement =\r\n Math.round(this.servingQuantityInUnitOfMeasurement * 100) / 100;\r\n model.servingUnitOfMeasurement =\r\n this.selectedServingWeightMeasurement.name;\r\n }\r\n\r\n RecipesRepository.updateRecipeServingSize(model)\r\n .then((response) => {\r\n resolve({\r\n body: \"Successfully updated recipe serving size\",\r\n });\r\n this.loadRecipeDetails();\r\n this.toggleServingModal();\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 3000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n removeIngredient(id: number) {\r\n let ingredient = this.recipesManagementState.recipe.ingredients.find(\r\n (i: any) => i.ingredient.id === id\r\n );\r\n\r\n if (ingredient) {\r\n this.recipesManagementState.recipe.ingredients.splice(\r\n this.recipesManagementState.recipe.ingredients.indexOf(ingredient),\r\n 1\r\n );\r\n this.calculateNutritions();\r\n this.submit(\"\", null);\r\n }\r\n }\r\n removeSubRecipe(id: number) {\r\n let subRecipe = this.recipesManagementState.recipe.childRecipes.find(\r\n (r: any) => r.recipe.id === id\r\n );\r\n\r\n if (subRecipe) {\r\n this.recipesManagementState.recipe.childRecipes.splice(\r\n this.recipesManagementState.recipe.childRecipes.indexOf(subRecipe),\r\n 1\r\n );\r\n }\r\n }\r\n\r\n // Used to map array of related food groups into shape acceptable for the select component\r\n transformIntoSelectObject(arr: any): SelectObj {\r\n return arr.map((el: { id: number; subClass: string }) => {\r\n return {\r\n id: el.id,\r\n name: el.subClass,\r\n };\r\n });\r\n }\r\n\r\n toggleRecipeInst() {\r\n return (this.showRecipeInst = !this.showRecipeInst);\r\n }\r\n toggleScaleRecipeModal() {\r\n this.showScaleRecipeModal = !this.showScaleRecipeModal;\r\n if (!this.showScaleRecipeModal && this.scaledRecipeServingSize != null) {\r\n this.scaledRecipeServingSize = null;\r\n }\r\n }\r\n toggleMoistureLossModal() {\r\n this.showMoistureLossModal = !this.showMoistureLossModal;\r\n\r\n // If the modal is open make a copy of the recipe to edit\r\n if (this.showMoistureLossModal) {\r\n this.recipeCopy = {\r\n recipeId: this.recipesManagementState.recipe.id,\r\n ingredients: this.recipesManagementState.recipe.ingredients,\r\n childRecipes: this.recipesManagementState.recipe.childRecipes,\r\n cookingMethodId: this.recipesManagementState.recipe.cookingMethodId,\r\n lossAmount: this.recipesManagementState.recipe.lossAmount,\r\n lossType: this.recipesManagementState.recipe.lossType,\r\n weight: this.recipesManagementState.recipe.weight,\r\n };\r\n } else {\r\n this.setRecipeCookingMethodAndLoss();\r\n }\r\n }\r\n toggleAddedSugarModal() {\r\n this.showAddedSugarModal = !this.showAddedSugarModal;\r\n }\r\n toggleServingModal() {\r\n this.showServingSizeModal = !this.showServingSizeModal;\r\n if (this.showServingSizeModal) {\r\n this.checkForLiquidVolumes();\r\n }\r\n this.servingQuantityInUnitOfMeasurement =\r\n Math.round(this.servingQuantityInUnitOfMeasurement * 100) / 100;\r\n }\r\n\r\n calculateNutritions() {\r\n let childRecipeIds: {\r\n quantity: number;\r\n recipeId: number;\r\n foodGroupClassificationId: any;\r\n isAddedSugar: Boolean;\r\n }[] = [];\r\n this.recipesManagementState.recipe.childRecipes.map((child: any) =>\r\n childRecipeIds.push({\r\n recipeId: child.recipe.id,\r\n quantity: child.quantity ? child.quantity : 1,\r\n foodGroupClassificationId:\r\n child.foodGroupClassificationId != null\r\n ? child.foodGroupClassificationId\r\n : 0,\r\n isAddedSugar: child.isAddedSugar,\r\n })\r\n );\r\n let ingredients: {\r\n quantity: number;\r\n ingredientMeasurementId: number;\r\n isAddedSugar: boolean;\r\n foodGroupClassificationId: any;\r\n }[] = [];\r\n\r\n this.recipesManagementState.recipe.ingredients.map((ingr: any) => {\r\n ingredients.push({\r\n quantity: ingr.quantity,\r\n ingredientMeasurementId: ingr.measurement.id,\r\n isAddedSugar: ingr.isAddedSugar,\r\n foodGroupClassificationId:\r\n ingr.foodGroupClassificationId != null\r\n ? ingr.foodGroupClassificationId\r\n : 0,\r\n });\r\n });\r\n new Promise((resolve, reject) => {\r\n let calcRecipe: RecipeCalculate = {\r\n recipes: childRecipeIds,\r\n ingredients: ingredients,\r\n servings: Math.round(this.servingCount * 100) / 100,\r\n lossAmount:\r\n this.recipesManagementState.recipe.lossAmount != null\r\n ? this.recipesManagementState.recipe.lossAmount\r\n : 0,\r\n lossType:\r\n this.recipesManagementState.recipe.lossType != null\r\n ? this.recipesManagementState.recipe.lossType\r\n : 0,\r\n cookingMethodId:\r\n this.recipesManagementState.recipe.cookingMethodId != null\r\n ? this.recipesManagementState.recipe.cookingMethodId\r\n : 0,\r\n recipeServingType: this.recipeServingType,\r\n caloriesCalculationMethod:\r\n this.recipesManagementState.recipe.caloriesCalculationMethod,\r\n };\r\n if (this.recipeServingType === 0) {\r\n calcRecipe.servingCount = Math.round(this.servingCount * 100) / 100;\r\n } else {\r\n calcRecipe.servingQuantityInUnitOfMeasurement =\r\n Math.round(this.servingQuantityInUnitOfMeasurement * 100) / 100;\r\n calcRecipe.servingUnitOfMeasurement =\r\n this.selectedServingWeightMeasurement.name;\r\n }\r\n RecipesRepository.calculate(calcRecipe)\r\n .then((response) => {\r\n this.recipesManagementState.recipe.nutritionAnalysis = mapNutritions(\r\n response.data.result,\r\n this.calculationMethodModal.selectedDailyValueCalculation\r\n );\r\n this.servingCount =\r\n Math.round(response.data.result.servings * 100) / 100;\r\n\r\n // If serving weight is not a number set it to 0\r\n if (\r\n this.recipesManagementState.recipe.nutritionAnalysis != null &&\r\n isNaN(\r\n this.recipesManagementState.recipe.nutritionAnalysis.servingWeight\r\n )\r\n ) {\r\n this.recipesManagementState.recipe.nutritionAnalysis.servingWeight = 0;\r\n }\r\n\r\n if (\r\n this.recipesManagementState.recipe\r\n .servingQuantityInUnitOfMeasurement == null\r\n ) {\r\n this.servingQuantityInUnitOfMeasurement =\r\n response.data.result.weightPerServing;\r\n }\r\n\r\n // If serving weight is not a number set it to 0\r\n if (isNaN(this.servingQuantityInUnitOfMeasurement)) {\r\n this.servingQuantityInUnitOfMeasurement = 0;\r\n }\r\n\r\n resolve({});\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message = error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n });\r\n }\r\n\r\n resetState() {\r\n this.showCategoryModal = false;\r\n this.showIngredientModal = false;\r\n this.showExportLabelModal = false;\r\n this.ingredientSearchString = \"\";\r\n this.searchResults.recipes.length = 0;\r\n this.showServingSizeModal = false;\r\n this.showAddIngredientModal = false;\r\n (window).zE(\"webWidget\", \"close\");\r\n }\r\n\r\n closeServingSizeModal() {\r\n this.recipeServingType =\r\n this.recipesManagementState.recipe.recipeServingType;\r\n this.servingQuantityInUnitOfMeasurement =\r\n this.recipesManagementState.recipe.servingQuantityInUnitOfMeasurement;\r\n this.servingCount = this.recipesManagementState.recipe.servingCount;\r\n this.selectedServingWeightMeasurement.name = this.recipesManagementState\r\n .recipe.servingUnitOfMeasurement\r\n ? this.recipesManagementState.recipe.servingUnitOfMeasurement\r\n : \"g\";\r\n this.showServingSizeModal = false;\r\n this.calculateNutritions();\r\n }\r\n\r\n /* Method that disables given buttons until the user saves the changes he made to the recipe */\r\n disableButtonsBeforeSave() {\r\n this.recipeSaved = false;\r\n }\r\n\r\n submit(redirectLink: string = \"\", redirectParams: any = null) {\r\n let childRecipeIds: {\r\n quantity: number;\r\n recipeId: number;\r\n isAddedSugar: boolean;\r\n }[] = [];\r\n\r\n this.recipesManagementState.recipe.childRecipes.map((child: any) =>\r\n childRecipeIds.push({\r\n recipeId: child.recipe.id,\r\n quantity: child.quantity ? child.quantity : 1,\r\n isAddedSugar: child.isAddedSugar,\r\n })\r\n );\r\n\r\n let ingredients: {\r\n quantity: number;\r\n ingredientMeasurementId: number;\r\n isAddedSugar: boolean;\r\n }[] = [];\r\n\r\n this.recipesManagementState.recipe.ingredients.map((ingr: any) => {\r\n ingredients.push({\r\n quantity: ingr.quantity,\r\n ingredientMeasurementId: ingr.measurement.id,\r\n isAddedSugar: ingr.isAddedSugar,\r\n });\r\n });\r\n\r\n this.$validator.validateAll().then(async (result) => {\r\n if (result && this.recipesManagementState.recipe.recipeCategory.id) {\r\n if (this.$route.name === \"recipesEdit\") {\r\n if (ingredients) {\r\n this.updateRecipe(\r\n childRecipeIds,\r\n ingredients,\r\n redirectLink,\r\n redirectParams\r\n );\r\n }\r\n } else if (this.$route.name === \"recipesAdd\") {\r\n if (ingredients) {\r\n this.saveNewRecipe(\r\n childRecipeIds,\r\n ingredients,\r\n redirectLink,\r\n redirectParams\r\n );\r\n }\r\n }\r\n return;\r\n }\r\n this.$snotify.error(this.translations.get(\"UpdateRecipeSpecification\"));\r\n });\r\n }\r\n\r\n updateRecipe(\r\n childRecipeIds: any,\r\n ingredients: any,\r\n redirectLink: string,\r\n redirectParams: any = null\r\n ) {\r\n // @ts-ignore\r\n this.$snotify.async(\r\n this.translations.get(\"rec_toastr_saving\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n var servingCount = null;\r\n var servingQuantityInUnitOfMeasurement = null;\r\n\r\n if (this.recipeServingType == 0) {\r\n // Serving count\r\n servingCount = Math.round(this.servingCount * 100) / 100;\r\n } else {\r\n // Serving weight\r\n servingQuantityInUnitOfMeasurement =\r\n Math.round(\r\n this.recipesManagementState.recipe\r\n .servingQuantityInUnitOfMeasurement * 100\r\n ) / 100;\r\n }\r\n\r\n console.log(this.recipesManagementState.recipe.cautionaryMessage);\r\n\r\n let updateRecipe: UpdateRecipe = {\r\n recipes: childRecipeIds,\r\n ingredients: ingredients,\r\n description: this.recipesManagementState.recipe.description,\r\n recipeCategoryId: this.recipesManagementState.recipe.recipeCategory\r\n ? this.recipesManagementState.recipe.recipeCategory.id\r\n : 0,\r\n name: this.recipesManagementState.recipe.name,\r\n recipeId: this.recipesManagementState.recipe.id,\r\n instructions: this.recipesManagementState.recipe.instructions,\r\n cautionaryMessage: this.recipesManagementState.recipe.cautionaryMessage,\r\n recipeServingType:\r\n this.recipeServingType !=\r\n this.recipesManagementState.recipe.recipeServingType\r\n ? this.recipeServingType\r\n : this.recipesManagementState.recipe.recipeServingType,\r\n servingCount: servingCount,\r\n servingQuantityInUnitOfMeasurement:\r\n servingQuantityInUnitOfMeasurement,\r\n servingUnitOfMeasurement:\r\n this.recipesManagementState.recipe.servingUnitOfMeasurement,\r\n adjustedAddedSugarsValue:\r\n this.recipesManagementState.recipe.adjustedAddedSugarsValue,\r\n };\r\n\r\n RecipesRepository.udateRecipe(updateRecipe)\r\n .then((response) => {\r\n this.recipeSaved = true;\r\n this.recipesManagementState.recipe = response.data.result;\r\n if (this.recipesManagementState.recipe) {\r\n this.recipesManagementState.recipe.nutritionAnalysis =\r\n mapNutritions(\r\n this.recipesManagementState.recipe.nutritionAnalysis\r\n );\r\n }\r\n this.loadRecipeDetails();\r\n if (redirectLink !== \"\") {\r\n if (redirectParams != null) {\r\n this.$router.push({\r\n name: redirectLink,\r\n params: redirectParams,\r\n });\r\n } else {\r\n this.$router.push({\r\n name: redirectLink,\r\n });\r\n }\r\n }\r\n resolve({\r\n body: this.translations.get(\"rec_toastr_updated\"),\r\n });\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 2000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n\r\n saveNewRecipe(\r\n childRecipeIds: any,\r\n ingredients: any,\r\n redirectLink: string,\r\n redirectParams: any = null\r\n ) {\r\n // @ts-ignore\r\n this.$snotify.async(\r\n this.translations.get(\"rec_toastr_saving\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n let createRecipe: CreateRecipe = {\r\n recipes: childRecipeIds,\r\n ingredients: ingredients,\r\n description: this.recipesManagementState.recipe.description,\r\n recipeCategoryId: this.recipesManagementState.recipe.recipeCategory\r\n ? this.recipesManagementState.recipe.recipeCategory.id\r\n : 0,\r\n name: this.recipesManagementState.recipe.name,\r\n instructions: this.recipesManagementState.recipe.instructions,\r\n cautionaryMessage: this.recipesManagementState.recipe.cautionaryMessage,\r\n servingCount: Math.round(this.servingCount * 100) / 100,\r\n adjustedAddedSugarsValue:\r\n this.recipesManagementState.recipe.adjustedAddedSugarsValue,\r\n };\r\n\r\n RecipesRepository.createRecipe(createRecipe)\r\n .then((response) => {\r\n this.$router.push({\r\n name: \"recipesEdit\",\r\n params: { id: response.data.result.id },\r\n });\r\n //this.loadRecipeDetails();\r\n if (redirectLink !== \"\") {\r\n this.$router.push({\r\n name: redirectLink,\r\n params: redirectParams,\r\n });\r\n }\r\n resolve({\r\n body: this.translations.get(\"rec_toastr_saved\"),\r\n });\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 2000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Hook for print recipe button\r\n */\r\n printRecipe() {\r\n window.print();\r\n }\r\n\r\n // Show recipe cost button, check if user paid for recipe cost\r\n showRecipeCostBtn() {\r\n if (this.accountState.userDetails.addOns) {\r\n return this.accountState.userDetails.addOns\r\n .map((x: any) => x.addOn)\r\n .includes(AddOnType.RecipeCost);\r\n }\r\n return false;\r\n }\r\n\r\n chatStatus() {\r\n var w = window;\r\n if (w && w.zendeskChatStatus) {\r\n return w.zendeskChatStatus;\r\n }\r\n return \"offline\";\r\n }\r\n\r\n showZendesk() {\r\n if ((window).zE) {\r\n if (this.chatStatus() == \"online\") {\r\n (window).zE(\"webWidget\", \"show\");\r\n (window).zE(\"webWidget\", \"open\");\r\n }\r\n }\r\n }\r\n\r\n openCalculationMethodModal() {\r\n this.calculationMethodModal.isOpen = true;\r\n this.calculationMethodModal.selectedCalculationMethod =\r\n this.recipesManagementState.recipe.caloriesCalculationMethod;\r\n this.calculationMethodModal.selectedDailyValueCalculation =\r\n this.recipesManagementState.recipe.dailyValueCalculationMethod;\r\n }\r\n\r\n updateCaloriesCalculationMethod() {\r\n // @ts-ignore\r\n this.$snotify.async(\r\n this.translations.get(\"rec_toastr_saving\"),\r\n () =>\r\n new Promise((resolve, reject) => {\r\n let model = {\r\n recipeId: this.recipesManagementState.recipe.id,\r\n caloriesCalculationMethod:\r\n this.calculationMethodModal.selectedCalculationMethod,\r\n dailyValueCalculationMethod:\r\n this.calculationMethodModal.selectedDailyValueCalculation,\r\n };\r\n RecipesRepository.updateCaloriesCalculationMethod(model)\r\n .then((response) => {\r\n resolve({\r\n body: this.translations.get(\"rec_calc_method_saved\"),\r\n });\r\n this.loadRecipeDetails();\r\n this.closeCalculationMethodModal();\r\n })\r\n .catch((error) => {\r\n let message = \"\";\r\n if (error.response) {\r\n message =\r\n error.response.data.errorMessages[0].userVisibleMessage;\r\n } else {\r\n message = this.translations.get(\"network_error\");\r\n }\r\n reject({ body: message });\r\n });\r\n }),\r\n {\r\n timeout: 2000,\r\n closeOnClick: true,\r\n }\r\n );\r\n }\r\n\r\n closeCalculationMethodModal() {\r\n this.calculationMethodModal.isOpen = false;\r\n }\r\n\r\n get printableInstructions() {\r\n if (\r\n this.recipesManagementState &&\r\n this.recipesManagementState.recipe &&\r\n this.recipesManagementState.recipe.instructions\r\n ) {\r\n var printableInstructions =\r\n this.recipesManagementState.recipe.instructions;\r\n var iframes = printableInstructions.match(\r\n /(?:]*)(?:(?:\\/>)|(?:>.*?<\\/iframe>))/g\r\n );\r\n if (iframes) {\r\n for (var i = 0; i < iframes.length; i++) {\r\n var src = iframes[i].match(/src\\s*=\\\\*\"(?!data)(.+?)\\\"/g);\r\n src =\r\n src.length > 0 ? src[0].replace('src=\"', \"\").slice(0, -1) : null;\r\n if (src != null) {\r\n printableInstructions = printableInstructions.replace(\r\n iframes[i],\r\n `${src}`\r\n );\r\n }\r\n }\r\n }\r\n\r\n return printableInstructions;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n /** HOOKS **/\r\n mounted() {\r\n Vue.nextTick(() => {\r\n setTimeout(() => {\r\n (window).$.Pages.init();\r\n }, 2000);\r\n });\r\n document.getElementsByTagName(\"body\")[0].classList.add(\"recipe-management\");\r\n }\r\n\r\n beforeDestroy() {\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .classList.remove(\"recipe-management\");\r\n }\r\n\r\n created() {\r\n this.$store\r\n .dispatch(TRANSLATIONS_FETCH, {\r\n category: \"pages\",\r\n collections: [\r\n \"common\",\r\n \"recipes\",\r\n \"nutrition-labels\",\r\n \"ingredients\",\r\n \"recipe costing\",\r\n ],\r\n })\r\n .then(() => {\r\n if (this.$route.name === \"recipesEdit\") {\r\n document.title =\r\n this.translations.get(\"rec_title_edit\") +\r\n \" \" +\r\n this.translations.get(\"meta_title_postfix\");\r\n this.loadRecipeDetails();\r\n } else {\r\n document.title =\r\n this.translations.get(\"recipesAdd\") +\r\n \" \" +\r\n this.translations.get(\"meta_title_postfix\");\r\n }\r\n });\r\n this.$store.dispatch(TRANSLATIONS_FETCH, {\r\n category: \"validationrules\",\r\n collections: [\"recipes\"],\r\n });\r\n\r\n if (this.$route.name === \"recipesEdit\") {\r\n this.checkForLiquidVolumes();\r\n } else {\r\n this.fetchCategories();\r\n }\r\n\r\n SubscriptionRepository.listCurrentSubscriptionNutrientSources().then(\r\n (response) => {\r\n this.nutrientSources = response.data.result;\r\n\r\n // select all except USDA branded nutrient source for searching, as requested in support 13762\r\n this.nutrientsListForSearch = this.nutrientSources.filter(\r\n (nutrient) => nutrient != 3\r\n );\r\n }\r\n );\r\n\r\n // CustomersRepository.getRestaurantProfile().then(response => {\r\n // let def: any = response.data.result.defaultNutrientSource;\r\n // if (def !== null) {\r\n // this.nutrientsList.push(def);\r\n // }\r\n // });\r\n\r\n RecipesRepository.listCookingMethods().then((response) => {\r\n this.cookingMethods = [\r\n { id: -1, name: \"Not specified\" },\r\n ...response.data.result,\r\n ];\r\n if (response.data.result && response.data.result.length) {\r\n if (\r\n this.recipesManagementState.recipe &&\r\n this.recipesManagementState.recipe.cookingMethodId\r\n ) {\r\n let cookingMethod = this.cookingMethods.find(\r\n (method: any) =>\r\n method.id === this.recipesManagementState.recipe.cookingMethodId\r\n );\r\n if (cookingMethod) this.selectedCookingMethod = { ...cookingMethod };\r\n }\r\n this.selectedCookingMethod = this.cookingMethods[0];\r\n }\r\n });\r\n RecipesRepository.listFoodGroupClasses().then((response) => {\r\n // Get subclasses for every class\r\n const foodGroupClasses = [\"None Applicable\", ...response.data.result];\r\n if (foodGroupClasses != null && foodGroupClasses.length) {\r\n this.foodGroupClasses = foodGroupClasses.map(\r\n (name: string, index: number) => {\r\n return {\r\n id: index,\r\n name: name,\r\n };\r\n }\r\n );\r\n }\r\n });\r\n\r\n this.fetchCategories();\r\n }\r\n}\r\nexport default RecipesManagement;\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipesManagement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipesManagement.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RecipesManagement.vue?vue&type=template&id=781dc617&scoped=true\"\nimport script from \"./RecipesManagement.vue?vue&type=script&lang=ts\"\nexport * from \"./RecipesManagement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./RecipesManagement.vue?vue&type=style&index=0&id=781dc617&prod&lang=css\"\nimport style1 from \"./RecipesManagement.vue?vue&type=style&index=1&id=781dc617&prod&scoped=true&lang=css\"\nimport style2 from \"./RecipesManagement.vue?vue&type=style&index=2&id=781dc617&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"781dc617\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAYAAACnxdXaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUJDM0JBNTQ4ODRDMTFFMzk4REVFODhDMzg3QUI4NkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUJDM0JBNTM4ODRDMTFFMzk4REVFODhDMzg3QUI4NkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxRTE0REM2ODgzMDExRTM4ODFBOUJFRTM5ODFENDY5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxRTE0REM3ODgzMDExRTM4ODFBOUJFRTM5ODFENDY5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+4pCG2wAAAmhJREFUeNrElT1v01AUhp/rOEkdu01Q26gfaod+LUhMSIwVdGHpxMyAhMTAD2Bg7UQlJsrGgPofKBJIDLBUolLViSC1EkUtTZp+UcexHcfmXAdQF4ZEoj2Sde5NnDz3fc85tjLNl9umaYzYthH7fpTIGqUUYdjGsrI0GiGOk8d1A8k5PC/EK0zytL7CEm/pIpRchlwHpmVlnIGBXGF+fpzDw6aATIEisIjBwT4ODhqMjzvs7bmMjtqcnYVUzgu4X6dg4Q64Nl2GY+o/D4I2p6cBtm3KOiZJEvr7s3IIj+Fhi/39BuWyRbXqMTHhsLZWwbp/G549gl2/WyhmPp9JYVpho9Eik1Gi1BAbIwHnUmWlUk4OFSKOpPtrt64Tri7B6jt6CTOOE1qtmDiOU6AOrdQ0FVEUk8sZ6fc6632hIIfb/o5x9x48eQg/2t1D2+0ONIoSDEOh9xqazRr4frsDkRJoN7R6/XkYyL2uC99+wqHqzV5dP23vyUlAPm/8tbdYzHN87DM01Cf17WRt89jNKVofXsOn973Z63ktURRxfh6mcK1OW10q5anXfenYQtq5uoN1Q83MFHnzaoO+B4/h+YqobXYPdRwjVaTnc3fXTW3Utd3ZaTI2ZrO1dcTsbDHN09MDbG4eMbVwg+bqC/j8EcJS99DhuYm0lpWaohVbnHoqndMIqWVd4WcdvlQVTcmVmkEg91RDm8m5EQhanZHvMlSyuVEloSw9+/uhkVx4gCT/zipDT0SoKfl5VRZlLi9qJsvLXHaY0paXDr0ie9fXr0Dp4uKlK9X2bstCho74wrz8F4F/XuK/BBgA0uoO305ZXm8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAYAAACnxdXaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjZGOTgzMTk4ODRDMTFFM0JGRjZBRDhENjBDQzU1QTYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjZGOTgzMTg4ODRDMTFFM0JGRjZBRDhENjBDQzU1QTYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3NjA0Mjg4ODgzMDExRTNCM0VEQzk3NDRGQTQwMDA4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3NjA0Mjg5ODgzMDExRTNCM0VEQzk3NDRGQTQwMDA4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+0eWdTAAAAcJJREFUeNq8lb9LA1EMxz+1R6GiWCr1B4JSoShuIiiIOovgqIMOLo4ujtK5/0EX99pFHFzE2TqJLnVwUlEQtPgDbUVorfWF3IGnULhrbSD3fuSb5CWXvBcojU5dAn2GvwzXsKn2UCB8uEtwcgKvVD0542N+iUBvz8/tgOE2w/eW+XQYbqd11NHmS61mEvL5qaMP8uf0/Bw2N3X0QZYn9Osr3N3B3h6k0xCNGgvGxMAAdHX9k9P3d9jYgKMjXadSkMtBJuPJaf30BmzxlynslxfI52FmxpRn1S7Tqq5lX+SC+6nnK9JgEK5MR62sws0N9JgWGB93Y25vYX8fCgUYGoLsjur5dionH47D9bUaFb64cGOyWY1YsA7+NN9AeqVIcsf6L51DVCpujKydtApO8JbVgFMxODsHW1sQidSvDpELTvC/D+YpvTU7gmQSEglYX4di8S+usxO2t2F52a3XcMssLsLaGhwcwOAgPD1Bd7cW0sKCypvep6GQ9qikUObSq9PTehW+vele051KG4yM6FyquVzWvVgM+vtbcPc+P8Pjo6fo/F+DDo2NQTyuBeTTacl+U12PeF0Kh5W9kfOIl74FGACSOJGlkpqw+wAAAABJRU5ErkJggg==\"","/*! 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});","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAASCAYAAACnxdXaAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADIWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNkY5ODMxOTg4NEMxMUUzQkZGNkFEOEQ2MENDNTVBNiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNkY5ODMxODg4NEMxMUUzQkZGNkFEOEQ2MENDNTVBNiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTc2MDQyODg4ODMwMTFFM0IzRURDOTc0NEZBNDAwMDgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTc2MDQyODk4ODMwMTFFM0IzRURDOTc0NEZBNDAwMDgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7R5Z1MAAABhElEQVRIS2P8DwQXRHUYQMDg9RUwDQINfXsZGqcfhPIQ4P/tJgaYehAA6WFUrYPyEKA+056hocgZrhbZbEYGldr/IIPOC2sxMDIxMfz/9YvB8OMtqDRQAZqBxFiKrAbZMhAAqWWCMYyEQiAGsLGhGAoygBSAy0KQHTDHgS2FAZAgTCG6xYQsB8nf1nmC00JkAA5eKBsOwlw1GVZOi8QZRMgOQnckstrwzGUMq/bcgPIQAJyQoGyiATZLSQGMf79+I9nSS/KmUBYDg97D01AW8YDxvIg2yZZSClASEr3AyLF0YFIvtnwKAsiFAXoexGcpslr0QgEGMIJ31aQwnBbiMgRZHNlhf86UMqwBmocOUCwFWRbqCbHkArACAGlk5GDBayEMoFsMwpdVLBmU4yIwilC4pRi+A9Y4YM0cfgQthAGQOly+RjYfIyERCk6QZpgaEMCnDgbOC6ozMLKwMvz9+JnB+NdDhKXIljGLlTL84+cE89EBsZaCwYfvDP9fd0M5MDsYGAA9iNZ82oYAGgAAAABJRU5ErkJggg==\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"select-container\",class:{ noLabel: !_vm.label },staticStyle:{\"position\":\"relative\"}},[(_vm.label && !_vm.disabled)?_c('label',{staticClass:\"vs-label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e(),(_vm.required)?_c('label',{staticClass:\"vs-required-indicator\"},[_vm._v(\"*\")]):_vm._e(),(_vm.multiple)?_c('v-select',{staticClass:\"select-multiple\",class:{ filled: _vm.hasValue, multiple: true },attrs:{\"clearable\":_vm.clearable,\"multiple\":\"\",\"reduce\":(obj) => obj.id,\"filterable\":_vm.filterable,\"label\":\"name\",\"placeholder\":_vm.placeholder,\"value\":_vm.values,\"options\":_vm.options,\"disabled\":_vm.disabled},on:{\"search:focus\":function($event){return _vm.$emit('focus')},\"input\":(vals) => _vm.$emit('input', vals),\"search\":(searchQuery) => _vm.$emit('search', searchQuery)}}):_c('v-select',{staticClass:\"select-single\",class:{ filled: _vm.hasValue, noLabel: !_vm.label },attrs:{\"clearable\":_vm.clearable,\"placeholder\":_vm.placeholder,\"reduce\":(obj) => obj.id,\"filterable\":_vm.filterable,\"label\":\"name\",\"value\":_vm.value,\"options\":_vm.options,\"searchable\":_vm.searchable,\"disabled\":_vm.disabled,\"noDrop\":_vm.noDrop},on:{\"search:focus\":[function($event){return _vm.$emit('focus')},function($event){return _vm.$emit('search:focus')}],\"input\":(val) => _vm.$emit('input', val),\"search\":(searchQuery) => _vm.$emit('search', searchQuery),\"search:blur\":function($event){return _vm.$emit('search:blur')}}}),(_vm.required && _vm.showError)?_c('label',{staticClass:\"error-text\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vSelect.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!./vSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./vSelect.vue?vue&type=template&id=3f664eb8\"\nimport script from \"./vSelect.vue?vue&type=script&lang=js\"\nexport * from \"./vSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./vSelect.vue?vue&type=style&index=0&id=3f664eb8&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"wrap\",attrs:{\"size\":\"A4\"}},[_c('div',{staticClass:\"label-wrapper\"},[_c('table',{attrs:{\"cellspacing\":\"0\",\"cellpadding\":\"0\"}},[_c('thead',[_vm._m(0),_c('div',{staticClass:\"subheading\"},[_vm._v(\"\\n Per serving size\\n \"),(_vm.nutrition.servingQuantityInUnitOfMeasurement != null)?_c('span',[_vm._v(\"(\"+_vm._s(Math.round(_vm.nutrition.servingQuantityInUnitOfMeasurement * 100) /\n 100 +\n \" \" +\n _vm.nutrition.servingUnitOfMeasurement)+\")\")]):(_vm.nutrition.servingWeight != null)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.utilsRound(_vm.nutrition.servingWeight, 2))+\" g)\")]):_vm._e()])]),_c('tbody',[_c('tr',{staticClass:\"top-line\"},[_c('td',{staticClass:\"thick-line pad-top\"},[_c('strong',{staticClass:\"calories\"},[_vm._v(\"Calories\")]),_vm._v(\" \\n \"),_c('strong',{staticClass:\"calories\"},[_vm._v(_vm._s(_vm.utilsRound(_vm.nutrition.calories, 2)))])]),_vm._m(1)]),_c('tr',{staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_c('strong',[_vm._v(\"Fat\")]),_vm._v(\"\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.fat, 2))+\" g\\n \")]),_c('td',[_vm._v(_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.fatDv, 0))+\" %\")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\"},[_vm._v(\"\\n Saturated \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.saturatedFat, 2))+\" g\\n \"),_c('br'),_vm._v(\"\\n + Trans \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.transFat, 2))+\" g\\n \")]),_c('td',{staticClass:\"indent v-align-middle\"},[_vm._v(\"\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.saturatedAndTransDv, 0))+\" %\\n \")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\"},[_vm._v(\"\\n Polyunsaturated \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.polyunsaturatedFats, 2))+\" g\\n \")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\",attrs:{\"colspan\":\"2\"}},[_c('table',{attrs:{\"cellspacing\":\"0\",\"cellpadding\":\"0\"}},[_c('tbody',[_c('tr',{staticClass:\"indent bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\"},[_c('div',[_vm._v(\"\\n Omega-6\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.omega6, 2))+\" g\\n \")])])]),_c('tr',{staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\"},[_c('div',[_vm._v(\"\\n Omega-3\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.omega3, 2))+\" g\\n \")])])])])])])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\"},[_vm._v(\"\\n Monounsaturated \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.monounsaturatedFats, 2))+\" g\\n \")])]),_c('tr',[_c('td',[_c('strong',[_vm._v(\"Carbohydrate\")]),_vm._v(\"\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.carbohydrate, 2))+\" g\\n \")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',{staticClass:\"indent\"},[_vm._v(\"\\n Fibre \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.fibre, 2))+\" g\\n \"),_c('br'),_vm._v(\"\\n Sugars \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.sugars, 2))+\" g\\n \")]),_c('td',{},[_vm._v(\"\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.fibreDv, 0))+\" %\"),_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.sugarsDv, 0))+\" %\\n \")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_c('strong',[_vm._v(\"Protein\")]),_vm._v(\"\\n \"+_vm._s(_vm.round(_vm.nutrition.protein))+\" g\\n \")]),_c('td')]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"\"}},[_c('td',[_c('strong',[_vm._v(\"Cholesterol\")]),_vm._v(\"\\n \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.cholesterol, 2))+\" mg\\n \")]),_c('td')]),_c('tr',{staticClass:\"thick-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_c('strong',[_vm._v(\"Sodium\")]),_vm._v(\"\\n \"+_vm._s(_vm.utilsRound(_vm.nutrition.sodium, 2))+\" mg\\n \")]),_c('td',[_vm._v(_vm._s(_vm.utilsRound(_vm.nutrition.sodiumDv, 0))+\" %\")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_vm._v(\"\\n Potassium \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.potassium, 2))+\" mg\\n \")]),_c('td',[_vm._v(_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.potassiumDv, 0))+\" %\")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_vm._v(\"Calcium \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.calcium, 2))+\" mg\")]),_c('td',[_vm._v(_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.calciumDv, 0))+\" %\")])]),_c('tr',{staticClass:\"bottom-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_vm._v(\"Iron \"+_vm._s(_vm.utilsRound(_vm.nutrition.iron, 2))+\" mg\")]),_c('td',[_vm._v(_vm._s(_vm.utilsRound(_vm.nutrition.ironDv, 0))+\" %\")])]),_c('tr',{staticClass:\"thick-line\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('td',[_vm._v(\"Vitamin D \"+_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.vitaminD, 2))+\" mcg\")]),_c('td',[_vm._v(_vm._s(_vm.isTrial ? \"--\" : _vm.utilsRound(_vm.nutrition.vitaminDDv, 0))+\" %\")])]),_vm._m(2)])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heading\"},[_c('strong',[_vm._v(\"\\n Nutrition Facts\\n \")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"daily-value pad-top\"},[_c('strong',{staticStyle:{\"line-height\":\"0\",\"font-size\":\"7pt\"}},[_vm._v(\"\\n % Daily Value*\\n \")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('td',{staticStyle:{\"font-size\":\"8pt\"},attrs:{\"colspan\":\"2\"}},[_vm._v(\"\\n *5% or less is\\n \"),_c('strong',{staticStyle:{\"font-size\":\"8pt\"}},[_vm._v(\"a little\")]),_vm._v(\", 15% or more is\\n \"),_c('strong',{staticStyle:{\"font-size\":\"8pt\"}},[_vm._v(\"a lot\")])])])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop, Watch } from \"vue-property-decorator\";\r\nimport { Nutritions } from \"@/models/Recipes/Nutritions\";\r\n\r\nimport { round } from \"@/utils/Helpers\";\r\n\r\n@Component\r\nexport default class vNutritionLabel extends Vue {\r\n @Prop() nutrition!: Nutritions;\r\n\r\n utilsRound = round;\r\n\r\n get isTrial() {\r\n return this.$store.getters.getUserDetails.isTrial;\r\n }\r\n\r\n print() {\r\n this.sendToPrint();\r\n }\r\n\r\n sendToPrint() {\r\n window.print();\r\n }\r\n\r\n round(number: number) {\r\n if (number > 0) return round(number, 2);\r\n\r\n return 0;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vNutritionLabel.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vNutritionLabel.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./vNutritionLabel.vue?vue&type=template&id=a9808a4e&scoped=true\"\nimport script from \"./vNutritionLabel.vue?vue&type=script&lang=ts\"\nexport * from \"./vNutritionLabel.vue?vue&type=script&lang=ts\"\nimport style0 from \"./vNutritionLabel.vue?vue&type=style&index=0&id=a9808a4e&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9808a4e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vSelect.vue?vue&type=style&index=0&id=3f664eb8&prod&lang=css\"","/*!\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","/*!\n * vue2-editor v2.10.3 \n * (c) 2021 David Royer\n * Released under the MIT License.\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('quill')) :\n typeof define === 'function' && define.amd ? define(['exports', 'quill'], factory) :\n (global = global || self, factory(global.Vue2Editor = {}, global.Quill));\n}(this, function (exports, Quill) { 'use strict';\n\n Quill = Quill && Quill.hasOwnProperty('default') ? Quill['default'] : Quill;\n\n var 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\n var 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\n function _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\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _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\n function _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\n function _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\n function _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\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _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\n function _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 */\n function 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\n var BlockEmbed = Quill.import(\"blots/block/embed\");\n\n var HorizontalRule =\n /*#__PURE__*/\n function (_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\n HorizontalRule.blotName = \"hr\";\n HorizontalRule.tagName = \"hr\";\n Quill.register(\"formats/horizontal\", HorizontalRule);\n\n var MarkdownShortcuts =\n /*#__PURE__*/\n function () {\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 //\n var 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\n function 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\n var normalizeComponent_1 = normalizeComponent;\n\n /* script */\n const __vue_script__ = script;\n /* template */\n var __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)};\n var __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\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 */\n \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 undefined,\n undefined\n );\n\n var version = \"2.10.3\"; // Declare install function executed by Vue.use()\n\n function install(Vue) {\n if (install.installed) return;\n install.installed = true;\n Vue.component(\"VueEditor\", VueEditor);\n }\n var VPlugin = {\n install: install,\n version: version,\n Quill: Quill,\n VueEditor: VueEditor\n }; // Auto-install when vue is found (eg. in browser via