customizer.bundle.min.js.map (792134B)
1 {"version":3,"sources":["spectrum.js","speakingurl.js","hooks-manager.js","customizer-base.js","customizer-utils.js","customizer-support.js","customizer-shortcodes-popup.js","customizer-custom-popup.js","customizer-custom-style-manager.js","customizer-section-settings-controls.js","customizer-current-page-settings.js","customizer-section-settings-panel.js","customizer-features-popup.js","customizer-content.js","customizer-content-tpls.js","customizer-content-handles.js","customizer-content-sections-overlays.js","customizer-menu.js","customizer-page-settings-panel.js"],"names":["factory","define","amd","exports","module","require","jQuery","$","undefined","style","defaultOpts","beforeShow","noop","move","change","show","hide","color","flat","showInput","allowEmpty","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","appendTo","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","className","containerClassName","replacerClassName","showAlpha","theme","palette","selectionPalette","disabled","offset","spectrums","IE","exec","window","navigator","userAgent","rgbaSupport","document","createElement","cssText","contains","backgroundColor","replaceInput","join","markup","gradientFix","i","str","substr","indexOf","paletteTemplate","p","opts","html","length","tiny","c","formattedString","current","tinycolor","toHsl","l","equals","toString","swatchStyle","toRgbString","toFilter","push","append","attr","spectrum","element","o","func","wait","debounce","timeout","callbackContext","extend","callbacks","bind","resize","reflow","context","this","args","arguments","clearTimeout","setTimeout","apply","visible","isDragging","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","slice","draggingClass","shiftMovementDirection","doc","ownerDocument","boundElement","body","container","addClass","pickerContainer","find","dragger","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","is","isInputTypeColor","inputTypeColorSupport","shouldReplace","replacer","offsetElement","previewElement","initialColor","val","colorOnShow","currentPreferredFormat","isEmpty","observer","applyOptions","text","isArray","j","rgb","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","split","each","addColorToSelectionPalette","e","inArray","shift","drawPalette","currentColor","get","map","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","dragStart","trigger","dragStop","removeClass","setFromTextInput","value","isValid","set","updateOriginalInput","toggle","event","Event","isDefaultPrevented","hideAll","on","onkeydown","clickout","updateUI","setInterval","parentEl","parent","css","clearInterval","keyCode","button","revert","off","ignoreFormatChange","newColor","newHsv","toHsv","h","s","v","a","getFormat","fromRatio","Math","round","format","updateHelperLocations","flatColor","toHexString","realHex","realAlpha","realColor","displayColor","realRgb","alpha","toRgb","gradient","gradientType","dragX","dragY","max","min","top","left","alphaX","slideY","fireCallback","hasChanged","picker","input","dpWidth","dpHeight","inputHeight","docElem","viewWidth","width","height","outerWidth","outerHeight","documentElement","clientWidth","scrollLeft","viewHeight","clientHeight","scrollTop","offsetLeft","offsetTop","abs","bottom","right","disable","paletteElementClick","data","ignore","target","closest","after","stopPropagation","preventDefault","click","keydown","hasClass","draggable","shiftKey","parseFloat","oldDragX","oldDragY","furtherFromX","setValue","paletteEvent","initialize","spect","option","optionName","optionValue","enable","coord","destroy","remove","id","obj","Array","prototype","call","concat","onmove","onstart","onstop","dragging","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","returnValue","documentMode","stop","t0","originalEvent","touches","pageX","pageY","which","fn","dataID","extra","method","Error","removeData","load","loadOpts","defaults","colorInput","_cachedResult","type","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","random","r","g","b","ok","replace","toLowerCase","match","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex3","stringInputToObject","hasOwnProperty","bound01","rgbToRgb","String","convertToPercentage","floor","f","q","t","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","_ok","_tc_id","rgbToHsl","d","rgbToHsv","rgbToHex","allow3Char","hex","pad2","charAt","rgbaToHex","desaturate","amount","clamp01","saturate","greyscale","lighten","brighten","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","part","ret","monochromatic","modification","isDark","getBrightness","isLight","getOriginalInput","getAlpha","setAlpha","toHsvString","toHslString","toHex","toHex8","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","secondColor","hex8String","secondHex8String","formatSet","hasAlpha","_applyModification","_applyCombination","color1","color2","mix","rgb1","rgb2","w","w1","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","isNaN","n","processPercent","parseInt","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","root","getSlug","convertSymbols","maintainCase","truncate","uricFlag","uricNoSlashFlag","markFlag","symbol","langChar","ch","lastCharWasSymbol","lastCharWasDiatric","separator","result","diatricString","customReplacements","allowedChars","symbolMap","en","langCharMap","custom","uric","uricNoSlash","mark","symbols","lang","uricChars","uricNoSlashChars","markChars","titleCase","forEach","Object","keys","escapeChars","isReplacedCustomChar","charMap","lookAheadCharArray","diatricMap","test","_","toUpperCase","lucky","lastIndexOf","createSlug","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ő","Ø","Ù","Ú","Û","Ü","Ű","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","ő","ø","ù","ú","û","ü","ű","ý","þ","ÿ","ẞ","ا","أ","إ","آ","ؤ","ئ","ء","ب","ت","ث","ج","ح","خ","د","ذ","ر","ز","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ك","ل","م","ن","ه","و","ي","ى","ة","ﻻ","ﻷ","ﻹ","ﻵ","گ","چ","پ","ژ","ک","ی","َ","ً","ِ","ٍ","ُ","ٌ","ْ","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","۰","۱","۲","۳","۴","۵","۶","۷","۸","۹","က","ခ","ဂ","ဃ","င","စ","ဆ","ဇ","စျ","ည","ဋ","ဌ","ဍ","ဎ","ဏ","တ","ထ","ဒ","ဓ","န","ပ","ဖ","ဗ","ဘ","မ","ယ","ရ","လ","ဝ","သ","ဟ","ဠ","အ","ြ","ျ","ွ","ြွ","ျွ","ှ","ဧ","၏","ဣ","ဤ","ဉ","ဦ","ဩ","သြော","ဪ","၀","၁","၂","၃","၄","၅","၆","၇","၈","၉","္","့","း","č","ď","ě","ň","ř","š","ť","ů","ž","Č","Ď","Ě","Ň","Ř","Š","Ť","Ů","Ž","ހ","ށ","ނ","ރ","ބ","ޅ","ކ","އ","ވ","މ","ފ","ދ","ތ","ލ","ގ","ޏ","ސ","ޑ","ޒ","ޓ","ޔ","ޕ","ޖ","ޗ","ޘ","ޙ","ޚ","ޛ","ޜ","ޝ","ޞ","ޟ","ޠ","ޡ","ޢ","ޣ","ޤ","ޥ","ަ","ާ","ި","ީ","ު","ޫ","ެ","ޭ","ޮ","ޯ","ް","ა","ბ","გ","დ","ე","ვ","ზ","თ","ი","კ","ლ","მ","ნ","ო","პ","ჟ","რ","ს","ტ","უ","ფ","ქ","ღ","ყ","შ","ჩ","ც","ძ","წ","ჭ","ხ","ჯ","ჰ","α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","σ","τ","υ","φ","χ","ψ","ω","ά","έ","ί","ό","ύ","ή","ώ","ς","ϊ","ΰ","ϋ","ΐ","Α","Β","Γ","Δ","Ε","Ζ","Η","Θ","Ι","Κ","Λ","Μ","Ν","Ξ","Ο","Π","Ρ","Σ","Τ","Υ","Φ","Χ","Ψ","Ω","Ά","Έ","Ί","Ό","Ύ","Ή","Ώ","Ϊ","Ϋ","ā","ē","ģ","ī","ķ","ļ","ņ","ū","Ā","Ē","Ģ","Ī","Ķ","Ļ","Ņ","Ū","Ќ","ќ","Љ","љ","Њ","њ","Тс","тс","ą","ć","ę","ł","ń","ś","ź","ż","Ą","Ć","Ę","Ł","Ń","Ś","Ź","Ż","Є","І","Ї","Ґ","є","і","ї","ґ","ă","Ă","ș","Ș","ț","Ț","ţ","Ţ","а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я","ђ","ј","ћ","џ","Ђ","Ј","Ћ","Џ","ľ","ĺ","ŕ","Ľ","Ĺ","Ŕ","ş","Ş","ı","İ","ğ","Ğ","ả","Ả","ẳ","Ẳ","ẩ","Ẩ","đ","Đ","ẹ","Ẹ","ẽ","Ẽ","ẻ","Ẻ","ế","Ế","ề","Ề","ệ","Ệ","ễ","Ễ","ể","Ể","ỏ","ọ","Ọ","ố","Ố","ồ","Ồ","ổ","Ổ","ộ","Ộ","ỗ","Ỗ","ơ","Ơ","ớ","Ớ","ờ","Ờ","ợ","Ợ","ỡ","Ỡ","Ở","ở","ị","Ị","ĩ","Ĩ","ỉ","Ỉ","ủ","Ủ","ụ","Ụ","ũ","Ũ","ư","Ư","ứ","Ứ","ừ","Ừ","ự","Ự","ữ","Ữ","ử","Ử","ỷ","Ỷ","ỳ","Ỳ","ỵ","Ỵ","ỹ","Ỹ","ạ","Ạ","ấ","Ấ","ầ","Ầ","ậ","Ậ","ẫ","Ẫ","ắ","Ắ","ằ","Ằ","ặ","Ặ","ẵ","Ẵ","“","”","‘","’","∂","ƒ","™","©","œ","Œ","®","†","℠","…","˚","º","ª","•","၊","။","€","₢","₣","£","₤","₦","₧","₩","₪","₫","₭","₮","₯","₱","₲","₳","₴","₵","¢","¥","元","円","﷼","₠","฿","₨","₹","₰","₺","؋","₼","лв","៛","₡","₸","ден","zł","₽","₾","ာ","ါ","ေ","ဲ","ိ","ီ","ို","ု","ူ","ေါင်","ော","ော်","ေါ","ေါ်","်","က်","ိုက်","ောက်","င်","ိုင်","ောင်","စ်","ည်","တ်","ိတ်","ုတ်","ွတ်","ေတ်","ဒ်","ိုဒ်","ုဒ်","န်","ာန်","ိန်","ုန်","ွန်","ပ်","ိပ်","ုပ်","ွပ်","န်ုပ်","မ်","ိမ်","ုမ်","ွမ်","ယ်","ိုလ်","ဉ်","ံ","ိံ","ုံ","ައް","ަށް","az","ə","Ə","cs","fi","hu","lt","ė","į","ų","Ė","Į","Ų","lv","pl","sk","sr","tr","ar","∆","∞","♥","&","|","<",">","∑","¤","ca","de","dv","es","fa","fr","ge","gr","it","my","mk","nl","pt","ro","ru","uk","vn","hooksManager","MethodsAvailable","removeFilter","filter","callback","_removeHook","applyFilters","_runHook","addFilter","priority","_addHook","removeAction","action","doAction","addAction","STORAGE","actions","filters","hook","handlers","handler","splice","hookObject","hooks","tmpHook","prevHook","len","_hookInsertSort","Element","scrollIntoViewIfNeeded","centerIfNeeded","parentNode","parentComputedStyle","getComputedStyle","parentBorderTopWidth","getPropertyValue","parentBorderLeftWidth","overTop","overBottom","overLeft","overRight","alignWithTop","scrollIntoView","tagName","nodeName","insertAt","index","$parent","siblings","eq","before","last","children","prepend","NodeList","HTMLCollection","from","object","translateCompanionString","isString","__materialisCustomizerStrings","CP_Customizer","options","console","warn","wp","customize","query","customize_post_id","preview","pageID","events","PREVIEW_LOADED","ADD_FIXED_OVERLAYS","RIGHT_SECTION_CLOSED","ELEMENT_DECORATED","CONTENT_ROW_REMOVED","DOCUMENT_READY","STATE_UPDATED","FOCUS_CONTROL","wpApi","MAX_SAFE_INTEGER","Number","CONTENT_ELEMENTS","TEXT_ELEMENTS","THEME_MOD_NODES","cpCustomizerGlobal","pluginOptions","addContentElementsSelectors","selectors","IO","send","isObject","post","customGet","url","customSend","customPost","rest","route","utils","phpTrim","deferred","ajax","settings","Date","now","xhrFields","withCredentials","promise","Deferred","success","done","error","fail","jqXHR","response","resolveWith","rejectWith","abort","key","defaultValue","keyParts","isUndefined","__exportsCache","getSectionExports","sectionId","jquery","sectionData","pop","modules","export","eval","slugPrefix","log","name","SCRIPT_DEBUG","groupCollapsed","groupEnd","logError","unbind","async","ev","originalCallback","cb","one","showLoader","$select","selectize","blur","hideLoader","jsTPL","__containerDataHandlers","addContainerDataHandler","selector","getter","setter","__containerDataFilters","addContainerDataFilter","__modules","__modulesLoaded","addModule","popUp","title","elementID","tb_show","z-index","transform","opacity","margin-top","focus","class","popUpInfo","content","uniqueId","tempContainer","popupPrompt","extraHTML","htmlEscape","$content","onClose","canceled","newValue","trim","isFunction","closePopUps","popupSelectPrompt","emptySelection","select","tb_remove","openMultiImageManager","single","interestWindow","custom_uploader","media","frames","file_frame","multiple","attachment","state","toJSON","open","mode","frame","views","openImageManager","multi","link","openMediaCustomFrame","extender","view","MediaFrame","Select","openMIManager","cp","extendFrameWithMDI","MIFrame","openCropableImageManager","flexible","control","CroppedImageControl","params","fixCropKeyPressBug","imgAreaSelect","keyPress","button_labels","frame_title","flex_width","flex_height","initFrame","setState","setImageFromAttachment","__createCropToolbar","createCropToolbar","openGalleryImageManager","shortocode","ids","columns","size","shortcode","gallery","edit","selection","model","openMediaBrowser","mdi","getCustomizerRootEl","openRightSidebar","elementId","hideRightSidebar","$form","$container","floating","y","$toAppend","offsetWidth","$visibleSection","isRightSidebarVisible","sectionID","updateState","force","forceOverlays","_setContent","setContent","overlays","hoverOverlay","updateAllOverlays","__changesetUpdate","changeSet","requestChangesetUpdate","then","__requestCachedCbs","self","__onSetForcedTransport","setMod","transport","reqCB","initialMod","modParts","setting","clone","oldTransport","create","previewer","oldValue","_value","jsonEncoded","parsed","decodeURI","JSON","parse","path","setToPath","encodeURI","stringify","isBoolean","prop","kirkiSetSettingValue","getMod","cleanModValue","onModChange","autoMod","modCallback","setMultipleMods","mods","finishCb","modsIDs","modsDone","getOwnPropertyNames","difference","_currentContentValues","previewJQuery","maintainable","getContent","decodeURIComponent","encodeURIComponent","modsToSet","cleanURL","$el","modData","atts","attributes","fallback","cleanClose","uniqueMods","save","__saveTimeout","markSave","parseShortcode","tag","shortcodeAttrs","attrs","isShortcodeContent","$node","isShortcodeEditable","isEditableByTag","getNodeShortcode","isOnCanvasMod","node","reduce","nodeWrapsShortcode","nodeContainsShortcode","$containers","renderNodeShortcodes","$nodes","add","updateNodeShortcode","noRerender","attrShortcode","queryVars","pauseObserver","currentChangeset","deepClone","btoa","ajaxurl","empty","decorateMods","decorateElements","delay","restartObserver","updateNodeFromShortcodeObject","shortcodeObj","targetWindow","contentWindow","currentDevice","__observerFunctionsToPause","__observerOriginalFunctions","previewApi","addSilentExecution","compose","silentCall","refresh","throttle","cpCustomizerPreview","getChangesetURL","changeset","uuid","location","origin","pathname","isPageMaintainable","getSelectionTextInfo","el","selRange","testRange","atStart","atEnd","getSelection","sel","rangeCount","getRangeAt","cloneRange","selectNodeContents","setEnd","startContainer","startOffset","setStart","endContainer","endOffset","createRange","duplicate","moveToElementText","setEndPoint","isCustomFrontPage","isFrontPage","getPageContainerSelector","attrName","getRootNode","getSectionByDataId","getNodeSection","getNodeAbsSelector","relativeSelector","getNodeSectionId","getNodeExportId","getThemeMods","themeModNodesSelector","m","$themeModNodes","getContentNodes","nodes","contents","toArray","nodeType","Node","COMMENT_NODE","textContent","outerHTML","nodesHML","$currentNodes","querySelectorAll","getAttribute","inlineCss","styleProps","propParts","inlineCssText","setAttribute","removeAttribute","innerHTML","parts","cleanNode","item","not","nextSibling","decorateSectionsForGutenberg","__cleanNode","classList","elClass","href","getNodeClasses","$clone","startsWithDoubleSlash","startsWithSlash","queryKeys","removeUrlQueryStrings","fixWronglyWrappedTextNodes","markNode","prefix","addBack","insertNode","removeAttr","replaceNode","$newNode","replaceWith","hideNode","showNode","isNodeVisible","removeNode","skipUpdate","hideMovableOverlays","addOverlay","updateOverlay","insertContentSection","newRow","row","isPrevTransparent","isPrevWhite","isNumber","prevSection","prev","animate","afterInsert","editContainerData","fields","elements","elem","$elem","field","$fieldContent","classes","ready","popupContainer","_values","getValue","checked","__dataContainers","addDataContainerSelector","registerContainerDataHandler","$item","getContainersSelector","addSelectors","addContentBinds","hasAttribute","assignNode","structureAllowsRemoving","parents","isFixed","overlay","itemOverlay","parentsUntil","rowItemHoverOverlay","section","sectionExports","maintainCropPropotion","src","cachedValue","contentEditableInputEvent","elementsSpecificSelector","elementsOnFocusLeave","$this","editedNode","docFragment","createDocumentFragment","newEle","createTextNode","appendChild","range","deleteContents","setStartAfter","collapse","removeAllRanges","addRange","ctrlKey","metaKey","fromCharCode","placeCursorAtEnd","contentEditableElement","createTextRange","defaultMods","enableSortable","getGutenbergBlockCommentStart","previousSibling","maxDepth","getGutenbergBlockCommentEnd","disableGutenbergBlocks","contentEditableElements","commentNode","setNonEditableNodes","setNode","childNodes","TEXT_NODE","nextNonTextNode","elementsContainers","$toDecorate","addFixedOverlays","stopImmediatePropagation","handlePasteEvent","that","clipboardData","getData","textContainer","queryCommandSupported","execCommand","unwrap","IS_PRO","addEventListener","sortable","sections","getSections","commentOpen","commentClose","createComment","axis","start","ui","helper","display","evt","isSorting","deactivate","cursorAt","showTextElementCUI","mimeType","wpautop","docWidth","cuiRect","nodeWidth","nodeOffsetLeft","cui","getTextElementCUI","hidden","bodyElement","fire","undoManager","clear","panel","getEl","innerWidth","getBoundingClientRect","newLeft","hideTextElementCUI","getBody","getFonts","googleFonts","fonts","font","Arial","Arial Black","Andale Mono","Tahoma","Terminal","Times New Roman","Verdana","toTinyMCEFormat","getNodeFont","fontArray","_fontArray","getFontWeights","_font","family","weights","weight","editorID","editor","tinymce","inline","style_formats_merge","extended_valid_elements","formats","alignment","styles","textAlign","fontweight","fontWeight","fontsize","fontSize","fontcolor","italic","fontStyle","menubar","skin","toolbar","font_formats","paste_as_text","forced_root_block","setup","ed","bm","addButton","icon","onselect","formatter","values","onPostRender","controlIdLookup","items","menu","raw","btn","getNode","tooltip","colorPalette","spectrumEl","arrayChunk","scrollY","scroll","col","moveToBookmark","getBookmark","updateOnEditorBlur","init","overlayOnly","fakeNode","$startNode","__fixedOverlayOptions","registerFixedOverlayOptions","getOverlayOptionButton","getButtonElement","addOptionsToFixedOverlay","typeOptions","_node","nodeOverrider","identity","filteredOptions","getTitleElement","getItemsElements","hover","relatedTarget","toolbarBinds","cover","positionOnly","bounds","updateControls","pointer-events","pageYOffset","pageXOffset","position","background-color","updateOnlySections","overlaysContainer","isSection","isScrollEvent","update","findControls","sidebarID","shortcodeData","activateHeatZone","moveHandlerCallback","$handle","$first","first","center","x","bubbles","cancelable","detail","screenX","screenY","clientX","clientY","altKey","createEvent","initMouseEvent","dispatchEvent","nodeRect","offsetHeight","docHeight","elementMouseIsOver","elementFromPoint","itemHoverOverlay","addContentItemsTo","insertHandler","__registeredItems","heading","label","lead","paragraph","image","registerItem","contentElementSelector","getItemData","types","_type","_items","getItemAfter","getContentItems","subitems","parentId","$result","toolip","idAttr","_item","subitemsContainer","node_type","insertNewContent","$new","itemAfter","Materialis","previewLoadedMessageCallback","__isCPChangesetPreview","category","itemData","template","$button","data-name","itemsArray","_autop_newline_preservation_helper","matches","pee","br","pre_tags","last_pee","pee_parts","pee_part","allblocks","pees","tinkle","matched","charlist","whitespace","substring","normalizeBackgroundImageValue","htmlDecode","htmlEntityMap","\"","'","/","`","=","htmlUnescape","regExp","schema","normalizeValue","pList","remainingPath","normalizeShortcodeString","getSpectrumColorFormated","$spectrumElement","convertToArray","k","component","Control","Setting","toClone","asArray","cssValueNumber","bigArray","perGroup","groupBy","normalizeClassAttr","asSelector","getFileInfo","filename","extension","file","imageExtensions","isImageFile","fileInfo","parseUrlQuery","second","s_length","bit","stringifyUrlQuery","queryString","parseURL","hash","strings","parsedUrl","nodeMatchingClasses","firstMatchOnly","_class","colorInArray","colorsArray","includeAlpha","_color","valueToBool","_v","convertColor","toRGB","toRGBA","used","usedWoo","$activatePageCard","$openPageCard","$makeEditable","$makeProductEditable","toAppend","canMaintainThis","hasFrontPage","__shortcodesPopupControls","registerShortcodePopupControls","controls","cols","has","getShortcodePopupFields","default","getParse","openShortcodePopupEditor","shortcodesAttrs","setParse","$wrapper","$panel","editEscapedShortcodeAtts","shortcodeText","__customPopupControls","registerCustomPopupControls","getCustomPopupFields","active","openCustomPopupEditor","currentPageStyles","styleEL","mediaMap","mobile","tablet","desktop","nomedia","outputOrder","setModAndUpdate","props","propsText","sprintf_style_array","contentStyle","getStyle","removeSelector","noUpdate","getProp","pseudo","getNodeProp","getNodeProps","manager","isImportant","setProp","handeledModUpdate","removeProp","setProps","merge","recompileScssStyle","setSectionItemColor","colorMapping","colorName","getThemeColor","colorClasses","getColorsObj","cMap","oldColorClasses","newClass","colorClass","suffix","getSectionItemColor","defaultColor","firstCMap","nodeClass","getColorValue","styleUtils","generateCSSLinerGradient","angle","colors","colorsText","generateOneSideLinerGradient","transpacency","startAlpha","fromColor","middleColor","toColor","getCSSGradientColors","colorAsObject","getRGBAStringTransparency","sectionSettingsContainer","createControl","updater","settingID","controlConstructor","containerType","updaterCallback","onChange","controlContainer","renderControl","renderContent","attachWithSetter","onAttach","colorControl","iris","choices","setPallete","spinner","number","step","sizes","full","canUpload","placeholder","video","onSelect","mejsSettings","_wpmejsSettings","player","MediaElementPlayer","cleanupPlayer","button_label","gradientPro","typography","kirkiConfig","l10n","kirki","global","sectionSeparator","textarea","rows","controlsGroup","free","attach","controlHolder","checkbox","generic","repeater","repeaterContent","buttonOptions","buttonGroup","popup","info","infoPRO","itemTemplate","attachControls","onStop","setItems","afterCreation","itemContainer","handle","controlOptions","thisInput","spacing","sides","kirkiNotifications","dimension","$sectionSettingsContainer","sidebarId","panels","sectionPanel","baseArea","__controls","enabled","_exclude","exclude","include","canInclude","getPrefixed","areaTitle","initAreaTitle","addToControlsList","showAll","getControl","wrapOriginal","originalName","newFunction","wrap","panelBase","_areas","_initialized","registerArea","forceOverride","hasArea","getArea","areas","sort","area","_processExtendAreaQueue","disableArea","enableArea","excludeArea","_areasToExtend","extendCallback","extendArea","panelArea","instantiate","config","containerTemplate","pageContentPanel","itemExists","on_click","tempOptions","optionsList","on_hover","backgroundImage","endsWith","background-image","bgImage","background-size","background-position","content-align-default","content-left-sm","content-center-sm","content-right-sm","$alignHolders","contentAligns","currentTextAlign","frameSeparator","$groupEl","frameType","background","border","frameColor","frameOffsetX","frameOffsetY","frameWidth","frameHeight","frameHideOnMobile","translate","hasFrame","getFrameType","getTranslate","translateX","translateY","setTranslate","nodeSel","itemsListControlTemplate","itemOptionsControl","itemsAlign","items-align-default","start-sm","center-sm","end-sm","listItemsOrder","currentItemsAlign","canAlignRowItemsContent","original","getItemOptions","afterItemCreation","sortableItem","headingText","firstMatch","secondMatch","showInfosInOneColumn","contactFormWrapper","hasInlineInfo","containerID","companion_disable_popup_wpnonce","nonce","listItemTemplate","$contentLi","$sectionsList","skipableKeyCodes","gutenbergCounter","isGutenbergSection","openedSectionsCategories","getNextInArray","increments","focusSection","getListModel","gutenbergId","data-id","data-export-id","data-label","exportID","inMenu","anchorExistsInPrimaryMenu","updateSectionsList","availableRowsList","$controlItems","allowMultiple","closeCategory","$category","$items","nextUntil","fadeOut","$categoryTitles","fadeIn","_data","once","itemID","contentSections","insertSectionFromData","$listChildren","$sectionsSidebarTogglers","focusContentSection","toFocus","skipEvent","dataId","dataIds","sectionStyle","startPosition","newPos","startCommentNode","endCommentNode","prevNode","prevNodeCommentNode","prevNodeEndCommentNode","insertBefore","insertAfter","anchor","removeAnchorFromPrimaryMenu","labelChange","slug","found","oldId","updatePrimaryMenuAnchor","contentEditable","getPrimaryMenuID","createPrimaryMenu","addAnchorToPrimaryMenu","customizerSection","sidebar","templateOptions","evaluate","interpolate","escape","getCPTemplate","contentTemplates","text-with-checkbox","list","linked-icon","getCPScriptTemplate","compile","iconStyles","iconSizes","linkIsShortcode","$control","orig","mediaType","mediaData","currentSrc","mdiIconRegexp","canHide","classValue","$icon","toAdd","toRemove","iconStyle","iconSize","newColumnContent","unwrapComment","addSectionOverlay","addFixedOverlay","getColorComponent","$template","bgColorPalette","$reason","toolbarTitle","toolbar_binds","$changerItem","$bgChanger","toMake","$subitemsContainer","$brush","getFunctionCommentTemplate","getWPLocation","newCols","maxCols","kc","colNr","colsRegexp","$col","_classAttr","itemsNo","transition","column","node_binds","$overlay","disconnect","getGlobalOption","getPrimaryLocationModName","getHomeUrl","siteURL","canSetPrimaryLocation","getPrimaryLocationDefaultLanguageMenu","api","placeholderId","Menus","generatePlaceholderAutoIncrementId","customizeId","settingTransport","defaultSettingValues","nav_menu","menuSection","MenuSection","customizeAction","customizingMenus","menu_id","defaultMenu","icl_translation_of","menuId","getPrimaryMenu","focusPrimaryMenuCustomize","getPrimaryMenuControl","getMenuControl","menuControl","getMenuItemControls","menu_item_parent","pageURL","nav_menu_item","type_label","custom_label","nav_menu_term_id","original_title","settingArgs","menuItemControl","menu_item_id","debouncedReflowMenuItems","itemsControl","oldAnchor","newAnchor","itemControl","$controlsHolder","refreshControls","controls_ids","_c"],"mappings":"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IAAA,GACAC,IAAA,GAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,GAIAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IAEAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAEAC,IAAA,IAEAC,IAAA,IAEAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAEAC,IAAA,IAIAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,KAAA,KACAC,KAAA,KAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAEAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAKAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,GACAC,IAAA,IACAC,IAAA,GACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,GACAC,IAAA,IACAC,IAAA,GACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KAGAC,IAAA,KACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,KAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAOAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,OACAC,IAAA,MACAC,IAAA,KACAC,IAAA,KACAC,IAAA,MACAC,IAAA,IACAC,IAAA,OACAC,IAAA,MACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAjxC,EAAA,MACAkxC,IAAA,MACAC,IAAA,MACAC,IAAA,MACAC,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","file":"customizer.bundle.min.js","sourcesContent":["// Spectrum Colorpicker v1.8.0\n// https://github.com/bgrins/spectrum\n// Author: Brian Grinstead\n// License: MIT\n\n(function (factory) {\n \"use strict\";\n\n if (typeof define === 'function' && define.amd) { // AMD\n define(['jquery'], factory);\n } else if (typeof exports == \"object\" && typeof module == \"object\") { // CommonJS\n module.exports = factory(require('jquery'));\n } else { // Browser\n factory(jQuery);\n }\n})(function ($, undefined) {\n \"use strict\";\n\n var defaultOpts = {\n\n // Callbacks\n beforeShow: noop,\n move: noop,\n change: noop,\n show: noop,\n hide: noop,\n\n // Options\n color: false,\n flat: false,\n showInput: false,\n allowEmpty: false,\n showButtons: true,\n clickoutFiresChange: true,\n showInitial: false,\n showPalette: false,\n showPaletteOnly: false,\n hideAfterPaletteSelect: false,\n togglePaletteOnly: false,\n showSelectionPalette: true,\n localStorageKey: false,\n appendTo: \"body\",\n maxSelectionSize: 7,\n cancelText: \"cancel\",\n chooseText: \"choose\",\n togglePaletteMoreText: \"more\",\n togglePaletteLessText: \"less\",\n clearText: \"Clear Color Selection\",\n noColorSelectedText: \"No Color Selected\",\n preferredFormat: false,\n className: \"\", // Deprecated - use containerClassName and replacerClassName instead.\n containerClassName: \"\",\n replacerClassName: \"\",\n showAlpha: false,\n theme: \"sp-light\",\n palette: [[\"#ffffff\", \"#000000\", \"#ff0000\", \"#ff8000\", \"#ffff00\", \"#008000\", \"#0000ff\", \"#4b0082\", \"#9400d3\"]],\n selectionPalette: [],\n disabled: false,\n offset: null\n },\n spectrums = [],\n IE = !!/msie/i.exec(window.navigator.userAgent),\n rgbaSupport = (function () {\n function contains(str, substr) {\n return !!~('' + str).indexOf(substr);\n }\n\n var elem = document.createElement('div');\n var style = elem.style;\n style.cssText = 'background-color:rgba(0,0,0,.5)';\n return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');\n })(),\n replaceInput = [\n \"<div class='sp-replacer'>\",\n \"<div class='sp-preview'><div class='sp-preview-inner'></div></div>\",\n \"<div class='sp-dd'>▼</div>\",\n \"</div>\"\n ].join(''),\n markup = (function () {\n\n // IE does not support gradients with multiple stops, so we need to simulate\n // that for the rainbow slider with 8 divs that each have a single gradient\n var gradientFix = \"\";\n if (IE) {\n for (var i = 1; i <= 6; i++) {\n gradientFix += \"<div class='sp-\" + i + \"'></div>\";\n }\n }\n\n return [\n \"<div class='sp-container sp-hidden'>\",\n \"<div class='sp-palette-container'>\",\n \"<div class='sp-palette sp-thumb sp-cf'></div>\",\n \"<div class='sp-palette-button-container sp-cf'>\",\n \"<button type='button' class='sp-palette-toggle'></button>\",\n \"</div>\",\n \"</div>\",\n \"<div class='sp-picker-container'>\",\n \"<div class='sp-top sp-cf'>\",\n \"<div class='sp-fill'></div>\",\n \"<div class='sp-top-inner'>\",\n \"<div class='sp-color'>\",\n \"<div class='sp-sat'>\",\n \"<div class='sp-val'>\",\n \"<div class='sp-dragger'></div>\",\n \"</div>\",\n \"</div>\",\n \"</div>\",\n \"<div class='sp-clear sp-clear-display'>\",\n \"</div>\",\n \"<div class='sp-hue'>\",\n \"<div class='sp-slider'></div>\",\n gradientFix,\n \"</div>\",\n \"</div>\",\n \"<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>\",\n \"</div>\",\n \"<div class='sp-input-container sp-cf'>\",\n \"<input class='sp-input' type='text' spellcheck='false' />\",\n \"</div>\",\n \"<div class='sp-initial sp-thumb sp-cf'></div>\",\n \"<div class='sp-button-container sp-cf'>\",\n \"<a class='sp-cancel' href='#'></a>\",\n \"<button type='button' class='sp-choose'></button>\",\n \"</div>\",\n \"</div>\",\n \"</div>\"\n ].join(\"\");\n })();\n\n function paletteTemplate(p, color, className, opts) {\n var html = [];\n for (var i = 0; i < p.length; i++) {\n var current = p[i];\n if (current) {\n var tiny = tinycolor(current);\n var c = tiny.toHsl().l < 0.5 ? \"sp-thumb-el sp-thumb-dark\" : \"sp-thumb-el sp-thumb-light\";\n c += (tinycolor.equals(color, current)) ? \" sp-thumb-active\" : \"\";\n var formattedString = tiny.toString(opts.preferredFormat || \"rgb\");\n var swatchStyle = rgbaSupport ? (\"background-color:\" + tiny.toRgbString()) : \"filter:\" + tiny.toFilter();\n html.push('<span title=\"' + formattedString + '\" data-color=\"' + tiny.toRgbString() + '\" class=\"' + c + '\"><span class=\"sp-thumb-inner\" style=\"' + swatchStyle + ';\" ></span></span>');\n } else {\n var cls = 'sp-clear-display';\n html.push($('<div />')\n .append($('<span data-color=\"\" style=\"background-color:transparent;\" class=\"' + cls + '\"></span>')\n .attr('title', opts.noColorSelectedText)\n )\n .html()\n );\n }\n }\n return \"<div class='sp-cf \" + className + \"'>\" + html.join('') + \"</div>\";\n }\n\n function hideAll() {\n for (var i = 0; i < spectrums.length; i++) {\n if (spectrums[i]) {\n spectrums[i].hide();\n }\n }\n }\n\n function instanceOptions(o, callbackContext) {\n var opts = $.extend({}, defaultOpts, o);\n opts.callbacks = {\n 'move': bind(opts.move, callbackContext),\n 'change': bind(opts.change, callbackContext),\n 'show': bind(opts.show, callbackContext),\n 'hide': bind(opts.hide, callbackContext),\n 'beforeShow': bind(opts.beforeShow, callbackContext)\n };\n\n return opts;\n }\n\n function spectrum(element, o) {\n\n\n var opts = instanceOptions(o, element),\n flat = opts.flat,\n showSelectionPalette = opts.showSelectionPalette,\n localStorageKey = opts.localStorageKey,\n theme = opts.theme,\n callbacks = opts.callbacks,\n resize = throttle(reflow, 10),\n visible = false,\n isDragging = false,\n dragWidth = 0,\n dragHeight = 0,\n dragHelperHeight = 0,\n slideHeight = 0,\n slideWidth = 0,\n alphaWidth = 0,\n alphaSlideHelperWidth = 0,\n slideHelperHeight = 0,\n currentHue = 0,\n currentSaturation = 0,\n currentValue = 0,\n currentAlpha = 1,\n palette = [],\n paletteArray = [],\n paletteLookup = {},\n selectionPalette = opts.selectionPalette.slice(0),\n maxSelectionSize = opts.maxSelectionSize,\n draggingClass = \"sp-dragging\",\n shiftMovementDirection = null;\n\n var doc = element.ownerDocument,\n body = doc.body,\n boundElement = $(element),\n disabled = false,\n container = $(markup, doc).addClass(theme),\n pickerContainer = container.find(\".sp-picker-container\"),\n dragger = container.find(\".sp-color\"),\n dragHelper = container.find(\".sp-dragger\"),\n slider = container.find(\".sp-hue\"),\n slideHelper = container.find(\".sp-slider\"),\n alphaSliderInner = container.find(\".sp-alpha-inner\"),\n alphaSlider = container.find(\".sp-alpha\"),\n alphaSlideHelper = container.find(\".sp-alpha-handle\"),\n textInput = container.find(\".sp-input\"),\n paletteContainer = container.find(\".sp-palette\"),\n initialColorContainer = container.find(\".sp-initial\"),\n cancelButton = container.find(\".sp-cancel\"),\n clearButton = container.find(\".sp-clear\"),\n chooseButton = container.find(\".sp-choose\"),\n toggleButton = container.find(\".sp-palette-toggle\"),\n isInput = boundElement.is(\"input\"),\n isInputTypeColor = isInput && boundElement.attr(\"type\") === \"color\" && inputTypeColorSupport(),\n shouldReplace = isInput && !flat,\n replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]),\n offsetElement = (shouldReplace) ? replacer : boundElement,\n previewElement = replacer.find(\".sp-preview-inner\"),\n initialColor = opts.color || (isInput && boundElement.val()),\n colorOnShow = false,\n currentPreferredFormat = opts.preferredFormat,\n clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,\n isEmpty = !initialColor,\n allowEmpty = opts.allowEmpty && !isInputTypeColor;\n\n var observer = null;\n\n function applyOptions() {\n\n if (opts.showPaletteOnly) {\n opts.showPalette = true;\n }\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n\n if (opts.palette) {\n palette = opts.palette.slice(0);\n paletteArray = $.isArray(palette[0]) ? palette : [palette];\n paletteLookup = {};\n for (var i = 0; i < paletteArray.length; i++) {\n for (var j = 0; j < paletteArray[i].length; j++) {\n var rgb = tinycolor(paletteArray[i][j]).toRgbString();\n paletteLookup[rgb] = true;\n }\n }\n }\n\n container.toggleClass(\"sp-flat\", flat);\n container.toggleClass(\"sp-input-disabled\", !opts.showInput);\n container.toggleClass(\"sp-alpha-enabled\", opts.showAlpha);\n container.toggleClass(\"sp-clear-enabled\", allowEmpty);\n container.toggleClass(\"sp-buttons-disabled\", !opts.showButtons);\n container.toggleClass(\"sp-palette-buttons-disabled\", !opts.togglePaletteOnly);\n container.toggleClass(\"sp-palette-disabled\", !opts.showPalette);\n container.toggleClass(\"sp-palette-only\", opts.showPaletteOnly);\n container.toggleClass(\"sp-initial-disabled\", !opts.showInitial);\n container.addClass(opts.className).addClass(opts.containerClassName);\n\n reflow();\n }\n\n function initialize() {\n\n if (IE) {\n container.find(\"*:not(input)\").attr(\"unselectable\", \"on\");\n }\n\n applyOptions();\n\n if (shouldReplace) {\n boundElement.after(replacer).hide();\n }\n\n if (!allowEmpty) {\n clearButton.hide();\n }\n\n if (flat) {\n boundElement.after(container).hide();\n } else {\n\n var appendTo = opts.appendTo === \"parent\" ? boundElement.parent() : $(opts.appendTo);\n if (appendTo.length !== 1) {\n appendTo = $(\"body\");\n }\n\n appendTo.append(container);\n }\n\n updateSelectionPaletteFromStorage();\n\n\n offsetElement.on(\"click.spectrum touchstart.spectrum\", function (e) {\n if (!disabled) {\n toggle();\n }\n\n e.stopPropagation();\n\n if (!$(e.target).is(\"input\")) {\n e.preventDefault();\n }\n });\n\n if (boundElement.is(\":disabled\") || (opts.disabled === true)) {\n disable();\n }\n\n // Prevent clicks from bubbling up to document. This would cause it to be hidden.\n container.click(stopPropagation);\n\n // Handle user typed input\n textInput.change(setFromTextInput);\n textInput.on(\"paste\", function () {\n setTimeout(setFromTextInput, 1);\n });\n textInput.keydown(function (e) {\n if (e.keyCode == 13) {\n setFromTextInput();\n }\n });\n\n cancelButton.text(opts.cancelText);\n cancelButton.on(\"click.spectrum\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n revert();\n hide();\n });\n\n clearButton.attr(\"title\", opts.clearText);\n clearButton.on(\"click.spectrum\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n isEmpty = true;\n move();\n\n if (flat) {\n //for the flat style, this is a change event\n updateOriginalInput(true);\n }\n });\n\n chooseButton.text(opts.chooseText);\n chooseButton.on(\"click.spectrum\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n if (IE && textInput.is(\":focus\")) {\n textInput.trigger('change');\n }\n\n if (isValid()) {\n updateOriginalInput(true);\n hide();\n }\n });\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n toggleButton.on(\"click.spectrum\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n opts.showPaletteOnly = !opts.showPaletteOnly;\n\n // To make sure the Picker area is drawn on the right, next to the\n // Palette area (and not below the palette), first move the Palette\n // to the left to make space for the picker, plus 5px extra.\n // The 'applyOptions' function puts the whole container back into place\n // and takes care of the button-text and the sp-palette-only CSS class.\n if (!opts.showPaletteOnly && !flat) {\n container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));\n }\n applyOptions();\n });\n\n draggable(alphaSlider, function (dragX, dragY, e) {\n currentAlpha = (dragX / alphaWidth);\n isEmpty = false;\n if (e.shiftKey) {\n currentAlpha = Math.round(currentAlpha * 10) / 10;\n }\n\n move();\n }, dragStart, dragStop);\n\n draggable(slider, function (dragX, dragY) {\n currentHue = parseFloat(dragY / slideHeight);\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n move();\n }, dragStart, dragStop);\n\n draggable(dragger, function (dragX, dragY, e) {\n\n // shift+drag should snap the movement to either the x or y axis.\n if (!e.shiftKey) {\n shiftMovementDirection = null;\n } else if (!shiftMovementDirection) {\n var oldDragX = currentSaturation * dragWidth;\n var oldDragY = dragHeight - (currentValue * dragHeight);\n var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);\n\n shiftMovementDirection = furtherFromX ? \"x\" : \"y\";\n }\n\n var setSaturation = !shiftMovementDirection || shiftMovementDirection === \"x\";\n var setValue = !shiftMovementDirection || shiftMovementDirection === \"y\";\n\n if (setSaturation) {\n currentSaturation = parseFloat(dragX / dragWidth);\n }\n if (setValue) {\n currentValue = parseFloat((dragHeight - dragY) / dragHeight);\n }\n\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n\n move();\n\n }, dragStart, dragStop);\n\n if (!!initialColor) {\n set(initialColor);\n\n // In case color was black - update the preview UI and set the format\n // since the set function will not run (default color is black).\n updateUI();\n currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format;\n\n addColorToSelectionPalette(initialColor);\n } else {\n updateUI();\n }\n\n if (flat) {\n show();\n }\n\n function paletteElementClick(e) {\n if (e.data && e.data.ignore) {\n set($(e.target).closest(\".sp-thumb-el\").data(\"color\"));\n move();\n } else {\n set($(e.target).closest(\".sp-thumb-el\").data(\"color\"));\n move();\n\n // If the picker is going to close immediately, a palette selection\n // is a change. Otherwise, it's a move only.\n if (opts.hideAfterPaletteSelect) {\n updateOriginalInput(true);\n hide();\n } else {\n updateOriginalInput();\n }\n }\n\n return false;\n }\n\n var paletteEvent = IE ? \"mousedown.spectrum\" : \"click.spectrum touchstart.spectrum\";\n paletteContainer.on(paletteEvent, \".sp-thumb-el\", paletteElementClick);\n initialColorContainer.on(paletteEvent, \".sp-thumb-el:nth-child(1)\", {ignore: true}, paletteElementClick);\n }\n\n function updateSelectionPaletteFromStorage() {\n\n if (localStorageKey && window.localStorage) {\n\n // Migrate old palettes over to new format. May want to remove this eventually.\n try {\n var oldPalette = window.localStorage[localStorageKey].split(\",#\");\n if (oldPalette.length > 1) {\n delete window.localStorage[localStorageKey];\n $.each(oldPalette, function (i, c) {\n addColorToSelectionPalette(c);\n });\n }\n } catch (e) {\n }\n\n try {\n selectionPalette = window.localStorage[localStorageKey].split(\";\");\n } catch (e) {\n }\n }\n }\n\n function addColorToSelectionPalette(color) {\n if (showSelectionPalette) {\n var rgb = tinycolor(color).toRgbString();\n if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {\n selectionPalette.push(rgb);\n while (selectionPalette.length > maxSelectionSize) {\n selectionPalette.shift();\n }\n }\n\n if (localStorageKey && window.localStorage) {\n try {\n window.localStorage[localStorageKey] = selectionPalette.join(\";\");\n } catch (e) {\n }\n }\n }\n }\n\n function getUniqueSelectionPalette() {\n var unique = [];\n if (opts.showPalette) {\n for (var i = 0; i < selectionPalette.length; i++) {\n var rgb = tinycolor(selectionPalette[i]).toRgbString();\n\n if (!paletteLookup[rgb]) {\n unique.push(selectionPalette[i]);\n }\n }\n }\n\n return unique.reverse().slice(0, opts.maxSelectionSize);\n }\n\n function drawPalette() {\n\n var currentColor = get();\n\n var html = $.map(paletteArray, function (palette, i) {\n return paletteTemplate(palette, currentColor, \"sp-palette-row sp-palette-row-\" + i, opts);\n });\n\n updateSelectionPaletteFromStorage();\n\n if (selectionPalette) {\n html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, \"sp-palette-row sp-palette-row-selection\", opts));\n }\n\n paletteContainer.html(html.join(\"\"));\n }\n\n function drawInitial() {\n if (opts.showInitial) {\n var initial = colorOnShow;\n var current = get();\n initialColorContainer.html(paletteTemplate([initial, current], current, \"sp-palette-row-initial\", opts));\n }\n }\n\n function dragStart() {\n if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {\n reflow();\n }\n isDragging = true;\n container.addClass(draggingClass);\n shiftMovementDirection = null;\n boundElement.trigger('dragstart.spectrum', [get()]);\n }\n\n function dragStop() {\n isDragging = false;\n container.removeClass(draggingClass);\n boundElement.trigger('dragstop.spectrum', [get()]);\n }\n\n function setFromTextInput() {\n\n var value = textInput.val();\n\n if ((value === null || value === \"\") && allowEmpty) {\n set(null);\n move();\n updateOriginalInput();\n } else {\n var tiny = tinycolor(value);\n if (tiny.isValid()) {\n set(tiny);\n move();\n updateOriginalInput();\n } else {\n textInput.addClass(\"sp-validation-error\");\n }\n }\n }\n\n function toggle() {\n if (visible) {\n hide();\n } else {\n show();\n }\n }\n\n function show() {\n var event = $.Event('beforeShow.spectrum');\n\n if (visible) {\n reflow();\n return;\n }\n\n\n boundElement.trigger(event, [get()]);\n\n if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {\n return;\n }\n\n hideAll();\n visible = true;\n\n $(doc).on(\"keydown.spectrum\", onkeydown);\n $(doc).on(\"click.spectrum\", clickout);\n $(window).on(\"resize.spectrum\", resize);\n replacer.addClass(\"sp-active\");\n container.removeClass(\"sp-hidden\");\n\n reflow();\n updateUI();\n\n colorOnShow = get();\n\n drawInitial();\n callbacks.show(colorOnShow);\n boundElement.trigger('show.spectrum', [colorOnShow]);\n\n\n var observerCallback = function () {\n var parentEl = boundElement.parent();\n\n if (!parentEl.is(':visible') || parentEl.css('visibility') === 'hidden'\n ) {\n clearInterval(observer);\n hide();\n }\n };\n\n observer = setInterval(observerCallback, 200)\n }\n\n function onkeydown(e) {\n // Close on ESC\n if (e.keyCode === 27) {\n hide();\n }\n }\n\n function clickout(e) {\n // Return on right click.\n if (e.button == 2) {\n return;\n }\n\n // If a drag event was happening during the mouseup, don't hide\n // on click.\n if (isDragging) {\n return;\n }\n\n if (clickoutFiresChange) {\n updateOriginalInput(true);\n } else {\n revert();\n }\n hide();\n }\n\n function hide() {\n // Return if hiding is unnecessary\n if (!visible || flat) {\n return;\n }\n visible = false;\n\n $(doc).off(\"keydown.spectrum\", onkeydown);\n $(doc).off(\"click.spectrum\", clickout);\n $(window).off(\"resize.spectrum\", resize);\n\n replacer.removeClass(\"sp-active\");\n container.addClass(\"sp-hidden\");\n\n callbacks.hide(get());\n boundElement.trigger('hide.spectrum', [get()]);\n }\n\n function revert() {\n set(colorOnShow, true);\n updateOriginalInput(true);\n }\n\n function set(color, ignoreFormatChange) {\n if (tinycolor.equals(color, get())) {\n // Update UI just in case a validation error needs\n // to be cleared.\n updateUI();\n return;\n }\n\n var newColor, newHsv;\n if (!color && allowEmpty) {\n isEmpty = true;\n } else {\n isEmpty = false;\n newColor = tinycolor(color);\n newHsv = newColor.toHsv();\n\n currentHue = (newHsv.h % 360) / 360;\n currentSaturation = newHsv.s;\n currentValue = newHsv.v;\n currentAlpha = newHsv.a;\n }\n updateUI();\n\n if (newColor && newColor.isValid() && !ignoreFormatChange) {\n currentPreferredFormat = opts.preferredFormat || newColor.getFormat();\n }\n }\n\n function get(opts) {\n opts = opts || {};\n\n if (allowEmpty && isEmpty) {\n return null;\n }\n\n return tinycolor.fromRatio({\n h: currentHue,\n s: currentSaturation,\n v: currentValue,\n a: Math.round(currentAlpha * 1000) / 1000\n }, {format: opts.format || currentPreferredFormat});\n }\n\n function isValid() {\n return !textInput.hasClass(\"sp-validation-error\");\n }\n\n function move() {\n updateUI();\n\n callbacks.move(get());\n boundElement.trigger('move.spectrum', [get()]);\n }\n\n function updateUI() {\n\n textInput.removeClass(\"sp-validation-error\");\n\n updateHelperLocations();\n\n // Update dragger background color (gradients take care of saturation and value).\n var flatColor = tinycolor.fromRatio({h: currentHue, s: 1, v: 1});\n dragger.css(\"background-color\", flatColor.toHexString());\n\n // Get a format that alpha will be included in (hex and names ignore alpha)\n var format = currentPreferredFormat;\n if (currentAlpha < 1 && !(currentAlpha === 0 && format === \"name\")) {\n if (format === \"hex\" || format === \"hex3\" || format === \"hex6\" || format === \"name\") {\n format = \"rgb\";\n }\n }\n\n var realColor = get({format: format}),\n displayColor = '';\n\n //reset background info for preview element\n previewElement.removeClass(\"sp-clear-display\");\n previewElement.css('background-color', 'transparent');\n\n if (!realColor && allowEmpty) {\n // Update the replaced elements background with icon indicating no color selection\n previewElement.addClass(\"sp-clear-display\");\n } else {\n var realHex = realColor.toHexString(),\n realRgb = realColor.toRgbString();\n\n // Update the replaced elements background color (with actual selected color)\n if (rgbaSupport || realColor.alpha === 1) {\n previewElement.css(\"background-color\", realRgb);\n } else {\n previewElement.css(\"background-color\", \"transparent\");\n previewElement.css(\"filter\", realColor.toFilter());\n }\n\n if (opts.showAlpha) {\n var rgb = realColor.toRgb();\n rgb.a = 0;\n var realAlpha = tinycolor(rgb).toRgbString();\n var gradient = \"linear-gradient(left, \" + realAlpha + \", \" + realHex + \")\";\n\n if (IE) {\n alphaSliderInner.css(\"filter\", tinycolor(realAlpha).toFilter({gradientType: 1}, realHex));\n } else {\n alphaSliderInner.css(\"background\", \"-webkit-\" + gradient);\n alphaSliderInner.css(\"background\", \"-moz-\" + gradient);\n alphaSliderInner.css(\"background\", \"-ms-\" + gradient);\n // Use current syntax gradient on unprefixed property.\n alphaSliderInner.css(\"background\",\n \"linear-gradient(to right, \" + realAlpha + \", \" + realHex + \")\");\n }\n }\n\n displayColor = realColor.toString(format);\n }\n\n // Update the text entry input as it changes happen\n if (opts.showInput) {\n textInput.val(displayColor);\n }\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n drawInitial();\n }\n\n function updateHelperLocations() {\n var s = currentSaturation;\n var v = currentValue;\n\n if (allowEmpty && isEmpty) {\n //if selected color is empty, hide the helpers\n alphaSlideHelper.hide();\n slideHelper.hide();\n dragHelper.hide();\n } else {\n //make sure helpers are visible\n alphaSlideHelper.show();\n slideHelper.show();\n dragHelper.show();\n\n // Where to show the little circle in that displays your current selected color\n var dragX = s * dragWidth;\n var dragY = dragHeight - (v * dragHeight);\n dragX = Math.max(\n -dragHelperHeight,\n Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight)\n );\n dragY = Math.max(\n -dragHelperHeight,\n Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight)\n );\n dragHelper.css({\n \"top\": dragY + \"px\",\n \"left\": dragX + \"px\"\n });\n\n var alphaX = currentAlpha * alphaWidth;\n alphaSlideHelper.css({\n \"left\": (alphaX - (alphaSlideHelperWidth / 2)) + \"px\"\n });\n\n // Where to show the bar that displays your current selected hue\n var slideY = (currentHue) * slideHeight;\n slideHelper.css({\n \"top\": (slideY - slideHelperHeight) + \"px\"\n });\n }\n }\n\n function updateOriginalInput(fireCallback) {\n var color = get(),\n displayColor = '',\n hasChanged = !tinycolor.equals(color, colorOnShow);\n\n if (color) {\n displayColor = color.toString(currentPreferredFormat);\n // Update the selection palette with the current color\n addColorToSelectionPalette(color);\n }\n\n if (isInput) {\n boundElement.val(displayColor);\n }\n\n if (fireCallback && hasChanged) {\n callbacks.change(color);\n boundElement.trigger('change', [color]);\n }\n }\n\n function reflow() {\n if (!visible) {\n return; // Calculations would be useless and wouldn't be reliable anyways\n }\n dragWidth = dragger.width();\n dragHeight = dragger.height();\n dragHelperHeight = dragHelper.height();\n slideWidth = slider.width();\n slideHeight = slider.height();\n slideHelperHeight = slideHelper.height();\n alphaWidth = alphaSlider.width();\n alphaSlideHelperWidth = alphaSlideHelper.width();\n\n if (!flat) {\n container.css(\"position\", \"absolute\");\n if (opts.offset) {\n container.offset(opts.offset);\n } else {\n container.offset(getOffset(container, offsetElement));\n }\n }\n\n updateHelperLocations();\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n boundElement.trigger('reflow.spectrum');\n }\n\n function destroy() {\n boundElement.show();\n offsetElement.off(\"click.spectrum touchstart.spectrum\");\n container.remove();\n replacer.remove();\n spectrums[spect.id] = null;\n }\n\n function option(optionName, optionValue) {\n if (optionName === undefined) {\n return $.extend({}, opts);\n }\n if (optionValue === undefined) {\n return opts[optionName];\n }\n\n opts[optionName] = optionValue;\n\n if (optionName === \"preferredFormat\") {\n currentPreferredFormat = opts.preferredFormat;\n }\n applyOptions();\n }\n\n function enable() {\n disabled = false;\n boundElement.attr(\"disabled\", false);\n offsetElement.removeClass(\"sp-disabled\");\n }\n\n function disable() {\n hide();\n disabled = true;\n boundElement.attr(\"disabled\", true);\n offsetElement.addClass(\"sp-disabled\");\n }\n\n function setOffset(coord) {\n opts.offset = coord;\n reflow();\n }\n\n initialize();\n\n var spect = {\n show: show,\n hide: hide,\n toggle: toggle,\n reflow: reflow,\n option: option,\n enable: enable,\n disable: disable,\n offset: setOffset,\n set: function (c) {\n set(c);\n updateOriginalInput();\n },\n get: get,\n destroy: destroy,\n container: container\n };\n\n spect.id = spectrums.push(spect) - 1;\n\n return spect;\n }\n\n /**\n * checkOffset - get the offset below/above and left/right element depending on screen position\n * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js\n */\n function getOffset(picker, input) {\n var extraY = 0;\n var dpWidth = picker.outerWidth();\n var dpHeight = picker.outerHeight();\n var inputHeight = input.outerHeight();\n var doc = picker[0].ownerDocument;\n var docElem = doc.documentElement;\n var viewWidth = docElem.clientWidth + $(doc).scrollLeft();\n var viewHeight = docElem.clientHeight + $(doc).scrollTop();\n var offset = input.offset();\n var offsetLeft = offset.left;\n var offsetTop = offset.top;\n\n offsetTop += inputHeight;\n\n offsetLeft -=\n Math.min(offsetLeft, (offsetLeft + dpWidth > viewWidth && viewWidth > dpWidth) ?\n Math.abs(offsetLeft + dpWidth - viewWidth) : 0);\n\n offsetTop -=\n Math.min(offsetTop, ((offsetTop + dpHeight > viewHeight && viewHeight > dpHeight) ?\n Math.abs(dpHeight + inputHeight - extraY) : extraY));\n\n return {\n top: offsetTop,\n bottom: offset.bottom,\n left: offsetLeft,\n right: offset.right,\n width: offset.width,\n height: offset.height\n };\n }\n\n /**\n * noop - do nothing\n */\n function noop() {\n\n }\n\n /**\n * stopPropagation - makes the code only doing this a little easier to read in line\n */\n function stopPropagation(e) {\n e.stopPropagation();\n }\n\n /**\n * Create a function bound to a given object\n * Thanks to underscore.js\n */\n function bind(func, obj) {\n var slice = Array.prototype.slice;\n var args = slice.call(arguments, 2);\n return function () {\n return func.apply(obj, args.concat(slice.call(arguments)));\n };\n }\n\n /**\n * Lightweight drag helper. Handles containment within the element, so that\n * when dragging, the x is within [0,element.width] and y is within [0,element.height]\n */\n function draggable(element, onmove, onstart, onstop) {\n onmove = onmove || function () {\n };\n onstart = onstart || function () {\n };\n onstop = onstop || function () {\n };\n var doc = document;\n var dragging = false;\n var offset = {};\n var maxHeight = 0;\n var maxWidth = 0;\n var hasTouch = ('ontouchstart' in window);\n\n var duringDragEvents = {};\n duringDragEvents[\"selectstart\"] = prevent;\n duringDragEvents[\"dragstart\"] = prevent;\n duringDragEvents[\"touchmove mousemove\"] = move;\n duringDragEvents[\"touchend mouseup\"] = stop;\n\n function prevent(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.returnValue = false;\n }\n\n function move(e) {\n if (dragging) {\n // Mouseup happened outside of window\n if (IE && doc.documentMode < 9 && !e.button) {\n return stop();\n }\n\n var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0];\n var pageX = t0 && t0.pageX || e.pageX;\n var pageY = t0 && t0.pageY || e.pageY;\n\n var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));\n var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));\n\n if (hasTouch) {\n // Stop scrolling in iOS\n prevent(e);\n }\n\n onmove.apply(element, [dragX, dragY, e]);\n }\n }\n\n function start(e) {\n var rightclick = (e.which) ? (e.which == 3) : (e.button == 2);\n\n if (!rightclick && !dragging) {\n if (onstart.apply(element, arguments) !== false) {\n dragging = true;\n maxHeight = $(element).height();\n maxWidth = $(element).width();\n offset = $(element).offset();\n\n $(doc).on(duringDragEvents);\n $(doc.body).addClass(\"sp-dragging\");\n\n move(e);\n\n prevent(e);\n }\n }\n }\n\n function stop() {\n if (dragging) {\n $(doc).off(duringDragEvents);\n $(doc.body).removeClass(\"sp-dragging\");\n\n // Wait a tick before notifying observers to allow the click event\n // to fire in Chrome.\n setTimeout(function () {\n onstop.apply(element, arguments);\n }, 0);\n }\n dragging = false;\n }\n\n $(element).on(\"touchstart mousedown\", start);\n }\n\n function throttle(func, wait, debounce) {\n var timeout;\n return function () {\n var context = this, args = arguments;\n var throttler = function () {\n timeout = null;\n func.apply(context, args);\n };\n if (debounce) clearTimeout(timeout);\n if (debounce || !timeout) timeout = setTimeout(throttler, wait);\n };\n }\n\n function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this, args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n };\n\n function inputTypeColorSupport() {\n return $.fn.spectrum.inputTypeColorSupport();\n }\n\n /**\n * Define a jQuery plugin\n */\n var dataID = \"spectrum.id\";\n $.fn.spectrum = function (opts, extra) {\n\n if (typeof opts == \"string\") {\n\n var returnValue = this;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var spect = spectrums[$(this).data(dataID)];\n if (spect) {\n var method = spect[opts];\n if (!method) {\n throw new Error(\"Spectrum: no such method: '\" + opts + \"'\");\n }\n\n if (opts == \"get\") {\n returnValue = spect.get();\n } else if (opts == \"container\") {\n returnValue = spect.container;\n } else if (opts == \"option\") {\n returnValue = spect.option.apply(spect, args);\n } else if (opts == \"destroy\") {\n spect.destroy();\n $(this).removeData(dataID);\n } else {\n method.apply(spect, args);\n }\n }\n });\n\n return returnValue;\n }\n\n // Initializing a new instance of spectrum\n return this.spectrum(\"destroy\").each(function () {\n var options = $.extend({}, $(this).data(), opts);\n var spect = spectrum(this, options);\n $(this).data(dataID, spect.id);\n });\n };\n\n $.fn.spectrum.load = true;\n $.fn.spectrum.loadOpts = {};\n $.fn.spectrum.draggable = draggable;\n $.fn.spectrum.defaults = defaultOpts;\n $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {\n if (typeof inputTypeColorSupport._cachedResult === \"undefined\") {\n var colorInput = $(\"<input type='color'/>\")[0]; // if color element is supported, value will default to not null\n inputTypeColorSupport._cachedResult = colorInput.type === \"color\" && colorInput.value !== \"\";\n }\n return inputTypeColorSupport._cachedResult;\n };\n\n $.spectrum = {};\n $.spectrum.localization = {};\n $.spectrum.palettes = {};\n\n $.fn.spectrum.processNativeColorInputs = function () {\n var colorInputs = $(\"input[type=color]\");\n if (colorInputs.length && !inputTypeColorSupport()) {\n colorInputs.spectrum({\n preferredFormat: \"hex6\"\n });\n }\n };\n\n // TinyColor v1.1.2\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n (function () {\n\n var trimLeft = /^[\\s,#]+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n math = Math,\n mathRound = math.round,\n mathMin = math.min,\n mathMax = math.max,\n mathRandom = math.random;\n\n var tinycolor = function (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(1000 * this._a) / 1000,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) {\n this._r = mathRound(this._r);\n }\n if (this._g < 1) {\n this._g = mathRound(this._g);\n }\n if (this._b < 1) {\n this._b = mathRound(this._b);\n }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n };\n\n tinycolor.prototype = {\n isDark: function () {\n return this.getBrightness() < 128;\n },\n isLight: function () {\n return !this.isDark();\n },\n isValid: function () {\n return this._ok;\n },\n getOriginalInput: function () {\n return this._originalInput;\n },\n getFormat: function () {\n return this._format;\n },\n getAlpha: function () {\n return this._a;\n },\n getBrightness: function () {\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n setAlpha: function (value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(1000 * this._a) / 1000;\n return this;\n },\n toHsv: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a};\n },\n toHsvString: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a};\n },\n toHslString: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function (allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function (allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function () {\n return rgbaToHex(this._r, this._g, this._b, this._a);\n },\n toHex8String: function () {\n return '#' + this.toHex8();\n },\n toRgb: function () {\n return {r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a};\n },\n toRgbString: function () {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function () {\n return {\n r: mathRound(bound01(this._r, 255) * 100) + \"%\",\n g: mathRound(bound01(this._g, 255) * 100) + \"%\",\n b: mathRound(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function () {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function () {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function (secondColor) {\n var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = s.toHex8String();\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function (format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n\n _applyModification: function (fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function () {\n return this._applyModification(lighten, arguments);\n },\n brighten: function () {\n return this._applyModification(brighten, arguments);\n },\n darken: function () {\n return this._applyModification(darken, arguments);\n },\n desaturate: function () {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function () {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function () {\n return this._applyModification(greyscale, arguments);\n },\n spin: function () {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function (fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function () {\n return this._applyCombination(analogous, arguments);\n },\n complement: function () {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function () {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function () {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function () {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function () {\n return this._applyCombination(tetrad, arguments);\n }\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n\n var rgb = {r: 0, g: 0, b: 0};\n var a = 1;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (color.hasOwnProperty(\"r\") && color.hasOwnProperty(\"g\") && color.hasOwnProperty(\"b\")) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (color.hasOwnProperty(\"h\") && color.hasOwnProperty(\"s\") && color.hasOwnProperty(\"v\")) {\n color.s = convertToPercentage(color.s);\n color.v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, color.s, color.v);\n ok = true;\n format = \"hsv\";\n } else if (color.hasOwnProperty(\"h\") && color.hasOwnProperty(\"s\") && color.hasOwnProperty(\"l\")) {\n color.s = convertToPercentage(color.s);\n color.l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, color.s, color.l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n }\n\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // <http://www.w3.org/TR/css3-color/>\n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return {h: h, s: s, l: l};\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return {r: r * 255, g: g * 255, b: b * 255};\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {h: h, s: s, v: v};\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return {r: r * 255, g: g * 255, b: b * 255};\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n }\n\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b and a are contained in the set [0, 255]\n // Returns an 8 character hex\n function rgbaToHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) {\n return false;\n }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n };\n\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\n function desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n\n function lighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n function brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n\n function darken(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (mathRound(hsl.h) + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\n function complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n\n function triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({h: (h + 120) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({h: (h + 240) % 360, s: hsl.s, l: hsl.l})\n ];\n }\n\n function tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({h: (h + 90) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({h: (h + 180) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({h: (h + 270) % 360, s: hsl.s, l: hsl.l})\n ];\n }\n\n function splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n }\n\n function analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n\n function monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n var w = p * 2 - 1;\n var a = rgb2.a - rgb1.a;\n\n var w1;\n\n if (w * a == -1) {\n w1 = w;\n } else {\n w1 = (w + a) / (1 + w * a);\n }\n\n w1 = (w1 + 1) / 2;\n\n var w2 = 1 - w1;\n\n var rgba = {\n r: rgb2.r * w1 + rgb1.r * w2,\n g: rgb2.g * w1 + rgb1.g * w2,\n b: rgb2.b * w1 + rgb1.b * w2,\n a: rgb2.a * p + rgb1.a * (1 - p)\n };\n\n return tinycolor(rgba);\n };\n\n\n // Readability Functions\n // ---------------------\n // <http://www.w3.org/TR/AERT#color-contrast>\n\n // `readability`\n // Analyze the 2 colors and returns an object with the following properties:\n // `brightness`: difference in brightness between the two colors\n // `color`: difference in color/hue between the two colors\n tinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n var rgb1 = c1.toRgb();\n var rgb2 = c2.toRgb();\n var brightnessA = c1.getBrightness();\n var brightnessB = c2.getBrightness();\n var colorDiff = (\n Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) +\n Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) +\n Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b)\n );\n\n return {\n brightness: Math.abs(brightnessA - brightnessB),\n color: colorDiff\n };\n };\n\n // `readable`\n // http://www.w3.org/TR/AERT#color-contrast\n // Ensure that foreground and background color combinations provide sufficient contrast.\n // *Example*\n // tinycolor.isReadable(\"#000\", \"#111\") => false\n tinycolor.isReadable = function (color1, color2) {\n var readability = tinycolor.readability(color1, color2);\n return readability.brightness > 125 && readability.color > 500;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // *Example*\n // tinycolor.mostReadable(\"#123\", [\"#fff\", \"#000\"]) => \"#000\"\n tinycolor.mostReadable = function (baseColor, colorList) {\n var bestColor = null;\n var bestScore = 0;\n var bestIsReadable = false;\n for (var i = 0; i < colorList.length; i++) {\n\n // We normalize both around the \"acceptable\" breaking point,\n // but rank brightness constrast higher than hue.\n\n var readability = tinycolor.readability(baseColor, colorList[i]);\n var readable = readability.brightness > 125 && readability.color > 500;\n var score = 3 * (readability.brightness / 125) + (readability.color / 500);\n\n if ((readable && !bestIsReadable) ||\n (readable && bestIsReadable && score > bestScore) ||\n ((!readable) && (!bestIsReadable) && score > bestScore)) {\n bestIsReadable = readable;\n bestScore = score;\n bestColor = tinycolor(colorList[i]);\n }\n }\n return bestColor;\n };\n\n\n // Big List of Colors\n // ------------------\n // <http://www.w3.org/TR/css3-color/#svg-color>\n var names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n };\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = tinycolor.hexNames = flip(names);\n\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = \"100%\";\n }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return mathMin(1, mathMax(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n }\n\n var matchers = (function () {\n\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n })();\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == 'transparent') {\n return {r: 0, g: 0, b: 0, a: 0, format: \"name\"};\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return {r: match[1], g: match[2], b: match[3]};\n }\n if ((match = matchers.rgba.exec(color))) {\n return {r: match[1], g: match[2], b: match[3], a: match[4]};\n }\n if ((match = matchers.hsl.exec(color))) {\n return {h: match[1], s: match[2], l: match[3]};\n }\n if ((match = matchers.hsla.exec(color))) {\n return {h: match[1], s: match[2], l: match[3], a: match[4]};\n }\n if ((match = matchers.hsv.exec(color))) {\n return {h: match[1], s: match[2], v: match[3]};\n }\n if ((match = matchers.hsva.exec(color))) {\n return {h: match[1], s: match[2], v: match[3], a: match[4]};\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n a: convertHexToDecimal(match[1]),\n r: parseIntFromHex(match[2]),\n g: parseIntFromHex(match[3]),\n b: parseIntFromHex(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n }\n\n window.tinycolor = tinycolor;\n })();\n\n $(function () {\n if ($.fn.spectrum.load) {\n $.fn.spectrum.processNativeColorInputs();\n }\n });\n\n\n});","(function (root) {\n 'use strict';\n\n /**\n * charMap\n * @type {Object}\n */\n var charMap = {\n\n // latin\n 'À': 'A',\n 'Á': 'A',\n 'Â': 'A',\n 'Ã': 'A',\n 'Ä': 'Ae',\n 'Å': 'A',\n 'Æ': 'AE',\n 'Ç': 'C',\n 'È': 'E',\n 'É': 'E',\n 'Ê': 'E',\n 'Ë': 'E',\n 'Ì': 'I',\n 'Í': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ð': 'D',\n 'Ñ': 'N',\n 'Ò': 'O',\n 'Ó': 'O',\n 'Ô': 'O',\n 'Õ': 'O',\n 'Ö': 'Oe',\n 'Ő': 'O',\n 'Ø': 'O',\n 'Ù': 'U',\n 'Ú': 'U',\n 'Û': 'U',\n 'Ü': 'Ue',\n 'Ű': 'U',\n 'Ý': 'Y',\n 'Þ': 'TH',\n 'ß': 'ss',\n 'à': 'a',\n 'á': 'a',\n 'â': 'a',\n 'ã': 'a',\n 'ä': 'ae',\n 'å': 'a',\n 'æ': 'ae',\n 'ç': 'c',\n 'è': 'e',\n 'é': 'e',\n 'ê': 'e',\n 'ë': 'e',\n 'ì': 'i',\n 'í': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ð': 'd',\n 'ñ': 'n',\n 'ò': 'o',\n 'ó': 'o',\n 'ô': 'o',\n 'õ': 'o',\n 'ö': 'oe',\n 'ő': 'o',\n 'ø': 'o',\n 'ù': 'u',\n 'ú': 'u',\n 'û': 'u',\n 'ü': 'ue',\n 'ű': 'u',\n 'ý': 'y',\n 'þ': 'th',\n 'ÿ': 'y',\n 'ẞ': 'SS',\n\n // language specific\n\n // Arabic\n 'ا': 'a',\n 'أ': 'a',\n 'إ': 'i',\n 'آ': 'aa',\n 'ؤ': 'u',\n 'ئ': 'e',\n 'ء': 'a',\n 'ب': 'b',\n 'ت': 't',\n 'ث': 'th',\n 'ج': 'j',\n 'ح': 'h',\n 'خ': 'kh',\n 'د': 'd',\n 'ذ': 'th',\n 'ر': 'r',\n 'ز': 'z',\n 'س': 's',\n 'ش': 'sh',\n 'ص': 's',\n 'ض': 'dh',\n 'ط': 't',\n 'ظ': 'z',\n 'ع': 'a',\n 'غ': 'gh',\n 'ف': 'f',\n 'ق': 'q',\n 'ك': 'k',\n 'ل': 'l',\n 'م': 'm',\n 'ن': 'n',\n 'ه': 'h',\n 'و': 'w',\n 'ي': 'y',\n 'ى': 'a',\n 'ة': 'h',\n 'ﻻ': 'la',\n 'ﻷ': 'laa',\n 'ﻹ': 'lai',\n 'ﻵ': 'laa',\n\n // Persian additional characters than Arabic\n 'گ': 'g',\n 'چ': 'ch',\n 'پ': 'p',\n 'ژ': 'zh',\n 'ک': 'k',\n 'ی': 'y',\n\n // Arabic diactrics\n 'َ': 'a',\n 'ً': 'an',\n 'ِ': 'e',\n 'ٍ': 'en',\n 'ُ': 'u',\n 'ٌ': 'on',\n 'ْ': '',\n\n // Arabic numbers\n '٠': '0',\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n\n // Persian numbers\n '۰': '0',\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n\n // Burmese consonants\n 'က': 'k',\n 'ခ': 'kh',\n 'ဂ': 'g',\n 'ဃ': 'ga',\n 'င': 'ng',\n 'စ': 's',\n 'ဆ': 'sa',\n 'ဇ': 'z',\n 'စျ': 'za',\n 'ည': 'ny',\n 'ဋ': 't',\n 'ဌ': 'ta',\n 'ဍ': 'd',\n 'ဎ': 'da',\n 'ဏ': 'na',\n 'တ': 't',\n 'ထ': 'ta',\n 'ဒ': 'd',\n 'ဓ': 'da',\n 'န': 'n',\n 'ပ': 'p',\n 'ဖ': 'pa',\n 'ဗ': 'b',\n 'ဘ': 'ba',\n 'မ': 'm',\n 'ယ': 'y',\n 'ရ': 'ya',\n 'လ': 'l',\n 'ဝ': 'w',\n 'သ': 'th',\n 'ဟ': 'h',\n 'ဠ': 'la',\n 'အ': 'a',\n // consonant character combos\n 'ြ': 'y',\n 'ျ': 'ya',\n 'ွ': 'w',\n 'ြွ': 'yw',\n 'ျွ': 'ywa',\n 'ှ': 'h',\n // independent vowels\n 'ဧ': 'e',\n '၏': '-e',\n 'ဣ': 'i',\n 'ဤ': '-i',\n 'ဉ': 'u',\n 'ဦ': '-u',\n 'ဩ': 'aw',\n 'သြော': 'aw',\n 'ဪ': 'aw',\n // numbers\n '၀': '0',\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n // virama and tone marks which are silent in transliteration\n '္': '',\n '့': '',\n 'း': '',\n\n // Czech\n 'č': 'c',\n 'ď': 'd',\n 'ě': 'e',\n 'ň': 'n',\n 'ř': 'r',\n 'š': 's',\n 'ť': 't',\n 'ů': 'u',\n 'ž': 'z',\n 'Č': 'C',\n 'Ď': 'D',\n 'Ě': 'E',\n 'Ň': 'N',\n 'Ř': 'R',\n 'Š': 'S',\n 'Ť': 'T',\n 'Ů': 'U',\n 'Ž': 'Z',\n\n // Dhivehi\n 'ހ': 'h',\n 'ށ': 'sh',\n 'ނ': 'n',\n 'ރ': 'r',\n 'ބ': 'b',\n 'ޅ': 'lh',\n 'ކ': 'k',\n 'އ': 'a',\n 'ވ': 'v',\n 'މ': 'm',\n 'ފ': 'f',\n 'ދ': 'dh',\n 'ތ': 'th',\n 'ލ': 'l',\n 'ގ': 'g',\n 'ޏ': 'gn',\n 'ސ': 's',\n 'ޑ': 'd',\n 'ޒ': 'z',\n 'ޓ': 't',\n 'ޔ': 'y',\n 'ޕ': 'p',\n 'ޖ': 'j',\n 'ޗ': 'ch',\n 'ޘ': 'tt',\n 'ޙ': 'hh',\n 'ޚ': 'kh',\n 'ޛ': 'th',\n 'ޜ': 'z',\n 'ޝ': 'sh',\n 'ޞ': 's',\n 'ޟ': 'd',\n 'ޠ': 't',\n 'ޡ': 'z',\n 'ޢ': 'a',\n 'ޣ': 'gh',\n 'ޤ': 'q',\n 'ޥ': 'w',\n 'ަ': 'a',\n 'ާ': 'aa',\n 'ި': 'i',\n 'ީ': 'ee',\n 'ު': 'u',\n 'ޫ': 'oo',\n 'ެ': 'e',\n 'ޭ': 'ey',\n 'ޮ': 'o',\n 'ޯ': 'oa',\n 'ް': '',\n\n // Georgian https://en.wikipedia.org/wiki/Romanization_of_Georgian\n // National system (2002)\n 'ა': 'a',\n 'ბ': 'b',\n 'გ': 'g',\n 'დ': 'd',\n 'ე': 'e',\n 'ვ': 'v',\n 'ზ': 'z',\n 'თ': 't',\n 'ი': 'i',\n 'კ': 'k',\n 'ლ': 'l',\n 'მ': 'm',\n 'ნ': 'n',\n 'ო': 'o',\n 'პ': 'p',\n 'ჟ': 'zh',\n 'რ': 'r',\n 'ს': 's',\n 'ტ': 't',\n 'უ': 'u',\n 'ფ': 'p',\n 'ქ': 'k',\n 'ღ': 'gh',\n 'ყ': 'q',\n 'შ': 'sh',\n 'ჩ': 'ch',\n 'ც': 'ts',\n 'ძ': 'dz',\n 'წ': 'ts',\n 'ჭ': 'ch',\n 'ხ': 'kh',\n 'ჯ': 'j',\n 'ჰ': 'h',\n\n // Greek\n 'α': 'a',\n 'β': 'v',\n 'γ': 'g',\n 'δ': 'd',\n 'ε': 'e',\n 'ζ': 'z',\n 'η': 'i',\n 'θ': 'th',\n 'ι': 'i',\n 'κ': 'k',\n 'λ': 'l',\n 'μ': 'm',\n 'ν': 'n',\n 'ξ': 'ks',\n 'ο': 'o',\n 'π': 'p',\n 'ρ': 'r',\n 'σ': 's',\n 'τ': 't',\n 'υ': 'y',\n 'φ': 'f',\n 'χ': 'x',\n 'ψ': 'ps',\n 'ω': 'o',\n 'ά': 'a',\n 'έ': 'e',\n 'ί': 'i',\n 'ό': 'o',\n 'ύ': 'y',\n 'ή': 'i',\n 'ώ': 'o',\n 'ς': 's',\n 'ϊ': 'i',\n 'ΰ': 'y',\n 'ϋ': 'y',\n 'ΐ': 'i',\n 'Α': 'A',\n 'Β': 'B',\n 'Γ': 'G',\n 'Δ': 'D',\n 'Ε': 'E',\n 'Ζ': 'Z',\n 'Η': 'I',\n 'Θ': 'TH',\n 'Ι': 'I',\n 'Κ': 'K',\n 'Λ': 'L',\n 'Μ': 'M',\n 'Ν': 'N',\n 'Ξ': 'KS',\n 'Ο': 'O',\n 'Π': 'P',\n 'Ρ': 'R',\n 'Σ': 'S',\n 'Τ': 'T',\n 'Υ': 'Y',\n 'Φ': 'F',\n 'Χ': 'X',\n 'Ψ': 'PS',\n 'Ω': 'O',\n 'Ά': 'A',\n 'Έ': 'E',\n 'Ί': 'I',\n 'Ό': 'O',\n 'Ύ': 'Y',\n 'Ή': 'I',\n 'Ώ': 'O',\n 'Ϊ': 'I',\n 'Ϋ': 'Y',\n\n // Latvian\n 'ā': 'a',\n // 'č': 'c', // duplicate\n 'ē': 'e',\n 'ģ': 'g',\n 'ī': 'i',\n 'ķ': 'k',\n 'ļ': 'l',\n 'ņ': 'n',\n // 'š': 's', // duplicate\n 'ū': 'u',\n // 'ž': 'z', // duplicate\n 'Ā': 'A',\n // 'Č': 'C', // duplicate\n 'Ē': 'E',\n 'Ģ': 'G',\n 'Ī': 'I',\n 'Ķ': 'k',\n 'Ļ': 'L',\n 'Ņ': 'N',\n // 'Š': 'S', // duplicate\n 'Ū': 'U',\n // 'Ž': 'Z', // duplicate\n\n // Macedonian\n 'Ќ': 'Kj',\n 'ќ': 'kj',\n 'Љ': 'Lj',\n 'љ': 'lj',\n 'Њ': 'Nj',\n 'њ': 'nj',\n 'Тс': 'Ts',\n 'тс': 'ts',\n\n // Polish\n 'ą': 'a',\n 'ć': 'c',\n 'ę': 'e',\n 'ł': 'l',\n 'ń': 'n',\n // 'ó': 'o', // duplicate\n 'ś': 's',\n 'ź': 'z',\n 'ż': 'z',\n 'Ą': 'A',\n 'Ć': 'C',\n 'Ę': 'E',\n 'Ł': 'L',\n 'Ń': 'N',\n 'Ś': 'S',\n 'Ź': 'Z',\n 'Ż': 'Z',\n\n // Ukranian\n 'Є': 'Ye',\n 'І': 'I',\n 'Ї': 'Yi',\n 'Ґ': 'G',\n 'є': 'ye',\n 'і': 'i',\n 'ї': 'yi',\n 'ґ': 'g',\n\n // Romanian\n 'ă': 'a',\n 'Ă': 'A',\n 'ș': 's',\n 'Ș': 'S',\n // 'ş': 's', // duplicate\n // 'Ş': 'S', // duplicate\n 'ț': 't',\n 'Ț': 'T',\n 'ţ': 't',\n 'Ţ': 'T',\n\n // Russian https://en.wikipedia.org/wiki/Romanization_of_Russian\n // ICAO\n\n 'а': 'a',\n 'б': 'b',\n 'в': 'v',\n 'г': 'g',\n 'д': 'd',\n 'е': 'e',\n 'ё': 'yo',\n 'ж': 'zh',\n 'з': 'z',\n 'и': 'i',\n 'й': 'i',\n 'к': 'k',\n 'л': 'l',\n 'м': 'm',\n 'н': 'n',\n 'о': 'o',\n 'п': 'p',\n 'р': 'r',\n 'с': 's',\n 'т': 't',\n 'у': 'u',\n 'ф': 'f',\n 'х': 'kh',\n 'ц': 'c',\n 'ч': 'ch',\n 'ш': 'sh',\n 'щ': 'sh',\n 'ъ': '',\n 'ы': 'y',\n 'ь': '',\n 'э': 'e',\n 'ю': 'yu',\n 'я': 'ya',\n 'А': 'A',\n 'Б': 'B',\n 'В': 'V',\n 'Г': 'G',\n 'Д': 'D',\n 'Е': 'E',\n 'Ё': 'Yo',\n 'Ж': 'Zh',\n 'З': 'Z',\n 'И': 'I',\n 'Й': 'I',\n 'К': 'K',\n 'Л': 'L',\n 'М': 'M',\n 'Н': 'N',\n 'О': 'O',\n 'П': 'P',\n 'Р': 'R',\n 'С': 'S',\n 'Т': 'T',\n 'У': 'U',\n 'Ф': 'F',\n 'Х': 'Kh',\n 'Ц': 'C',\n 'Ч': 'Ch',\n 'Ш': 'Sh',\n 'Щ': 'Sh',\n 'Ъ': '',\n 'Ы': 'Y',\n 'Ь': '',\n 'Э': 'E',\n 'Ю': 'Yu',\n 'Я': 'Ya',\n\n // Serbian\n 'ђ': 'dj',\n 'ј': 'j',\n // 'љ': 'lj', // duplicate\n // 'њ': 'nj', // duplicate\n 'ћ': 'c',\n 'џ': 'dz',\n 'Ђ': 'Dj',\n 'Ј': 'j',\n // 'Љ': 'Lj', // duplicate\n // 'Њ': 'Nj', // duplicate\n 'Ћ': 'C',\n 'Џ': 'Dz',\n\n // Slovak\n 'ľ': 'l',\n 'ĺ': 'l',\n 'ŕ': 'r',\n 'Ľ': 'L',\n 'Ĺ': 'L',\n 'Ŕ': 'R',\n\n // Turkish\n 'ş': 's',\n 'Ş': 'S',\n 'ı': 'i',\n 'İ': 'I',\n // 'ç': 'c', // duplicate\n // 'Ç': 'C', // duplicate\n // 'ü': 'u', // duplicate, see langCharMap\n // 'Ü': 'U', // duplicate, see langCharMap\n // 'ö': 'o', // duplicate, see langCharMap\n // 'Ö': 'O', // duplicate, see langCharMap\n 'ğ': 'g',\n 'Ğ': 'G',\n\n // Vietnamese\n 'ả': 'a',\n 'Ả': 'A',\n 'ẳ': 'a',\n 'Ẳ': 'A',\n 'ẩ': 'a',\n 'Ẩ': 'A',\n 'đ': 'd',\n 'Đ': 'D',\n 'ẹ': 'e',\n 'Ẹ': 'E',\n 'ẽ': 'e',\n 'Ẽ': 'E',\n 'ẻ': 'e',\n 'Ẻ': 'E',\n 'ế': 'e',\n 'Ế': 'E',\n 'ề': 'e',\n 'Ề': 'E',\n 'ệ': 'e',\n 'Ệ': 'E',\n 'ễ': 'e',\n 'Ễ': 'E',\n 'ể': 'e',\n 'Ể': 'E',\n 'ỏ': 'o',\n 'ọ': 'o',\n 'Ọ': 'o',\n 'ố': 'o',\n 'Ố': 'O',\n 'ồ': 'o',\n 'Ồ': 'O',\n 'ổ': 'o',\n 'Ổ': 'O',\n 'ộ': 'o',\n 'Ộ': 'O',\n 'ỗ': 'o',\n 'Ỗ': 'O',\n 'ơ': 'o',\n 'Ơ': 'O',\n 'ớ': 'o',\n 'Ớ': 'O',\n 'ờ': 'o',\n 'Ờ': 'O',\n 'ợ': 'o',\n 'Ợ': 'O',\n 'ỡ': 'o',\n 'Ỡ': 'O',\n 'Ở': 'o',\n 'ở': 'o',\n 'ị': 'i',\n 'Ị': 'I',\n 'ĩ': 'i',\n 'Ĩ': 'I',\n 'ỉ': 'i',\n 'Ỉ': 'i',\n 'ủ': 'u',\n 'Ủ': 'U',\n 'ụ': 'u',\n 'Ụ': 'U',\n 'ũ': 'u',\n 'Ũ': 'U',\n 'ư': 'u',\n 'Ư': 'U',\n 'ứ': 'u',\n 'Ứ': 'U',\n 'ừ': 'u',\n 'Ừ': 'U',\n 'ự': 'u',\n 'Ự': 'U',\n 'ữ': 'u',\n 'Ữ': 'U',\n 'ử': 'u',\n 'Ử': 'ư',\n 'ỷ': 'y',\n 'Ỷ': 'y',\n 'ỳ': 'y',\n 'Ỳ': 'Y',\n 'ỵ': 'y',\n 'Ỵ': 'Y',\n 'ỹ': 'y',\n 'Ỹ': 'Y',\n 'ạ': 'a',\n 'Ạ': 'A',\n 'ấ': 'a',\n 'Ấ': 'A',\n 'ầ': 'a',\n 'Ầ': 'A',\n 'ậ': 'a',\n 'Ậ': 'A',\n 'ẫ': 'a',\n 'Ẫ': 'A',\n // 'ă': 'a', // duplicate\n // 'Ă': 'A', // duplicate\n 'ắ': 'a',\n 'Ắ': 'A',\n 'ằ': 'a',\n 'Ằ': 'A',\n 'ặ': 'a',\n 'Ặ': 'A',\n 'ẵ': 'a',\n 'Ẵ': 'A',\n\n // symbols\n '“': '\"',\n '”': '\"',\n '‘': \"'\",\n '’': \"'\",\n '∂': 'd',\n 'ƒ': 'f',\n '™': '(TM)',\n '©': '(C)',\n 'œ': 'oe',\n 'Œ': 'OE',\n '®': '(R)',\n '†': '+',\n '℠': '(SM)',\n '…': '...',\n '˚': 'o',\n 'º': 'o',\n 'ª': 'a',\n '•': '*',\n '၊': ',',\n '။': '.',\n\n // currency\n '$': 'USD',\n '€': 'EUR',\n '₢': 'BRN',\n '₣': 'FRF',\n '£': 'GBP',\n '₤': 'ITL',\n '₦': 'NGN',\n '₧': 'ESP',\n '₩': 'KRW',\n '₪': 'ILS',\n '₫': 'VND',\n '₭': 'LAK',\n '₮': 'MNT',\n '₯': 'GRD',\n '₱': 'ARS',\n '₲': 'PYG',\n '₳': 'ARA',\n '₴': 'UAH',\n '₵': 'GHS',\n '¢': 'cent',\n '¥': 'CNY',\n '元': 'CNY',\n '円': 'YEN',\n '﷼': 'IRR',\n '₠': 'EWE',\n '฿': 'THB',\n '₨': 'INR',\n '₹': 'INR',\n '₰': 'PF',\n '₺': 'TRY',\n '؋': 'AFN',\n '₼': 'AZN',\n 'лв': 'BGN',\n '៛': 'KHR',\n '₡': 'CRC',\n '₸': 'KZT',\n 'ден': 'MKD',\n 'zł': 'PLN',\n '₽': 'RUB',\n '₾': 'GEL'\n\n };\n\n /**\n * special look ahead character array\n * These characters form with consonants to become 'single'/consonant combo\n * @type [Array]\n */\n var lookAheadCharArray = [\n // burmese\n '်',\n\n // Dhivehi\n 'ް'\n ];\n\n /**\n * diatricMap for languages where transliteration changes entirely as more diatrics are added\n * @type {Object}\n */\n var diatricMap = {\n // Burmese\n // dependent vowels\n 'ာ': 'a',\n 'ါ': 'a',\n 'ေ': 'e',\n 'ဲ': 'e',\n 'ိ': 'i',\n 'ီ': 'i',\n 'ို': 'o',\n 'ု': 'u',\n 'ူ': 'u',\n 'ေါင်': 'aung',\n 'ော': 'aw',\n 'ော်': 'aw',\n 'ေါ': 'aw',\n 'ေါ်': 'aw',\n '်': '်', // this is special case but the character will be converted to latin in the code\n 'က်': 'et',\n 'ိုက်': 'aik',\n 'ောက်': 'auk',\n 'င်': 'in',\n 'ိုင်': 'aing',\n 'ောင်': 'aung',\n 'စ်': 'it',\n 'ည်': 'i',\n 'တ်': 'at',\n 'ိတ်': 'eik',\n 'ုတ်': 'ok',\n 'ွတ်': 'ut',\n 'ေတ်': 'it',\n 'ဒ်': 'd',\n 'ိုဒ်': 'ok',\n 'ုဒ်': 'ait',\n 'န်': 'an',\n 'ာန်': 'an',\n 'ိန်': 'ein',\n 'ုန်': 'on',\n 'ွန်': 'un',\n 'ပ်': 'at',\n 'ိပ်': 'eik',\n 'ုပ်': 'ok',\n 'ွပ်': 'ut',\n 'န်ုပ်': 'nub',\n 'မ်': 'an',\n 'ိမ်': 'ein',\n 'ုမ်': 'on',\n 'ွမ်': 'un',\n 'ယ်': 'e',\n 'ိုလ်': 'ol',\n 'ဉ်': 'in',\n 'ံ': 'an',\n 'ိံ': 'ein',\n 'ုံ': 'on',\n\n // Dhivehi\n 'ައް': 'ah',\n 'ަށް': 'ah'\n };\n\n /**\n * langCharMap language specific characters translations\n * @type {Object}\n */\n var langCharMap = {\n 'en': {}, // default language\n\n 'az': { // Azerbaijani\n 'ç': 'c',\n 'ə': 'e',\n 'ğ': 'g',\n 'ı': 'i',\n 'ö': 'o',\n 'ş': 's',\n 'ü': 'u',\n 'Ç': 'C',\n 'Ə': 'E',\n 'Ğ': 'G',\n 'İ': 'I',\n 'Ö': 'O',\n 'Ş': 'S',\n 'Ü': 'U'\n },\n\n 'cs': { // Czech\n 'č': 'c',\n 'ď': 'd',\n 'ě': 'e',\n 'ň': 'n',\n 'ř': 'r',\n 'š': 's',\n 'ť': 't',\n 'ů': 'u',\n 'ž': 'z',\n 'Č': 'C',\n 'Ď': 'D',\n 'Ě': 'E',\n 'Ň': 'N',\n 'Ř': 'R',\n 'Š': 'S',\n 'Ť': 'T',\n 'Ů': 'U',\n 'Ž': 'Z'\n },\n\n 'fi': { // Finnish\n // 'å': 'a', duplicate see charMap/latin\n // 'Å': 'A', duplicate see charMap/latin\n 'ä': 'a', // ok\n 'Ä': 'A', // ok\n 'ö': 'o', // ok\n 'Ö': 'O' // ok\n },\n\n 'hu': { // Hungarian\n 'ä': 'a', // ok\n 'Ä': 'A', // ok\n // 'á': 'a', duplicate see charMap/latin\n // 'Á': 'A', duplicate see charMap/latin\n 'ö': 'o', // ok\n 'Ö': 'O', // ok\n // 'ő': 'o', duplicate see charMap/latin\n // 'Ő': 'O', duplicate see charMap/latin\n 'ü': 'u',\n 'Ü': 'U',\n 'ű': 'u',\n 'Ű': 'U'\n },\n\n 'lt': { // Lithuanian\n 'ą': 'a',\n 'č': 'c',\n 'ę': 'e',\n 'ė': 'e',\n 'į': 'i',\n 'š': 's',\n 'ų': 'u',\n 'ū': 'u',\n 'ž': 'z',\n 'Ą': 'A',\n 'Č': 'C',\n 'Ę': 'E',\n 'Ė': 'E',\n 'Į': 'I',\n 'Š': 'S',\n 'Ų': 'U',\n 'Ū': 'U'\n },\n\n 'lv': { // Latvian\n 'ā': 'a',\n 'č': 'c',\n 'ē': 'e',\n 'ģ': 'g',\n 'ī': 'i',\n 'ķ': 'k',\n 'ļ': 'l',\n 'ņ': 'n',\n 'š': 's',\n 'ū': 'u',\n 'ž': 'z',\n 'Ā': 'A',\n 'Č': 'C',\n 'Ē': 'E',\n 'Ģ': 'G',\n 'Ī': 'i',\n 'Ķ': 'k',\n 'Ļ': 'L',\n 'Ņ': 'N',\n 'Š': 'S',\n 'Ū': 'u',\n 'Ž': 'Z'\n },\n\n 'pl': { // Polish\n 'ą': 'a',\n 'ć': 'c',\n 'ę': 'e',\n 'ł': 'l',\n 'ń': 'n',\n 'ó': 'o',\n 'ś': 's',\n 'ź': 'z',\n 'ż': 'z',\n 'Ą': 'A',\n 'Ć': 'C',\n 'Ę': 'e',\n 'Ł': 'L',\n 'Ń': 'N',\n 'Ó': 'O',\n 'Ś': 'S',\n 'Ź': 'Z',\n 'Ż': 'Z'\n },\n\n 'sk': { // Slovak\n 'ä': 'a',\n 'Ä': 'A'\n },\n\n 'sr': { // Serbian\n 'љ': 'lj',\n 'њ': 'nj',\n 'Љ': 'Lj',\n 'Њ': 'Nj',\n 'đ': 'dj',\n 'Đ': 'Dj'\n },\n\n 'tr': { // Turkish\n 'Ü': 'U',\n 'Ö': 'O',\n 'ü': 'u',\n 'ö': 'o'\n }\n };\n\n /**\n * symbolMap language specific symbol translations\n * translations must be transliterated already\n * @type {Object}\n */\n var symbolMap = {\n 'ar': {\n '∆': 'delta',\n '∞': 'la-nihaya',\n '♥': 'hob',\n '&': 'wa',\n '|': 'aw',\n '<': 'aqal-men',\n '>': 'akbar-men',\n '∑': 'majmou',\n '¤': 'omla'\n },\n\n 'az': {},\n\n 'ca': {\n '∆': 'delta',\n '∞': 'infinit',\n '♥': 'amor',\n '&': 'i',\n '|': 'o',\n '<': 'menys que',\n '>': 'mes que',\n '∑': 'suma dels',\n '¤': 'moneda'\n },\n\n 'cs': {\n '∆': 'delta',\n '∞': 'nekonecno',\n '♥': 'laska',\n '&': 'a',\n '|': 'nebo',\n '<': 'mensi nez',\n '>': 'vetsi nez',\n '∑': 'soucet',\n '¤': 'mena'\n },\n\n 'de': {\n '∆': 'delta',\n '∞': 'unendlich',\n '♥': 'Liebe',\n '&': 'und',\n '|': 'oder',\n '<': 'kleiner als',\n '>': 'groesser als',\n '∑': 'Summe von',\n '¤': 'Waehrung'\n },\n\n 'dv': {\n '∆': 'delta',\n '∞': 'kolunulaa',\n '♥': 'loabi',\n '&': 'aai',\n '|': 'noonee',\n '<': 'ah vure kuda',\n '>': 'ah vure bodu',\n '∑': 'jumula',\n '¤': 'faisaa'\n },\n\n 'en': {\n '∆': 'delta',\n '∞': 'infinity',\n '♥': 'love',\n '&': 'and',\n '|': 'or',\n '<': 'less than',\n '>': 'greater than',\n '∑': 'sum',\n '¤': 'currency'\n },\n\n 'es': {\n '∆': 'delta',\n '∞': 'infinito',\n '♥': 'amor',\n '&': 'y',\n '|': 'u',\n '<': 'menos que',\n '>': 'mas que',\n '∑': 'suma de los',\n '¤': 'moneda'\n },\n\n 'fa': {\n '∆': 'delta',\n '∞': 'bi-nahayat',\n '♥': 'eshgh',\n '&': 'va',\n '|': 'ya',\n '<': 'kamtar-az',\n '>': 'bishtar-az',\n '∑': 'majmooe',\n '¤': 'vahed'\n },\n\n 'fi': {\n '∆': 'delta',\n '∞': 'aarettomyys',\n '♥': 'rakkaus',\n '&': 'ja',\n '|': 'tai',\n '<': 'pienempi kuin',\n '>': 'suurempi kuin',\n '∑': 'summa',\n '¤': 'valuutta'\n },\n\n 'fr': {\n '∆': 'delta',\n '∞': 'infiniment',\n '♥': 'Amour',\n '&': 'et',\n '|': 'ou',\n '<': 'moins que',\n '>': 'superieure a',\n '∑': 'somme des',\n '¤': 'monnaie'\n },\n\n 'ge': {\n '∆': 'delta',\n '∞': 'usasruloba',\n '♥': 'siqvaruli',\n '&': 'da',\n '|': 'an',\n '<': 'naklebi',\n '>': 'meti',\n '∑': 'jami',\n '¤': 'valuta'\n },\n\n 'gr': {},\n\n 'hu': {\n '∆': 'delta',\n '∞': 'vegtelen',\n '♥': 'szerelem',\n '&': 'es',\n '|': 'vagy',\n '<': 'kisebb mint',\n '>': 'nagyobb mint',\n '∑': 'szumma',\n '¤': 'penznem'\n },\n\n 'it': {\n '∆': 'delta',\n '∞': 'infinito',\n '♥': 'amore',\n '&': 'e',\n '|': 'o',\n '<': 'minore di',\n '>': 'maggiore di',\n '∑': 'somma',\n '¤': 'moneta'\n },\n\n 'lt': {\n '∆': 'delta',\n '∞': 'begalybe',\n '♥': 'meile',\n '&': 'ir',\n '|': 'ar',\n '<': 'maziau nei',\n '>': 'daugiau nei',\n '∑': 'suma',\n '¤': 'valiuta'\n },\n\n 'lv': {\n '∆': 'delta',\n '∞': 'bezgaliba',\n '♥': 'milestiba',\n '&': 'un',\n '|': 'vai',\n '<': 'mazak neka',\n '>': 'lielaks neka',\n '∑': 'summa',\n '¤': 'valuta'\n },\n\n 'my': {\n '∆': 'kwahkhyaet',\n '∞': 'asaonasme',\n '♥': 'akhyait',\n '&': 'nhin',\n '|': 'tho',\n '<': 'ngethaw',\n '>': 'kyithaw',\n '∑': 'paungld',\n '¤': 'ngwekye'\n },\n\n 'mk': {},\n\n 'nl': {\n '∆': 'delta',\n '∞': 'oneindig',\n '♥': 'liefde',\n '&': 'en',\n '|': 'of',\n '<': 'kleiner dan',\n '>': 'groter dan',\n '∑': 'som',\n '¤': 'valuta'\n },\n\n 'pl': {\n '∆': 'delta',\n '∞': 'nieskonczonosc',\n '♥': 'milosc',\n '&': 'i',\n '|': 'lub',\n '<': 'mniejsze niz',\n '>': 'wieksze niz',\n '∑': 'suma',\n '¤': 'waluta'\n },\n\n 'pt': {\n '∆': 'delta',\n '∞': 'infinito',\n '♥': 'amor',\n '&': 'e',\n '|': 'ou',\n '<': 'menor que',\n '>': 'maior que',\n '∑': 'soma',\n '¤': 'moeda'\n },\n\n 'ro': {\n '∆': 'delta',\n '∞': 'infinit',\n '♥': 'dragoste',\n '&': 'si',\n '|': 'sau',\n '<': 'mai mic ca',\n '>': 'mai mare ca',\n '∑': 'suma',\n '¤': 'valuta'\n },\n\n 'ru': {\n '∆': 'delta',\n '∞': 'beskonechno',\n '♥': 'lubov',\n '&': 'i',\n '|': 'ili',\n '<': 'menshe',\n '>': 'bolshe',\n '∑': 'summa',\n '¤': 'valjuta'\n },\n\n 'sk': {\n '∆': 'delta',\n '∞': 'nekonecno',\n '♥': 'laska',\n '&': 'a',\n '|': 'alebo',\n '<': 'menej ako',\n '>': 'viac ako',\n '∑': 'sucet',\n '¤': 'mena'\n },\n\n 'sr': {},\n\n 'tr': {\n '∆': 'delta',\n '∞': 'sonsuzluk',\n '♥': 'ask',\n '&': 've',\n '|': 'veya',\n '<': 'kucuktur',\n '>': 'buyuktur',\n '∑': 'toplam',\n '¤': 'para birimi'\n },\n\n 'uk': {\n '∆': 'delta',\n '∞': 'bezkinechnist',\n '♥': 'lubov',\n '&': 'i',\n '|': 'abo',\n '<': 'menshe',\n '>': 'bilshe',\n '∑': 'suma',\n '¤': 'valjuta'\n },\n\n 'vn': {\n '∆': 'delta',\n '∞': 'vo cuc',\n '♥': 'yeu',\n '&': 'va',\n '|': 'hoac',\n '<': 'nho hon',\n '>': 'lon hon',\n '∑': 'tong',\n '¤': 'tien te'\n }\n };\n\n var uricChars = [';', '?', ':', '@', '&', '=', '+', '$', ',', '/'].join('');\n\n var uricNoSlashChars = [';', '?', ':', '@', '&', '=', '+', '$', ','].join('');\n\n var markChars = ['.', '!', '~', '*', \"'\", '(', ')'].join('');\n\n /**\n * getSlug\n * @param {string} input input string\n * @param {object|string} opts config object or separator string/char\n * @api public\n * @return {string} sluggified string\n */\n var getSlug = function getSlug(input, opts) {\n var separator = '-';\n var result = '';\n var diatricString = '';\n var convertSymbols = true;\n var customReplacements = {};\n var maintainCase;\n var titleCase;\n var truncate;\n var uricFlag;\n var uricNoSlashFlag;\n var markFlag;\n var symbol;\n var langChar;\n var lucky;\n var i;\n var ch;\n var l;\n var lastCharWasSymbol;\n var lastCharWasDiatric;\n var allowedChars = '';\n\n if (typeof input !== 'string') {\n return '';\n }\n\n if (typeof opts === 'string') {\n separator = opts;\n }\n\n symbol = symbolMap.en;\n langChar = langCharMap.en;\n\n if (typeof opts === 'object') {\n maintainCase = opts.maintainCase || false;\n customReplacements = (opts.custom && typeof opts.custom === 'object') ? opts.custom : customReplacements;\n truncate = (+opts.truncate > 1 && opts.truncate) || false;\n uricFlag = opts.uric || false;\n uricNoSlashFlag = opts.uricNoSlash || false;\n markFlag = opts.mark || false;\n convertSymbols = (opts.symbols === false || opts.lang === false) ? false : true;\n separator = opts.separator || separator;\n\n if (uricFlag) {\n allowedChars += uricChars;\n }\n\n if (uricNoSlashFlag) {\n allowedChars += uricNoSlashChars;\n }\n\n if (markFlag) {\n allowedChars += markChars;\n }\n\n symbol = (opts.lang && symbolMap[opts.lang] && convertSymbols) ?\n symbolMap[opts.lang] : (convertSymbols ? symbolMap.en : {});\n\n langChar = (opts.lang && langCharMap[opts.lang]) ?\n langCharMap[opts.lang] :\n opts.lang === false || opts.lang === true ? {} : langCharMap.en;\n\n // if titleCase config is an Array, rewrite to object format\n if (opts.titleCase && typeof opts.titleCase.length === 'number' && Array.prototype.toString.call(opts.titleCase)) {\n opts.titleCase.forEach(function (v) {\n customReplacements[v + ''] = v + '';\n });\n\n titleCase = true;\n } else {\n titleCase = !!opts.titleCase;\n }\n\n // if custom config is an Array, rewrite to object format\n if (opts.custom && typeof opts.custom.length === 'number' && Array.prototype.toString.call(opts.custom)) {\n opts.custom.forEach(function (v) {\n customReplacements[v + ''] = v + '';\n });\n }\n\n // custom replacements\n Object.keys(customReplacements).forEach(function (v) {\n var r;\n\n if (v.length > 1) {\n r = new RegExp('\\\\b' + escapeChars(v) + '\\\\b', 'gi');\n } else {\n r = new RegExp(escapeChars(v), 'gi');\n }\n\n input = input.replace(r, customReplacements[v]);\n });\n\n // add all custom replacement to allowed charlist\n for (ch in customReplacements) {\n allowedChars += ch;\n }\n }\n\n allowedChars += separator;\n\n // escape all necessary chars\n allowedChars = escapeChars(allowedChars);\n\n // trim whitespaces\n input = input.replace(/(^\\s+|\\s+$)/g, '');\n\n lastCharWasSymbol = false;\n lastCharWasDiatric = false;\n\n for (i = 0, l = input.length; i < l; i++) {\n ch = input[i];\n\n if (isReplacedCustomChar(ch, customReplacements)) {\n // don't convert a already converted char\n lastCharWasSymbol = false;\n } else if (langChar[ch]) {\n // process language specific diactrics chars conversion\n ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? ' ' + langChar[ch] : langChar[ch];\n\n lastCharWasSymbol = false;\n } else if (ch in charMap) {\n // the transliteration changes entirely when some special characters are added\n if (i + 1 < l && lookAheadCharArray.indexOf(input[i + 1]) >= 0) {\n diatricString += ch;\n ch = '';\n } else if (lastCharWasDiatric === true) {\n ch = diatricMap[diatricString] + charMap[ch];\n diatricString = '';\n } else {\n // process diactrics chars\n ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? ' ' + charMap[ch] : charMap[ch];\n }\n\n lastCharWasSymbol = false;\n lastCharWasDiatric = false;\n } else if (ch in diatricMap) {\n diatricString += ch;\n ch = '';\n // end of string, put the whole meaningful word\n if (i === l - 1) {\n ch = diatricMap[diatricString];\n }\n lastCharWasDiatric = true;\n } else if (\n // process symbol chars\n symbol[ch] && !(uricFlag && uricChars\n .indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars\n // .indexOf(ch) !== -1) && !(markFlag && markChars\n .indexOf(ch) !== -1)) {\n ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch];\n ch += input[i + 1] !== void 0 && input[i + 1].match(/[A-Za-z0-9]/) ? separator : '';\n\n lastCharWasSymbol = true;\n } else {\n if (lastCharWasDiatric === true) {\n ch = diatricMap[diatricString] + ch;\n diatricString = '';\n lastCharWasDiatric = false;\n } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) {\n // process latin chars\n ch = ' ' + ch;\n }\n lastCharWasSymbol = false;\n }\n\n // add allowed chars\n result += ch.replace(new RegExp('[^\\\\w\\\\s' + allowedChars + '_-]', 'g'), separator);\n }\n\n if (titleCase) {\n result = result.replace(/(\\w)(\\S*)/g, function (_, i, r) {\n var j = i.toUpperCase() + (r !== null ? r : '');\n return (Object.keys(customReplacements).indexOf(j.toLowerCase()) < 0) ? j : j.toLowerCase();\n });\n }\n\n // eliminate duplicate separators\n // add separator\n // trim separators from start and end\n result = result.replace(/\\s+/g, separator)\n .replace(new RegExp('\\\\' + separator + '+', 'g'), separator)\n .replace(new RegExp('(^\\\\' + separator + '+|\\\\' + separator + '+$)', 'g'), '');\n\n if (truncate && result.length > truncate) {\n lucky = result.charAt(truncate) === separator;\n result = result.slice(0, truncate);\n\n if (!lucky) {\n result = result.slice(0, result.lastIndexOf(separator));\n }\n }\n\n if (!maintainCase && !titleCase) {\n result = result.toLowerCase();\n }\n\n return result;\n };\n\n /**\n * createSlug curried(opts)(input)\n * @param {object|string} opts config object or input string\n * @return {Function} function getSlugWithConfig()\n **/\n var createSlug = function createSlug(opts) {\n\n /**\n * getSlugWithConfig\n * @param {string} input string\n * @return {string} slug string\n */\n return function getSlugWithConfig(input) {\n return getSlug(input, opts);\n };\n };\n\n /**\n * escape Chars\n * @param {string} input string\n */\n var escapeChars = function escapeChars(input) {\n return input.replace(/[-\\\\^$*+?.()|[\\]{}\\/]/g, '\\\\$&');\n };\n\n /**\n * check if the char is an already converted char from custom list\n * @param {char} ch character to check\n * @param {object} customReplacements custom translation map\n */\n var isReplacedCustomChar = function (ch, customReplacements) {\n for (var c in customReplacements) {\n if (customReplacements[c] === ch) {\n return true;\n }\n }\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n\n // export functions for use in Node\n module.exports = getSlug;\n module.exports.createSlug = createSlug;\n } else if (typeof define !== 'undefined' && define.amd) {\n\n // export function for use in AMD\n define([], function () {\n return getSlug;\n });\n } else {\n\n // don't overwrite global if exists\n try {\n if (root.getSlug || root.createSlug) {\n throw 'speakingurl: globals exists /(getSlug|createSlug)/';\n } else {\n root.getSlug = getSlug;\n root.createSlug = createSlug;\n }\n } catch (e) {}\n }\n})(this);","( function( window, undefined ) {\n\t'use strict';\n\n\t/**\n\t * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in\n\t * that, lowest priority hooks are fired first.\n\t */\n\tvar EventManager = function() {\n\t\tvar slice = Array.prototype.slice;\n\t\t\n\t\t/**\n\t\t * Maintain a reference to the object scope so our public methods never get confusing.\n\t\t */\n\t\tvar MethodsAvailable = {\n\t\t\tremoveFilter : removeFilter,\n\t\t\tapplyFilters : applyFilters,\n\t\t\taddFilter : addFilter,\n\t\t\tremoveAction : removeAction,\n\t\t\tdoAction : doAction,\n\t\t\taddAction : addAction\n\t\t};\n\n\t\t/**\n\t\t * Contains the hooks that get registered with this EventManager. The array for storage utilizes a \"flat\"\n\t\t * object literal such that looking up the hook utilizes the native object literal hash.\n\t\t */\n\t\tvar STORAGE = {\n\t\t\tactions : {},\n\t\t\tfilters : {}\n\t\t};\n\n\t\t/**\n\t\t * Adds an action to the event manager.\n\t\t *\n\t\t * @param action Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addAction( action, callback, priority, context ) {\n\t\t\tif( typeof action === 'string' && typeof callback === 'function' ) {\n\t\t\t\tpriority = parseInt( ( priority || 10 ), 10 );\n\t\t\t\t_addHook( 'actions', action, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is\n\t\t * that the first argument must always be the action.\n\t\t */\n\t\tfunction doAction( /* action, arg1, arg2, ... */ ) {\n\t\t\tvar args = slice.call( arguments );\n\t\t\tvar action = args.shift();\n\n\t\t\tif( typeof action === 'string' ) {\n\t\t\t\t_runHook( 'actions', action, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified action if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param action The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeAction( action, callback ) {\n\t\t\tif( typeof action === 'string' ) {\n\t\t\t\t_removeHook( 'actions', action, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Adds a filter to the event manager.\n\t\t *\n\t\t * @param filter Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addFilter( filter, callback, priority, context ) {\n\t\t\tif( typeof filter === 'string' && typeof callback === 'function' ) {\n\t\t\t\tpriority = parseInt( ( priority || 10 ), 10 );\n\t\t\t\t_addHook( 'filters', filter, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that\n\t\t * the first argument must always be the filter.\n\t\t */\n\t\tfunction applyFilters( /* filter, filtered arg, arg2, ... */ ) {\n\t\t\tvar args = slice.call( arguments );\n\t\t\tvar filter = args.shift();\n\n\t\t\tif( typeof filter === 'string' ) {\n\t\t\t\treturn _runHook( 'filters', filter, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified filter if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param filter The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeFilter( filter, callback ) {\n\t\t\tif( typeof filter === 'string') {\n\t\t\t\t_removeHook( 'filters', filter, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified hook by resetting the value of it.\n\t\t *\n\t\t * @param type Type of hook, either 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to remove\n\t\t * @private\n\t\t */\n\t\tfunction _removeHook( type, hook, callback, context ) {\n\t\t\tvar handlers, handler, i;\n\t\t\t\n\t\t\tif ( !STORAGE[ type ][ hook ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( !callback ) {\n\t\t\t\tSTORAGE[ type ][ hook ] = [];\n\t\t\t} else {\n\t\t\t\thandlers = STORAGE[ type ][ hook ];\n\t\t\t\tif ( !context ) {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tif ( handlers[i].callback === callback ) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\thandler = handlers[i];\n\t\t\t\t\t\tif ( handler.callback === callback && handler.context === context) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Adds the hook to the appropriate storage container\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to add to our event manager\n\t\t * @param callback The function that will be called when the hook is executed.\n\t\t * @param priority The priority of this hook. Must be an integer.\n\t\t * @param [context] A value to be used for this\n\t\t * @private\n\t\t */\n\t\tfunction _addHook( type, hook, callback, priority, context ) {\n\t\t\tvar hookObject = {\n\t\t\t\tcallback : callback,\n\t\t\t\tpriority : priority,\n\t\t\t\tcontext : context\n\t\t\t};\n\n\t\t\t// Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19\n\t\t\tvar hooks = STORAGE[ type ][ hook ];\n\t\t\tif( hooks ) {\n\t\t\t\thooks.push( hookObject );\n\t\t\t\thooks = _hookInsertSort( hooks );\n\t\t\t}\n\t\t\telse {\n\t\t\t\thooks = [ hookObject ];\n\t\t\t}\n\n\t\t\tSTORAGE[ type ][ hook ] = hooks;\n\t\t}\n\n\t\t/**\n\t\t * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster\n\t\t * than bubble sort, etc: http://jsperf.com/javascript-sort\n\t\t *\n\t\t * @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on.\n\t\t * @private\n\t\t */\n\t\tfunction _hookInsertSort( hooks ) {\n\t\t\tvar tmpHook, j, prevHook;\n\t\t\tfor( var i = 1, len = hooks.length; i < len; i++ ) {\n\t\t\t\ttmpHook = hooks[ i ];\n\t\t\t\tj = i;\n\t\t\t\twhile( ( prevHook = hooks[ j - 1 ] ) && prevHook.priority > tmpHook.priority ) {\n\t\t\t\t\thooks[ j ] = hooks[ j - 1 ];\n\t\t\t\t\t--j;\n\t\t\t\t}\n\t\t\t\thooks[ j ] = tmpHook;\n\t\t\t}\n\n\t\t\treturn hooks;\n\t\t}\n\n\t\t/**\n\t\t * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook ( namespace.identifier ) to be ran.\n\t\t * @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.\n\t\t * @private\n\t\t */\n\t\tfunction _runHook( type, hook, args ) {\n\t\t\tvar handlers = STORAGE[ type ][ hook ], i, len;\n\t\t\t\n\t\t\tif ( !handlers ) {\n\t\t\t\treturn (type === 'filters') ? args[0] : false;\n\t\t\t}\n\n\t\t\tlen = handlers.length;\n\t\t\tif ( type === 'filters' ) {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\targs[ 0 ] = handlers[ i ].callback.apply( handlers[ i ].context, args );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\thandlers[ i ].callback.apply( handlers[ i ].context, args );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ( type === 'filters' ) ? args[ 0 ] : true;\n\t\t}\n\n\t\t// return all of the publicly available methods\n\t\treturn MethodsAvailable;\n\n\t};\n\t\n\t\n\twindow.hooksManager = window.hooksManager || new EventManager();\n\n} )( window );","(function ($) {\n if (!Element.prototype.scrollIntoViewIfNeeded) {\n Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {\n centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;\n\n var parent = this.parentNode,\n parentComputedStyle = window.getComputedStyle(parent, null),\n parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width')),\n parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width')),\n overTop = this.offsetTop - parent.offsetTop < parent.scrollTop,\n overBottom = (this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth) > (parent.scrollTop + parent.clientHeight),\n overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft,\n overRight = (this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth) > (parent.scrollLeft + parent.clientWidth),\n alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n this.scrollIntoView(alignWithTop);\n }\n };\n }\n\n $.fn.tagName = function () {\n if (!this[0])\n return null;\n if (this[0] && this[0].nodeName) {\n return this[0].nodeName.toLowerCase();\n }\n return null;\n };\n\n $.fn.insertAt = function (index, $parent) {\n return this.each(function () {\n if ($(this).parent().is($parent)) {\n var siblings = $(this).siblings();\n if (index < siblings.length) {\n siblings.eq(index).before(this);\n } else {\n siblings.last().after(this);\n }\n } else {\n if (index === 0 || !$parent.children().length) {\n $parent.prepend(this);\n } else {\n if (index >= $parent.children().length) {\n $parent.append(this);\n } else {\n $parent.children().eq(index - 1).after(this);\n }\n }\n }\n });\n };\n\n\n if (!NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n HTMLCollection.prototype.forEach = Array.prototype.forEach; // Because of https://bugzilla.mozilla.org/show_bug.cgi?id=14869\n\n }\n\n if (!Array.from) {\n Array.from = function (object) {\n return [].slice.call(object);\n };\n }\n\n\n})(jQuery);\n\n(function ($, root) {\n\n wp.customize.bind(\"save-request-params\", function (query) {\n query.customize_post_id = CP_Customizer.preview.data().pageID;\n if (CP_Customizer && CP_Customizer.hooks) {\n query = CP_Customizer.hooks.applyFilters('save-request-params', query);\n }\n return query;\n });\n\n function translateCompanionString(text) {\n\n if (!text || !_.isString(text)) {\n return text;\n }\n\n if (root.__materialisCustomizerStrings[text] !== undefined) {\n return root.__materialisCustomizerStrings[text];\n } else {\n //in debug mode\n if (CP_Customizer.options('SCRIPT_DEBUG')) {\n console.warn(\"[Not translated] \" + text);\n }\n return text;\n }\n }\n\n var CP_Customizer = {\n events: {\n \"PREVIEW_LOADED\": \"PREVIEW_LOADED\",\n \"ADD_FIXED_OVERLAYS\": \"ADD_FIXED_OVERLAYS\",\n \"RIGHT_SECTION_CLOSED\": \"RIGHT_SECTION_CLOSED\",\n \"ELEMENT_DECORATED\": \"ELEMENT_DECORATED\",\n \"CONTENT_ROW_REMOVED\": \"CONTENT_ROW_REMOVED\",\n \"DOCUMENT_READY\": \"DOCUMENT_READY\",\n \"STATE_UPDATED\": \"STATE_UPDATED\",\n \"FOCUS_CONTROL\": \"FOCUS_CONTROL\"\n },\n\n getSlug: window.getSlug,\n\n wpApi: wp.customize,\n\n MAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : 9007199254740991,\n\n hooks: window.hooksManager,\n\n CONTENT_ELEMENTS: 'p,h1,h2,h3,h4,h5,h6,a,span,i,hr,img,ul,div.spacer',\n TEXT_ELEMENTS: \"p,h1,h2,h3,h4,h5,h6,span\",\n THEME_MOD_NODES: '[data-theme],[data-theme-src],[data-theme-mdi]',\n\n translateCompanionString: translateCompanionString,\n\n data: function () {\n return root.cpCustomizerGlobal.pluginOptions.data;\n },\n\n addContentElementsSelectors: function (selectors) {\n if (!_.isArray(selectors)) {\n selectors = [selectors]\n }\n\n this.CONTENT_ELEMENTS = this.CONTENT_ELEMENTS.split(',').concat(selectors).join(',')\n },\n\n IO: {\n get: function (action, data) {\n return this.send({\n data: _.isObject(action) ? action : _.extend(data || {}, {action: action}),\n type: 'GET'\n });\n },\n post: function (action, data) {\n return this.send({\n data: _.isObject(action) ? action : _.extend(data || {}, {action: action})\n });\n },\n\n\n customGet: function (url, data) {\n data = _.isObject(data) ? data : {};\n var options = {\n type: \"GET\",\n data: data\n };\n\n\n return CP_Customizer.IO.customSend(url, options);\n },\n customPost: function (url, data) {\n data = _.isObject(data) ? data : {};\n var options = {\n type: \"POST\",\n data: data\n };\n\n return CP_Customizer.IO.customSend(url, options);\n },\n\n customSend: function (url, options) {\n\n options = _.defaults(options || {}, {\n type: 'POST',\n url: url\n });\n\n return CP_Customizer.IO.send(options);\n },\n\n rest: {\n get: function (route, data) {\n data = _.isObject(data) ? data : {};\n var options = {\n type: \"GET\",\n data: data\n };\n\n\n return CP_Customizer.IO.rest.send(route, options);\n },\n post: function (route, data) {\n data = _.isObject(data) ? data : {};\n var options = {\n type: \"POST\",\n data: data\n };\n\n return CP_Customizer.IO.rest.send(route, options);\n },\n\n send: function (route, options) {\n var url = CP_Customizer.options('restURL');\n\n options = _.defaults(options || {}, {\n type: 'POST',\n url: CP_Customizer.utils.phpTrim(url, '/') + \"/\" + CP_Customizer.utils.phpTrim(route, '/')\n });\n\n return CP_Customizer.IO.send(options);\n }\n },\n\n send: function (action, options) {\n var promise, deferred;\n if (_.isObject(action)) {\n options = action;\n } else {\n options = options || {};\n options.data = _.extend(options.data || {}, {action: action});\n }\n\n options = _.defaults(options || {}, {\n type: 'POST',\n url: wp.ajax.settings.url,\n context: this,\n _: Date.now(),\n xhrFields: {\n withCredentials: true\n }\n });\n\n deferred = $.Deferred(function (deferred) {\n // Transfer success/error callbacks.\n if (options.success)\n deferred.done(options.success);\n if (options.error)\n deferred.fail(options.error);\n\n delete options.success;\n delete options.error;\n\n deferred.jqXHR = $.ajax(options).done(function (response) {\n deferred.resolveWith(this, [response, deferred.jqXHR]);\n }).fail(function () {\n deferred.rejectWith(this, arguments);\n });\n });\n\n promise = deferred.promise();\n promise.abort = function () {\n deferred.jqXHR.abort();\n return this;\n };\n\n return promise;\n }\n },\n\n\n options: function (key, defaultValue) {\n var result = root.cpCustomizerGlobal.pluginOptions;\n\n if (key) {\n var keyParts = key.split(':');\n for (var i = 0; i < keyParts.length; i++) {\n var part = keyParts[i];\n\n if (!_.isUndefined(result[part])) {\n result = result[part];\n } else {\n result = defaultValue;\n break;\n }\n }\n }\n\n return result;\n },\n\n __exportsCache: {},\n getSectionExports: function (sectionId) {\n\n if (sectionId.jquery) {\n sectionId = sectionId.attr('data-export-id');\n }\n\n if (this.__exportsCache[sectionId]) {\n return this.__exportsCache[sectionId];\n }\n\n var sectionData = CP_Customizer.options('data:sections', []).filter(function (s) {\n return s.id === sectionId\n }).pop();\n\n var modules = {},\n module = {},\n exports = {};\n\n if (sectionData && sectionData.export) {\n try {\n eval(sectionData.export);\n\n if (!_.isUndefined(modules.export)) {\n exports = modules.export;\n } else {\n if (!_.isUndefined(module.exports)) {\n exports = module.exports;\n }\n }\n } catch (e) {\n console.warn('invalid section ' + sectionId + ' exports');\n }\n\n }\n\n this.__exportsCache[sectionId] = exports;\n return exports || {};\n },\n\n\n slugPrefix: function () {\n return root.cpCustomizerGlobal.pluginOptions.slugPrefix;\n },\n\n\n log: function (name, data, type) {\n\n if (!CP_Customizer.options('SCRIPT_DEBUG', false) && !top.SCRIPT_DEBUG) {\n return;\n }\n\n type = type || 'log';\n\n var colors = {\n 'log': 'background-color:#03a9f4; color:#ffffff',\n 'error': 'background-color:#ff0000; color:#ffffff'\n };\n\n if (!data) {\n data = 'NO DATA';\n }\n\n console.groupCollapsed('%c ' + name + ' ', colors[type]);\n console[type](data);\n console.groupEnd();\n },\n\n\n logError: function (name, data) {\n this.log(name, data, 'error');\n },\n\n\n bind: function (event, callback) {\n this.on(event, callback, false);\n },\n unbind: function (event, callback) {\n this.off(event, callback);\n },\n\n on: function (event, callback, async) {\n\n event = event.split(' ').map(function (ev) {\n return 'cp_customizer.' + ev;\n }).join(' ');\n\n if (async) {\n var originalCallback = callback;\n\n callback = function () {\n var args = Array.from(arguments);\n var cb = this.callback;\n\n setTimeout(function () {\n cb.apply(this, args);\n }, 0);\n\n }.bind({\n callback: originalCallback\n });\n }\n\n $(window).bind(event, callback);\n },\n\n off: function (event, callback) {\n event = event.split(' ').map(function (ev) {\n return 'cp_customizer.' + ev;\n }).join(' ');\n $(window).unbind(event, callback);\n },\n\n one: function (event, callback) {\n event = event.split(' ').map(function (ev) {\n return 'cp_customizer.' + ev;\n }).join(' ');\n $(window).one(event, callback);\n },\n\n\n trigger: function (event, data) {\n $(window).trigger('cp_customizer.' + event, data);\n },\n\n showLoader: function () {\n $('div#cp-full-screen-loader').addClass('active');\n jQuery('select').each(function () {\n var $select = $(this);\n if ($select.data() && $select.data().selectize) {\n $select.data().selectize.blur();\n }\n });\n },\n\n hideLoader: function () {\n $('div#cp-full-screen-loader').removeClass('active');\n },\n\n jsTPL: {},\n\n __containerDataHandlers: {},\n\n addContainerDataHandler: function (selector, getter, setter) {\n this.__containerDataHandlers[selector] = {\n getter: getter,\n setter: setter\n };\n },\n\n __containerDataFilters: [],\n\n addContainerDataFilter: function (callback) {\n this.__containerDataFilters.push(callback);\n },\n\n\n __modules: [],\n __modulesLoaded: false,\n addModule: function (callback) {\n var self = this;\n\n if (this.__modulesLoaded) {\n callback(this);\n } else {\n this.__modules.push(callback);\n }\n },\n\n popUp: function (title, elementID, data) {\n var selector = \"#TB_inline?inlineId=\" + elementID;\n var query = [];\n\n\n $.each(data || {}, function (key, value) {\n query.push(key + \"=\" + value);\n });\n\n selector = query.length ? selector + \"&\" : selector + \"\";\n selector += query.join(\"&\");\n\n root.tb_show(title, selector);\n\n root.jQuery('#TB_window').css({\n 'z-index': '5000001',\n 'transform': 'opacity .4s',\n 'opacity': 0\n });\n\n root.jQuery('#TB_overlay').css({\n 'z-index': '5000000'\n });\n\n\n setTimeout(function () {\n root.jQuery('#TB_window').css({\n 'margin-top': -1 * ((root.jQuery('#TB_window').outerHeight() + 50) / 2),\n 'opacity': 1\n });\n root.jQuery('#TB_window').find('#cp-item-ok').focus();\n }, 0);\n\n if (data && data.class) {\n root.jQuery('#TB_window').addClass(data.class);\n }\n\n return root.jQuery('#TB_window');\n },\n\n\n popUpInfo: function (title, content, data) {\n var id = _.uniqueId('temp-popup-text');\n\n var tempContainer = $('<div id=\"' + id + '\" />').hide();\n tempContainer.appendTo($('body'));\n tempContainer.append('<div>' + content + '</div>');\n\n return this.popUp(title, id, data);\n\n },\n\n popupPrompt: function (title, text, value, callback, extraHTML) {\n\n if (extraHTML) {\n extraHTML = '<div class=\"prompt-extra\">' + extraHTML + '</div>';\n } else {\n extraHTML = '';\n }\n\n var content = '' +\n '<div class=\"prompt-wrapper\">' +\n ' <h4 class=\"prompt-title\">' + text + '</h4>' +\n ' <div class=\"prompt-content\">' +\n ' <input value=\"' + CP_Customizer.utils.htmlEscape(value) + '\" type=\"text\">' +\n ' </div>' +\n ' ' + extraHTML +\n ' <div class=\"prompt-footer\">' +\n ' <button class=\"submit button button-primary\"> ' + root.CP_Customizer.translateCompanionString(\"OK\") + '</button>' +\n ' <button class=\"cancel button button-secondary\">' + root.CP_Customizer.translateCompanionString(\"Cancel\") + '</button>' +\n ' </div>' +\n '</div>';\n\n var data = {\n width: \"400\",\n class: \"popup-400\"\n };\n\n var $content = this.popUpInfo(title, content, data);\n\n function onClose(canceled) {\n var newValue = $content.find('input').val().trim();\n\n if (canceled) {\n newValue = null;\n }\n\n if (_.isFunction(callback)) {\n callback(newValue, value)\n }\n CP_Customizer.closePopUps();\n }\n\n $content.on('keypress', 'input', function () {\n if (event.which !== 13) {\n return true;\n }\n onClose();\n });\n\n $content.on('click', 'button.submit', function () {\n onClose();\n });\n\n\n $content.on('click', 'button.cancel', function () {\n onClose(true);\n });\n\n },\n\n popupSelectPrompt: function (title, text, value, options, callback, emptySelection, extraHTML) {\n var select = '<select>';\n\n\n if (emptySelection) {\n select += \"<option value='' >\" + emptySelection + \"</option>\";\n }\n\n for (var i in options) {\n var selectedAttr = (i === value) ? \"selected\" : \"\";\n select += \"<option \" + CP_Customizer.utils.htmlEscape(selectedAttr) + \" value='\" + i + \"' >\" + options[i] + \"</option>\";\n }\n\n select += '</select>';\n if (extraHTML) {\n extraHTML = '<div class=\"prompt-extra\">' + extraHTML + '</div>';\n } else {\n extraHTML = '';\n }\n\n var content = '' +\n '<div class=\"prompt-wrapper\">' +\n ' <h4 class=\"prompt-title\">' + text + '</h4>' +\n ' <div class=\"prompt-content\">' +\n ' ' + select +\n ' </div>' +\n ' ' + extraHTML +\n ' <div class=\"prompt-footer\">' +\n ' <button class=\"submit button button-primary\"> ' + root.CP_Customizer.translateCompanionString(\"OK\") + '</button>' +\n ' <button class=\"cancel button button-secondary\">' + root.CP_Customizer.translateCompanionString(\"Cancel\") + '</button>' +\n ' </div>' +\n '</div>';\n\n var data = {\n width: \"400\",\n class: \"popup-400\"\n };\n\n var $content = this.popUpInfo(title, content, data);\n\n function onClose(canceled) {\n var newValue = $content.find('select').val();\n\n if (canceled) {\n newValue = null;\n }\n\n if (_.isFunction(callback)) {\n callback(newValue, value)\n }\n CP_Customizer.closePopUps();\n }\n\n $content.on('click', 'button.submit', function () {\n onClose();\n });\n\n\n $content.on('click', 'button.cancel', function () {\n onClose(true);\n });\n\n return $content;\n\n },\n\n closePopUps: function () {\n root.tb_remove();\n root.jQuery('#TB_overlay').css({\n 'z-index': '-1'\n });\n },\n\n openMultiImageManager: function (title, callback, single) {\n var node = false;\n var interestWindow = root;\n custom_uploader = interestWindow.wp.media.frames.file_frame = interestWindow.wp.media({\n title: title,\n button: {\n text: root.CP_Customizer.translateCompanionString('Choose Images')\n },\n multiple: !single\n });\n //When a file is selected, grab the URL and set it as the text field's value\n custom_uploader.on('select', function () {\n var attachment = custom_uploader.state().get('selection').toJSON();\n callback(attachment);\n });\n custom_uploader.off('close.cp').on('close.cp', function () {\n callback(false);\n });\n //Open the uploader dialog\n custom_uploader.open();\n\n custom_uploader.content.mode('browse');\n // Show Dialog over layouts frame\n interestWindow.jQuery(interestWindow.wp.media.frame.views.selector).parent().css({\n 'z-index': '16000000'\n });\n },\n\n openImageManager: function (callback, multi) {\n this.openMultiImageManager('Image Manager', function (obj) {\n if ($('iframe').length) {\n $('iframe').get(0).focus();\n }\n if (!obj) {\n return;\n }\n for (var i = 0; i < obj.length; i++) {\n var link = obj[i].url;\n callback(link);\n }\n }, !multi);\n },\n\n openMediaCustomFrame: function (extender, mode, title, single, callback) {\n var interestWindow = root;\n\n var frame = extender(interestWindow.wp.media.view.MediaFrame.Select);\n\n var custom_uploader = new frame({\n title: title,\n button: {\n text: title\n },\n multiple: !single\n });\n\n\n //When a file is selected, grab the URL and set it as the text field's value\n custom_uploader.on('select', function () {\n attachment = custom_uploader.state().get('selection').toJSON();\n custom_uploader.content.mode('browse');\n callback(attachment);\n });\n\n\n custom_uploader.on('close', function () {\n custom_uploader.content.mode('browse');\n callback(false);\n });\n\n //Open the uploader dialog\n custom_uploader.open();\n custom_uploader.content.mode(mode);\n // Show Dialog over layouts frame\n interestWindow.jQuery(custom_uploader.views.selector).parent().css({\n 'z-index': '16000000'\n });\n\n },\n\n openMIManager: function (title, callback, single) {\n var node = false;\n var interestWindow = root;\n\n // if (!interestWindow.wp.media.cp.FAFrame) {\n var frame = interestWindow.wp.media.cp.extendFrameWithMDI(interestWindow.wp.media.view.MediaFrame.Select);\n var custom_uploader = new frame({\n title: title,\n button: {\n text: root.CP_Customizer.translateCompanionString('Choose Icon')\n },\n multiple: !single\n });\n interestWindow.wp.media.cp.MIFrame = custom_uploader;\n\n // }\n\n\n //When a file is selected, grab the URL and set it as the text field's value\n interestWindow.wp.media.cp.MIFrame.on('select', function () {\n attachment = custom_uploader.state().get('selection').toJSON();\n interestWindow.wp.media.cp.MIFrame.content.mode('browse');\n callback(attachment);\n });\n interestWindow.wp.media.cp.MIFrame.on('close', function () {\n interestWindow.wp.media.cp.MIFrame.content.mode('browse');\n callback(false);\n });\n\n //Open the uploader dialog\n interestWindow.wp.media.cp.MIFrame.open();\n interestWindow.wp.media.cp.MIFrame.content.mode('cp_material_icons');\n // Show Dialog over layouts frame\n interestWindow.jQuery(custom_uploader.views.selector).parent().css({\n 'z-index': '16000000'\n });\n\n },\n\n openCropableImageManager: function (width, height, flexible, callback) {\n var control = new root.wp.customize.CroppedImageControl('custom_image_cropper[' + Date.now() + ']',\n {params: {}});\n\n control.params = {\n button_labels: {\n frame_title: root.CP_Customizer.translateCompanionString(\"Select Image\")\n },\n height: height,\n width: width\n\n };\n\n flexible = _.isUndefined(flexible) ? true : flexible;\n\n if (flexible) {\n control.params = _.extend(control.params, {\n flex_width: width,\n flex_height: height\n });\n }\n\n control.initFrame();\n control.frame.setState('library').open();\n control.frame.content.mode('browse');\n\n function fixCropKeyPressBug() {\n setTimeout(function () {\n root.jQuery(top.document).unbind(root.jQuery.imgAreaSelect.keyPress);\n }, 100);\n }\n\n control.setImageFromAttachment = function (attachment) {\n callback([attachment]);\n fixCropKeyPressBug();\n };\n\n control.frame.on('close', function () {\n fixCropKeyPressBug();\n });\n\n\n root.jQuery(control.frame.views.selector).parent().css({\n 'z-index': '16000000'\n });\n\n root.jQuery(control.frame.views.selector).find('.instructions').remove();\n\n\n control.frame.on('content:create:crop', function () {\n var c = control;\n var state = c.frame.state();\n var __createCropToolbar = state.createCropToolbar;\n state.createCropToolbar = function () {\n state.set('canSkipCrop', true);\n __createCropToolbar.apply(state, arguments);\n };\n\n });\n },\n\n openGalleryImageManager: function (options, callback) {\n var interestWindow = root;\n options = _.extend({\n \"shortocode\": false,\n \"ids\": [],\n \"columns\": \"5\",\n \"state\": 'gallery-edit',\n \"size\": \"medium\",\n \"link\": \"file\"\n }, options);\n\n\n if (_.isArray(options.ids)) {\n options.ids = options.ids.join(\",\");\n }\n\n if (_.isEmpty(options.ids.trim())) {\n options.ids = 'fake-' + Date.now();\n }\n\n var shortcode = \"[gallery\";\n $.each(options, function (index, val) {\n shortcode += \" \" + index + '=\"' + val + '\"';\n });\n shortcode += \"]\";\n\n var gallery = interestWindow.wp.media.gallery;\n var frame = gallery.edit(shortcode);\n\n\n frame.state(options.state).on('update', function (selection) {\n var ids = selection.map(function (model) {\n return model.id\n });\n callback(selection, ids);\n });\n\n\n // if (options.mediaSidebar === false) {\n // frame.$el.find('.media-sidebar').hide();\n // frame.$el.find('.media-sidebar').siblings('.media-toolbar ul').css('right', '0px');\n // } else {\n // frame.$el.find('.media-sidebar').siblings('.media-toolbar ul').css('right', '');\n // frame.$el.find('.media-sidebar').show();\n // }\n\n interestWindow.jQuery(frame.views.selector).parent().css({\n 'z-index': '16000000'\n });\n\n if (options.ids.match(/fake-\\d+/)) {\n frame.setState('gallery-library')\n }\n },\n\n openMediaBrowser: function (type, callback, data) {\n var cb;\n if (callback instanceof jQuery) {\n cb = function (response) {\n\n if (!response) {\n return;\n }\n\n var value = response[0].url;\n if (data !== \"multiple\") {\n if (type == \"icon\") {\n value = response[0].mdi;\n }\n callback.val(value).trigger('change');\n }\n };\n } else {\n cb = function () {\n callback.apply(this, arguments);\n CP_Customizer.preview.blur();\n }\n }\n\n switch (type) {\n case \"image\":\n // this.openMultiImageManager('Change image', cb, data);\n this.openCropableImageManager(data.width || this.MAX_SAFE_INTEGER, data.height || this.MAX_SAFE_INTEGER, true, cb);\n break;\n case \"cropable\":\n this.openCropableImageManager(data.width, data.height, data.flexible, cb);\n break;\n case \"icon\":\n this.openMIManager(root.CP_Customizer.translateCompanionString('Change Material Icon'), cb);\n break;\n case \"gallery\":\n this.openGalleryImageManager(data, cb);\n break;\n }\n },\n\n getCustomizerRootEl: function () {\n return root.jQuery(root.document.body).find('form#customize-controls');\n },\n\n openRightSidebar: function (elementId, options) {\n options = options || {};\n this.hideRightSidebar();\n var $form = this.getCustomizerRootEl();\n var $container = $form.find('#' + elementId + '-popup');\n\n $('body').addClass('cp-right-section-opened');\n if ($container.length) {\n $container.addClass('active');\n\n if (options.floating && !_(options.y).isUndefined()) {\n $container.css({\n top: options.y\n });\n }\n } else {\n $container = $('<li id=\"' + elementId + '-popup\" class=\"customizer-right-section active\"> <span data-close-right-sidebar=\"true\" title=\"' + root.CP_Customizer.translateCompanionString(\"Close Panel\") + '\" class=\"close-panel\"></span> </li>');\n\n if (options.floating) {\n $container.addClass('floating');\n }\n\n $toAppend = $form.find('li#accordion-section-' + elementId + ' > ul');\n\n if ($toAppend.length === 0) {\n $toAppend = $form.find('#sub-accordion-section-' + elementId);\n }\n\n\n if ($toAppend.length === 0) {\n $toAppend = $('<div class=\"control-wrapper\" />');\n $toAppend.append($form.find('#customize-control-' + elementId).children());\n }\n\n $form.append($container);\n $container.append($toAppend);\n\n if (options.floating && !_(options.y).isUndefined()) {\n $container.css({\n top: options.y\n });\n }\n\n\n $container.find('span.close-panel').click(CP_Customizer.hideRightSidebar);\n\n }\n\n if (options.focus) {\n $container.find(options.focus)[0].scrollIntoViewIfNeeded();\n }\n\n $container.css('left', jQuery('#customize-header-actions')[0].offsetWidth + 1);\n\n CP_Customizer.hooks.doAction('right_sidebar_opened', elementId, options, $container);\n\n $form.find('span[data-close-right-sidebar=\"true\"]').click(function (event) {\n event.preventDefault();\n event.stopPropagation();\n CP_Customizer.hideRightSidebar();\n });\n\n $form.find('li.accordion-section').unbind('click.right-section').bind('click.right-section', function (event) {\n if ($(event.target).is('li') || $(event.target).is('.accordion-section-title')) {\n if ($(event.target).closest('.customizer-right-section').length === 0) {\n CP_Customizer.hideRightSidebar();\n }\n }\n });\n\n },\n\n hideRightSidebar: function () {\n var $form = root.jQuery(root.document.body).find('#customize-controls');\n var $visibleSection = $form.find('.customizer-right-section.active');\n if ($visibleSection.length) {\n $visibleSection.removeClass('active');\n root.CP_Customizer.trigger(root.CP_Customizer.events.RIGHT_SECTION_CLOSED, [$visibleSection]);\n }\n\n },\n\n isRightSidebarVisible: function (sectionID) {\n var $form = root.jQuery(root.document.body).find('#customize-controls');\n return $form.find('#' + sectionID + '-popup').hasClass('active');\n },\n\n updateState: function (force, forceOverlays) {\n\n function callback() {\n CP_Customizer.trigger('STATE_UPDATED');\n }\n\n if (force) {\n this._setContent(callback);\n } else {\n this.setContent(callback);\n }\n\n this.overlays.hoverOverlay().hide();\n this.overlays.updateAllOverlays(forceOverlays);\n },\n\n\n __changesetUpdate: _.debounce(function (callback) {\n var changeSet = root.CP_Customizer.wpApi.requestChangesetUpdate.apply(root.CP_Customizer.wpApi);\n if (_.isFunction(callback)) {\n changeSet.then(callback);\n }\n }, 10),\n\n __requestCachedCbs: [],\n requestChangesetUpdate: function (cb) {\n if (_.isFunction(cb)) {\n this.__requestCachedCbs.push(cb);\n }\n var self = this;\n this.__changesetUpdate(function () {\n while (self.__requestCachedCbs.length) {\n var cb = self.__requestCachedCbs.shift();\n cb.call(self);\n }\n });\n },\n\n // if the mod is not set create a dirty one\n __onSetForcedTransport: {},\n setMod: function (mod, value, transport, reqCB) {\n\n mod = CP_Customizer.utils.phpTrim(mod, \"|\");\n\n var initialMod = mod;\n var modParts = mod.split('|');\n mod = modParts.shift();\n\n var setting = root.wp.customize(mod);\n value = _.clone(value);\n if (!setting) {\n mod = \"CP_AUTO_SETTING[\" + mod + \"]\";\n setting = root.wp.customize(mod);\n if (!setting) {\n setting = wp.customize.create(mod, mod, {}, {\n type: 'theme_mod',\n transport: (transport || 'postMessage'),\n previewer: wp.customize.previewer\n });\n }\n }\n\n var oldTransport = setting.transport;\n if (!this.__onSetForcedTransport[setting.id]) {\n this.__onSetForcedTransport[setting.id] = oldTransport;\n }\n\n if (transport) {\n setting.transport = transport;\n }\n\n var oldValue = _.clone(setting._value);\n\n var jsonEncoded = false;\n try {\n var parsed = decodeURI(oldValue);\n parsed = JSON.parse(parsed);\n\n if (_.isObject(parsed) || _.isArray(parsed)) {\n oldValue = parsed;\n jsonEncoded = true;\n }\n } catch (e) {\n\n }\n\n if (_.isObject(oldValue)) {\n setting._value = undefined; // force no value before set( forces the setting to set the value )\n }\n\n if (modParts.length) {\n\n if (!oldValue || _.isEmpty(oldValue)) {\n oldValue = CP_Customizer.preview.data('mod_defaults')[mod];\n }\n\n var path = modParts.join('.');\n value = CP_Customizer.utils.setToPath(oldValue, path, value);\n }\n\n var control = wp.customize.control(mod);\n\n\n if (jsonEncoded) {\n value = encodeURI(JSON.stringify(value));\n }\n\n if (_.isBoolean(oldValue)) {\n try {\n value = JSON.parse(value);\n } catch (e) {\n\n }\n }\n\n setting.set(value);\n\n // update control\n\n if (control) {\n var type = control.params.type;\n if (type === \"radio-html\") {\n jQuery(control.container.find('input[value=\"' + value + '\"]')).prop('checked', true);\n } else {\n if (type === \"kirki-spacing\") {\n for (var prop in value) {\n if (value.hasOwnProperty(prop)) {\n jQuery(control.container.find('.' + prop + ' input')).prop('value', value[prop]);\n }\n }\n } else {\n if (type.match('kirki')) {\n kirkiSetSettingValue(mod, value);\n } else {\n if (type == \"gradient-control-pro\") {\n control.setValue(value);\n } else {\n if (type == \"repeater\") {\n control.setValue(value);\n }\n }\n }\n }\n }\n }\n\n var self = this;\n var changeSetCB = function () {\n if (self.__onSetForcedTransport[setting.id]) {\n setting.transport = self.__onSetForcedTransport[setting.id];\n self.__onSetForcedTransport[setting.id] = null;\n }\n\n if (_.isFunction(reqCB)) {\n reqCB(initialMod, setting.id);\n }\n\n };\n\n if (_.isFunction(reqCB)) {\n this.requestChangesetUpdate(changeSetCB);\n } else {\n setting.transport = oldTransport;\n }\n\n },\n\n getMod: function (mod, defaultValue) {\n var setting = root.wp.customize(mod);\n if (!setting) {\n mod = \"CP_AUTO_SETTING[\" + mod + \"]\";\n setting = root.wp.customize(mod);\n }\n\n if (!setting) {\n return defaultValue;\n }\n\n return _.clone(setting.get());\n },\n\n cleanModValue: function (value) {\n\n if (_.isString(value)) {\n\n // remove extra mdi classes ( e.g. \"mdi mdi mdi\" )\n value = value.replace(/(mdi\\s(mdi\\s)+)/ig, 'mdi ');\n\n // trim all spaces\n value = value.trim();\n }\n\n return value;\n },\n\n onModChange: function (mod, callback) {\n var autoMod = \"CP_AUTO_SETTING[\" + mod + \"]\";\n var modCallback = _.debounce(function (value) {\n if (_.isFunction(callback)) {\n value.bind(callback);\n }\n }, 100);\n\n\n CP_Customizer.wpApi(mod, modCallback);\n CP_Customizer.wpApi(autoMod, modCallback);\n\n },\n\n setMultipleMods: function (mods, transport, finishCb) {\n\n CP_Customizer.log('Set Multiple Mods', mods);\n\n if (_.isEmpty(mods)) {\n if (finishCb) finishCb();\n return;\n }\n\n $(root).off('blur.wp-customize-changeset-update');\n var modsIDs = Object.getOwnPropertyNames(mods);\n var modsDone = [];\n\n var reqCB = function (mod) {\n if (modsDone.indexOf(mod) === -1) {\n modsDone.push(mod);\n }\n\n if (_.difference(modsIDs, modsDone).length === 0) {\n if (_.isFunction(finishCb)) {\n finishCb();\n }\n }\n };\n\n\n _.each(mods, function (value, mod) {\n CP_Customizer.setMod(mod, value, transport, reqCB);\n });\n },\n\n _currentContentValues: {},\n _setContent: function (callback) {\n var previewJQuery = CP_Customizer.preview.jQuery();\n\n if (root.CP_Customizer.preview.data().maintainable) {\n var content = root.CP_Customizer.preview.getContent().trim();\n var setting = root.wp.customize('page_content');\n if (!setting) {\n return;\n }\n\n var value = setting.get();\n if (_.isString(value)) {\n value = JSON.parse(decodeURIComponent(value));\n }\n\n if (_.isArray(value) && _.isEmpty(value)) {\n value = {};\n }\n\n if (!value) {\n value = {};\n }\n\n value[root.CP_Customizer.preview.data().pageID] = content;\n\n setting.set(encodeURIComponent(JSON.stringify(value)));\n }\n\n var modsToSet = {};\n\n this.preview.find(\"[data-theme-href]\").each(function () {\n var prop = jQuery(this).attr('data-theme-href');\n var val = jQuery(this).attr('href').trim();\n\n modsToSet[prop] = CP_Customizer.preview.cleanURL(val);\n });\n\n this.preview.find(\"[data-theme-target]\").each(function () {\n var prop = jQuery(this).attr('data-theme-target');\n var val = jQuery(this).attr('target') || \"_self\";\n\n modsToSet[prop] = val.trim();\n });\n\n\n this.preview.find(\"[data-theme-src]\").each(function () {\n var prop = jQuery(this).attr('data-theme-src');\n var val = jQuery(this).attr('src');\n // root.CP_Customizer.setMod(prop, val.trim());\n modsToSet[prop] = val.trim();\n });\n\n this.preview.find(\"[data-theme-mdi]\").each(function () {\n var prop = jQuery(this).attr('data-theme-mdi');\n var val = jQuery(this).attr('class').match(/mdi\\-[a-z\\-]+/ig).pop();\n // root.CP_Customizer.setMod(prop, val.trim());\n modsToSet[prop] = val.trim();\n });\n\n if (root.CP_Customizer.options().mods) {\n for (var selector in root.CP_Customizer.options().mods) {\n var $el = this.preview.find(selector);\n var modData = root.CP_Customizer.options().mods[selector];\n if (modData.atts) {\n for (var attr in modData.atts) {\n // $el.attr('data-theme-' + attr, modData.atts[attr]);\n var prop = $el.attr('data-theme-' + attr);\n var val = root.CP_Customizer.hooks.applyFilters('temp_attr_mod_value', $el.attr(attr) || \"\", attr, $el);\n // root.CP_Customizer.setMod(prop, val.trim());\n modsToSet[prop] = val.trim();\n }\n }\n\n\n }\n }\n\n this.preview.find(\"[data-dynamic-mod='true'],[data-dynamic-mod='true'] *\").each(function () {\n var atts = Array.from(this.attributes),\n $el = root.CP_Customizer.preview.find(this);\n\n for (var i = 0; i < atts.length; i++) {\n var attr = atts[i].name,\n prop = atts[i].value;\n\n if (attr.indexOf('data-theme-') === 0) {\n attr = attr.replace('data-theme-', '');\n var fallback = \"\";\n\n var value = $el.attr(attr);\n\n // logica inversa aici false daca exista, true daca nu\n if (attr === 'data-reiki-hidden') {\n fallback = \"true\";\n\n if (value) {\n value = 'false';\n }\n\n }\n\n if (attr.trim() === 'href') {\n value = CP_Customizer.preview.cleanURL(value);\n }\n\n var val = root.CP_Customizer.hooks.applyFilters('temp_attr_mod_value', _.isUndefined(value) ? fallback : value, attr, $el);\n\n modsToSet[prop] = CP_Customizer.cleanModValue(val);\n }\n\n }\n });\n\n this.preview.find(\"[data-theme]\").each(function () {\n\n var prop = jQuery(this).attr('data-theme');\n\n if (!previewJQuery(this).data('was-changed')) {\n if (previewJQuery('[data-theme=\"' + prop + '\"]').length > 1) {\n return;\n }\n }\n\n // root.CP_Customizer.preview.cleanNode(toSave);\n // var toSave = jQuery(this).clone();\n\n var toSave = jQuery(this).clone();\n var val = root.CP_Customizer.preview.getContent($(this));\n // root.CP_Customizer.setMod(prop, val);\n modsToSet[prop] = val.trim();\n previewJQuery(this).data('was-changed', false);\n });\n\n root.CP_Customizer.cleanClose();\n\n // update only when you find a change\n var uniqueMods = {};\n var self = this;\n _.each(modsToSet, function (value, mod) {\n if (self._currentContentValues[mod] !== value) {\n uniqueMods[mod] = value;\n self._currentContentValues[mod] = value;\n }\n });\n\n CP_Customizer.setMultipleMods(uniqueMods, 'postMessage', callback);\n\n },\n\n setContent: _.debounce(function (callback) {\n this._setContent(callback);\n }, 200),\n\n save: function () {\n\n CP_Customizer.preview.blur();\n\n $(root.document).find('body').addClass('saving');\n $(root.document).find('input#save').prop('disabled', true);\n\n var self = this;\n var callback = function () {\n wp.customize.previewer.save();\n };\n self._setContent(callback);\n\n },\n\n cleanClose: function () {\n\n },\n\n __saveTimeout: false,\n\n markSave: _.debounce(function () {\n var self = this;\n clearTimeout(self.__saveTimeout);\n\n self.__saveTimeout = setTimeout(function () {\n self.setContent();\n }, 500);\n }, 200),\n\n\n parseShortcode: function (shortcode) {\n shortcode = shortcode.replace('[', '').replace(']', '');\n\n var tag = shortcode.split(' ')[0].trim();\n var shortcodeAttrs = shortcode.match(/(\\s(.*?)=\")(.*?)(\")/ig);\n var response = {\n tag: tag,\n attrs: {}\n };\n if (!shortcodeAttrs) {\n return response;\n }\n for (var i = 0; i < shortcodeAttrs.length; i++) {\n var attr = shortcodeAttrs[i].trim();\n response.attrs[attr.split('=')[0]] = attr.split('=\"')[1].slice(0, -1)\n }\n return response;\n\n },\n\n isShortcodeContent: function ($node) {\n return root.jQuery($node).closest('[data-content-shortcode]').length > 0;\n },\n\n isShortcodeEditable: function ($node) {\n var isEditableByTag = root.jQuery($node).closest('[data-content-shortcode][data-editable=\"true\"]').length > 0;\n var tag = CP_Customizer.getNodeShortcode(root.jQuery($node).closest('[data-content-shortcode]'));\n\n return CP_Customizer.hooks.applyFilters('is_shortcode_editable', isEditableByTag, tag);\n },\n\n isOnCanvasMod: function (node) {\n node = $(node)[0];\n var hasThemeModAtt = Array.from(node.attributes).map(function (a) {\n\n return (a.name.toLowerCase().indexOf('data-theme') !== -1);\n\n }).reduce(function (a, b) {\n return a || b;\n });\n\n return hasThemeModAtt;\n },\n\n nodeWrapsShortcode: function ($node, tag) {\n var shortcode = this.getNodeShortcode($node);\n\n if (shortcode) {\n return (shortcode.tag === tag.trim());\n }\n\n return false;\n },\n\n getNodeShortcode: function ($node) {\n if (!$node.attr('data-content-shortcode')) {\n return undefined;\n }\n\n return this.parseShortcode($node.attr('data-content-shortcode'));\n },\n\n nodeContainsShortcode: function ($node, tag) {\n var $containers = $node.find('[data-content-shortcode]');\n\n for (var i = 0; i < $containers.length; i++) {\n if (CP_Customizer.nodeWrapsShortcode($containers.eq(i), tag)) {\n return true;\n }\n }\n\n return false;\n },\n\n renderNodeShortcodes: function ($node) {\n $node = $($node); // make sure the node is wrapped with jqury\n var $nodes = $node.find('[data-content-shortcode]');\n if ($node.is('[data-content-shortcode]')) {\n $nodes = $nodes.add($node);\n }\n var self = this;\n $nodes.each(function () {\n self.updateNodeShortcode($(this), \"[\" + $(this).attr('data-content-shortcode') + \"]\");\n })\n },\n updateNodeShortcode: function ($node, shortcode, noRerender, context) {\n if (!$node.attr('data-content-shortcode')) {\n return undefined;\n }\n\n var attrShortcode = CP_Customizer.utils.phpTrim(shortcode, '[]');\n $node.attr('data-content-shortcode', attrShortcode);\n\n if (noRerender !== true) {\n if (!context) {\n context = {\n query: CP_Customizer.preview.data().queryVars\n }\n }\n\n (function ($node) {\n CP_Customizer.preview.pauseObserver();\n CP_Customizer.preview.blur();\n\n var currentChangeset = CP_Customizer.utils.deepClone(wp.customize.previewer.query());\n\n var data = _.extend(currentChangeset, {\n action: 'cp_shortcode_refresh',\n shortcode: btoa(shortcode),\n context: context,\n _: Date.now()\n });\n\n $node.html('<div class=\"shortcode-temp-placeholder\"></div>');\n jQuery.ajax({\n url: ajaxurl,\n method: 'POST',\n data: data\n }).done(function (response) {\n $node.empty();\n $node.html(response);\n\n CP_Customizer.hideLoader();\n CP_Customizer.preview.decorateMods($node);\n CP_Customizer.preview.decorateElements($node);\n\n _.delay(function () {\n root.CP_Customizer.hooks.doAction(\"shortcode_updated\", $node, shortcode);\n root.CP_Customizer.updateState();\n }, 0);\n });\n CP_Customizer.preview.restartObserver();\n })($node);\n }\n\n CP_Customizer.updateState();\n return true;\n },\n\n updateNodeFromShortcodeObject: function ($node, shortcodeObj, noRerender, context) {\n var shortcode = '[' + shortcodeObj.tag + ' ';\n\n for (var a in shortcodeObj.attrs) {\n shortcode += a + '=\"' + shortcodeObj.attrs[a] + '\" ';\n }\n\n shortcode += ']';\n\n return this.updateNodeShortcode($node, shortcode, noRerender, context);\n },\n\n preview: {\n frame: function () {\n var frame = wp.customize.previewer.targetWindow.get();\n\n if (!frame) {\n frame = wp.customize.previewer.container.find('iframe')[0];\n\n if (frame) {\n frame = frame.contentWindow;\n } else {\n frame = null;\n }\n }\n\n return frame;\n },\n\n currentDevice: function () {\n return jQuery('.active[data-device]').data('device');\n },\n\n\n __observerFunctionsToPause: [\"prepareFormPreview\", \"prepareLinkPreview\"],\n __observerOriginalFunctions: {},\n\n pauseObserver: function () {\n var previewApi = CP_Customizer.preview.frame().wp.customize;\n\n this.__observerOriginalFunctions = {};\n var self = CP_Customizer.preview;\n _.each(self.__observerFunctionsToPause, function (fn) {\n if (_.isFunction(previewApi[fn])) {\n self.__observerOriginalFunctions[fn] = previewApi[fn];\n previewApi[fn] = function () {\n };\n }\n });\n },\n\n restartObserver: _.debounce(function () {\n var previewApi = CP_Customizer.preview.frame().wp.customize;\n\n var self = CP_Customizer.preview;\n _.each(self.__observerFunctionsToPause, function (fn) {\n if (_.isFunction(previewApi[fn]) && _.isFunction(self.__observerOriginalFunctions[fn])) {\n previewApi[fn] = self.__observerOriginalFunctions[fn];\n }\n });\n }, 100),\n\n\n addSilentExecution: function (callback) {\n return _.compose(this.pauseObserver, callback, this.restartObserver);\n },\n\n silentCall: function (callback) {\n var args = arguments.length > 1 ? arguments[1] : undefined;\n var context = arguments.length > 2 ? arguments[2] : this;\n\n callback = this.addSilentExecution(callback);\n\n return callback.apply(context, arguments);\n },\n\n\n refresh: _.throttle(function () {\n CP_Customizer.wpApi.previewer.refresh();\n }, 100),\n\n data: function (key, defaultValue) {\n\n if (!this.frame()) {\n return {};\n }\n\n var result = this.frame().cpCustomizerPreview || {};\n\n if (key) {\n var keyParts = key.split(':');\n for (var i = 0; i < keyParts.length; i++) {\n var part = keyParts[i];\n\n if (!_.isUndefined(result[part])) {\n result = result[part];\n } else {\n result = defaultValue;\n break;\n }\n }\n }\n\n return result;\n },\n\n getChangesetURL: function () {\n var changeset = wp.customize.settings.changeset.uuid ? \"?changeset_uuid=\" + wp.customize.settings.changeset.uuid : \"\";\n\n if (changeset) {\n changeset += \"&cp__changeset__preview=\" + Date.now();\n }\n\n return window.location.origin + window.location.pathname + changeset;\n },\n\n isPageMaintainable: function () {\n return this.data.maintainable;\n },\n\n // http://stackoverflow.com/questions/7451468/contenteditable-div-how-can-i-determine-if-the-cursor-is-at-the-start-or-end-o/7478420#7478420\n getSelectionTextInfo: function (el) {\n var atStart = false, atEnd = false;\n var window = this.frame();\n var document = this.frame().document;\n var selRange, testRange;\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.rangeCount) {\n selRange = sel.getRangeAt(0);\n testRange = selRange.cloneRange();\n\n testRange.selectNodeContents(el);\n testRange.setEnd(selRange.startContainer, selRange.startOffset);\n atStart = (testRange.toString() == \"\");\n\n testRange.selectNodeContents(el);\n testRange.setStart(selRange.endContainer, selRange.endOffset);\n atEnd = (testRange.toString() == \"\");\n }\n } else if (document.selection && document.selection.type != \"Control\") {\n selRange = document.selection.createRange();\n testRange = selRange.duplicate();\n\n testRange.moveToElementText(el);\n testRange.setEndPoint(\"EndToStart\", selRange);\n atStart = (testRange.text == \"\");\n\n testRange.moveToElementText(el);\n testRange.setEndPoint(\"StartToEnd\", selRange);\n atEnd = (testRange.text == \"\");\n }\n\n return {atStart: atStart, atEnd: atEnd};\n },\n\n isCustomFrontPage: function () {\n return this.data.isFrontPage;\n },\n\n jQuery: function (data) {\n if (data) {\n return this.frame().jQuery(data);\n }\n return this.frame().jQuery;\n },\n\n getPageContainerSelector: function () {\n\n if (!root.CP_Customizer.preview.data().maintainable) {\n '';\n }\n\n var startSelector = \"#cp_customizer_content_area_start\";\n\n var attrName = 'data-cp-content-container-' + top.CP_Customizer.slugPrefix();\n var $parent = this.jQuery(startSelector).parent();\n if (!$parent.attr(attrName)) {\n $parent.attr(attrName, _.uniqueId(\"page-content-container-\"));\n }\n\n selector = \"[\" + attrName + \"='\" + $parent.attr(attrName) + \"']\";\n\n selector = CP_Customizer.hooks.applyFilters('page_content_container_selector', selector);\n\n return selector;\n },\n\n getRootNode: function () {\n if (!wp.customize('page_content')) {\n return this.jQuery(\"<div/>\");\n }\n\n return this.find(this.getPageContainerSelector());\n },\n\n find: function (query) {\n var $ = this.jQuery();\n return $(query);\n },\n\n getSectionByDataId: function (id) {\n return this.find('[data-id=\"' + id + '\"]');\n },\n\n getNodeSection: function (node) {\n var $node = CP_Customizer.preview.jQuery(node);\n if ($node.is('[data-id]')) {\n return $node;\n } else {\n return $node.closest('[data-id]');\n }\n },\n\n getNodeAbsSelector: function (node, relativeSelector) {\n var section = this.getNodeSection(node),\n sectionId = \"[data-id='\" + section.attr('data-id') + \"']\",\n absSelector = sectionId + ' ' + relativeSelector;\n\n return absSelector.replace(/\\s\\s?/, ' ').trim();\n },\n\n getNodeSectionId: function (node) {\n var section = this.getNodeSection(node);\n return section.attr('data-id');\n },\n\n getNodeExportId: function (node) {\n var section = this.getNodeSection(node);\n return section.attr('data-export-id');\n },\n\n getThemeMods: function ($container) {\n if (!$container || $container.is(this.getRootNode())) {\n $container = this.jQuery('body');\n }\n\n var themeModNodesSelector = root.CP_Customizer.hooks.applyFilters('theme_mod_nodes_selector', root.CP_Customizer.THEME_MOD_NODES);\n\n if (root.CP_Customizer.options().mods) {\n for (var m in root.CP_Customizer.options().mods) {\n themeModNodesSelector += ',' + m;\n }\n }\n\n $themeModNodes = $container.find(themeModNodesSelector);\n\n if ($container.is(themeModNodesSelector)) {\n $themeModNodes.add($container);\n }\n\n return $themeModNodes;\n },\n\n getContentNodes: function (filter) {\n //replaced children() with contents() to also get html comments for gutenberg blocks\n var nodes = this.getRootNode().contents().toArray();\n nodes.html = function () {\n return this.map(function (node) {\n if (node.nodeType == Node.COMMENT_NODE) {\n return \"<!--\" + node.textContent + \"-->\";\n } else {\n return node.outerHTML;\n }\n }).join('');\n };\n\n return nodes;\n },\n\n getContent: function ($node) {\n\n $node = $node || this.getContentNodes();\n var nodesHML = $node.html().//remove all gutenberg block comments they will be added back by decorate\n replace(/<!-- \\/?wp:extendstudio\\/materialis -->/gi, '').\n replace(/[\\w-]+=\"gutenberg-section-\\d+\"/gi, '').\n replace(/[\\w-]+=\"Gutenberg\"/gi, '');\n \n var $currentNodes = $('<div/>').append(nodesHML);\n\n $currentNodes.find('.reiki-customizer-ordering-overlay').remove();\n\n // cleanup inline styling, leaving only background properties and typography\n $currentNodes[0].querySelectorAll('[style]').forEach(function (el) {\n var style = el.getAttribute('style'),\n whitelistedProps = root.CP_Customizer.options('cssAllowedProperties'),\n inlineCss = {},\n styleProps = style.split(';');\n\n for (var i = 0; i < styleProps.length; i++) {\n var propParts = styleProps[i].split(':'),\n prop = (propParts.shift() || \"\").trim(),\n value = (propParts || []).join(':').trim();\n\n if (prop && value) {\n inlineCss[prop] = value;\n }\n\n }\n\n var inlineCssText = \"\";\n\n for (var prop in inlineCss) {\n inlineCssText += prop + ': ' + inlineCss[prop] + '; ';\n }\n\n if (inlineCssText.trim()) {\n el.setAttribute('style', inlineCssText.trim());\n } else {\n el.removeAttribute('style');\n }\n\n el.removeAttribute('data-mce-style');\n\n });\n\n\n $currentNodes[0].querySelectorAll('[data-content-shortcode]').forEach(function (el) {\n el.innerHTML = '[' + CP_Customizer.utils.phpTrim(el.getAttribute('data-content-shortcode')) + ']';\n });\n\n\n $currentNodes[0].querySelectorAll('[data-attr-shortcode]').forEach(function (el) {\n var attr = el.getAttribute('data-attr-shortcode');\n var parts = attr.split(',');\n\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i].trim();\n part = part.split(':');\n el.setAttribute(part[0].trim(), '[' + part[1].trim() + ']');\n }\n });\n\n\n this.cleanNode($currentNodes);\n\n CP_Customizer.hooks.doAction('clean_nodes', $currentNodes);\n\n $currentNodes[0].querySelectorAll('*').forEach(function (el) {\n var attributes = el.attributes;\n for (var i = 0; i < attributes.length; i++) {\n var attrName = attributes.item(i).name;\n if (attrName.match(/scrollreveal/)) {\n el.removeAttribute(attrName);\n }\n }\n });\n\n $currentNodes.find('*').not('[data-cpid]').remove();\n\n // $currentNodes.find('*').not('[data-cpid]').each(function () {\n // var $el = $(this);\n\n // if ($el.attr('data-cp-remove-this')) {\n // $el.remove();\n // }\n\n // if (this.previousSibling && this.previousSibling.nodeType === 8) {\n // var commentText = this.previousSibling.textContent,\n // shortcode = \"\",\n // startComment = \"\";\n\n // this.previousSibling.parentNode.removeChild(this.previousSibling);\n // if (commentText.match(/cp-shortcode:(.*?):(.*)/)) {\n // shortcode = commentText.match(/cp-shortcode:(.*?):(.*)/).pop();\n // startComment = commentText;\n // }\n\n // var nextSibling = this.nextSibling;\n\n // while (nextSibling) {\n // if (nextSibling.nodeType === 8) {\n // var commentText = nextSibling.textContent;\n\n // if (commentText.trim() === startComment.trim()) {\n // nextSibling.parentNode.removeChild(nextSibling);\n // break;\n // }\n // }\n\n // $(nextSibling).attr('data-cp-remove-this', '1');\n // nextSibling = nextSibling.nextSibling;\n // }\n\n // this.outerHTML = shortcode;\n // } else {\n // $el.remove();\n // }\n // });\n\n $currentNodes.find('br').each(function () {\n if (!this.nextSibling) {\n $(this).remove();\n }\n });\n\n CP_Customizer.hooks.applyFilters('get_content', $currentNodes);\n \n\t //gutenberg\n this.decorateSectionsForGutenberg($currentNodes.find('[data-id][data-export-id]'));\n return $currentNodes.html().replace(/data-cpid=\"[^\"]+\"/gi, ''); ;\n },\n\n __cleanNode: function (el) {\n el.removeAttribute('data-content-editable');\n el.removeAttribute('data-content-code-editable');\n el.removeAttribute('data-container-editable');\n\t el.removeAttribute('data-non-editable');\n el.removeAttribute('contenteditable');\n el.removeAttribute('spellcheck');\n\n el.classList.remove('ui-sortable');\n el.classList.remove('ui-sortable-disabled');\n el.classList.remove('ui-sortable-handle');\n el.classList.remove('customize-unpreviewable');\n\n var elClass = el.getAttribute('class');\n if (elClass) {\n // remove the tinymce (mce-*) classes;\n elClass = elClass.replace(/mce\\-[a-z\\-]+/ig, \"\").trim();\n\n // remove multiple spaces in class names\n elClass = elClass.replace(/\\s\\s+/g, ' ');\n\n el.setAttribute('class', elClass);\n }\n\n if (el.id && el.id.indexOf('mce_') === 0) {\n el.removeAttribute('id');\n }\n\n // preview styles\n el.removeAttribute('data-preview-empty');\n\n // clean node url\n\n if (el.getAttribute('href')) {\n var href = CP_Customizer.preview.cleanURL(el.getAttribute('href'));\n el.setAttribute('href', href)\n }\n },\n\n\n getNodeClasses: function (node) {\n var $clone = $(node).clone();\n this.__cleanNode($clone[0]);\n return Array.from($clone[0].classList);\n },\n\n cleanNode: function ($node) {\n\n $node[0].querySelectorAll('[data-content-editable], [data-content-code-editable], [data-container-editable], [data-non-editable]').forEach(function (el) {\n root.CP_Customizer.preview.__cleanNode(el);\n });\n\n $node[0].querySelectorAll('.ui-sortable,.ui-sortable-disabled,.ui-sortable-handle').forEach(function (el) {\n root.CP_Customizer.preview.__cleanNode(el);\n });\n\n root.CP_Customizer.preview.__cleanNode($node[0]);\n\n return $node;\n },\n\n cleanURL: function (url) {\n\n var startsWithDoubleSlash = (url.indexOf('//') === 0);\n var startsWithSlash = (url.indexOf('/') === 0);\n\n var queryKeys = Object.getOwnPropertyNames(CP_Customizer.wpApi.previewer.query());\n queryKeys = _.unique(queryKeys.concat([\n 'customize_theme',\n 'customize_changeset_uuid',\n 'customize_messenger_channel',\n 'customize_autosaved'\n ]));\n\n url = CP_Customizer.utils.removeUrlQueryStrings(url, queryKeys);\n\n // clean url\n url = CP_Customizer.utils.phpTrim(url, '/').trim() || \"#\";\n\n // add // or / depending on how url received\n if (startsWithDoubleSlash) {\n url = '//' + url;\n } else {\n if (startsWithSlash) {\n url = '/' + url;\n }\n }\n\n return url;\n },\n\n fixWronglyWrappedTextNodes: function ($node) {\n $($node).find('div').each(function () {\n var hasOnlyTextInside = Array.from(this).map(function (item) {\n return ([8, 3].indexOf(item.nodeType) !== -1)\n }).reduce(function (a, b) {\n return a && b\n }, true);\n\n if (hasOnlyTextInside) {\n if (this.innerHTML.trim().length) {\n this.outerHTML = this.innerHTML + '<br/>';\n } else {\n $(this).remove();\n }\n }\n });\n },\n\n markNode: function ($node, prefix) {\n\n CP_Customizer.preview.pauseObserver();\n prefix = prefix || 'new_cp_node_';\n\n $($node).find(\"*\").addBack().each(function () {\n $(this).attr('data-cpid', _.uniqueId(prefix));\n });\n\n CP_Customizer.preview.restartObserver();\n },\n\n insertNode: function ($node, $parent, index) {\n\n CP_Customizer.preview.silentCall(function () {\n index = (index !== undefined) ? index : $parent.children().length;\n jQuery($node).insertAt(index, $parent);\n\n this.decorateElements($node);\n this.markNode($node);\n\n root.CP_Customizer.updateState();\n\n $parent.removeAttr('data-preview-empty');\n\n CP_Customizer.hooks.doAction('after_node_insert', $node);\n });\n },\n\n replaceNode: function ($node, $newNode) {\n\n CP_Customizer.preview.silentCall(function () {\n jQuery($node).replaceWith($newNode);\n\n this.decorateElements($newNode);\n this.markNode($newNode);\n\n root.CP_Customizer.updateState();\n\n });\n },\n\n hideNode: function ($node) {\n $node.attr('data-reiki-hidden', 'true');\n\n var $parent = $node.parent();\n if ($parent.children(':visible').length === 0) {\n $parent.attr('data-preview-empty', 1);\n } else {\n $parent.removeAttr('data-preview-empty');\n }\n },\n\n showNode: function ($node) {\n $node.removeAttr('data-reiki-hidden');\n\n var $parent = $node.parent();\n if ($parent.children(':visible').length === 0) {\n $parent.attr('data-preview-empty', 1);\n } else {\n $parent.removeAttr('data-preview-empty');\n }\n },\n\n isNodeVisible: function ($node) {\n return !($node.is('[data-reiki-hidden]'));\n },\n\n removeNode: function ($node, skipUpdate) {\n CP_Customizer.preview.pauseObserver();\n var $parent = $node.parent();\n $node.remove();\n\n if (!skipUpdate) {\n root.CP_Customizer.updateState();\n }\n\n if ($parent.children().length === 0) {\n $parent.attr('data-preview-empty', 1);\n } else {\n $parent.removeAttr('data-preview-empty');\n }\n\n _.delay(function () {\n root.CP_Customizer.overlays.hideMovableOverlays();\n var addOverlay = root.CP_Customizer.overlays.addOverlay();\n root.CP_Customizer.overlays.updateOverlay(addOverlay, addOverlay.data().node, false, true);\n }, 10);\n\n CP_Customizer.preview.restartObserver();\n },\n\n\n insertContentSection: function (newRow, index) {\n index = _.isNumber(index) ? index : undefined;\n\n if (_.isUndefined(index) && this.getRootNode().children('[data-id][data-label]').length) {\n index = this.getRootNode().children('[data-id][data-label]').last().index() + 1;\n }\n\n this.insertNode(newRow, this.getRootNode(), index);\n \t//this.decorateSectionsForGutenberg(newRow);\n this.decorateElements(newRow);\n\n\n function colorize(row) {\n var hasColor = (tinycolor(row.css('background-color')).getAlpha() !== 0);\n\n if (!hasColor && !row.is('[data-bg=\"transparent\"]')) {\n var prevSection = row.prev('[data-id][data-label]');\n\n if (!prevSection.length) {\n row.css('background-color', '#ffffff');\n return;\n }\n\n var isPrevTransparent = (tinycolor(prevSection.css('background-color')).getAlpha() === 0);\n var isPrevWhite = (tinycolor(prevSection.css('background-color')).toHex().toUpperCase() === \"FFFFFF\" || tinycolor(prevSection.css('background-color')).toHex().toUpperCase() === \"FFF\");\n\n if (isPrevTransparent || isPrevWhite) {\n row.css('background-color', '#F5FAFD');\n } else {\n row.css('background-color', '#ffffff');\n }\n }\n }\n\n colorize(newRow);\n\n\n CP_Customizer.renderNodeShortcodes(newRow);\n // CP_Customizer.hooks.doAction('after_node_insert', newRow);\n this.jQuery('html, body').animate({\n 'scrollTop': newRow.offset().top\n });\n\n var exports = CP_Customizer.getSectionExports(newRow.attr('data-export-id'));\n if (exports.afterInsert && _.isFunction(exports.afterInsert)) {\n CP_Customizer.one(CP_Customizer.events.STATE_UPDATED, function () {\n exports.afterInsert(newRow);\n });\n }\n\n CP_Customizer.updateState();\n\n },\n\n editContainerData: function () {\n var item = $(this),\n fields = [],\n elements = item.find('[data-content-code-editable],[data-theme-href],[data-theme],[data-theme-mdi]');\n\n\n item.blur();\n\n if (CP_Customizer.hooks.applyFilters('custom_container_data_handle', false, item)) {\n CP_Customizer.hooks.doAction('custom_container_data_handle', item);\n CP_Customizer.preview.blur();\n return;\n }\n\n if (!elements.length) {\n elements = item.filter('.mdi');\n }\n\n CP_Customizer.overlays.updateOverlay(CP_Customizer.overlays.hoverOverlay(), item);\n\n if (item.is('[data-content-code-editable]') || item.is('[data-bg=\"image\"]')) {\n elements = elements.add(item);\n }\n\n elements = elements.filter(function (index, elem) {\n var result = true;\n elem = $(elem);\n\n for (var i = 0; i < CP_Customizer.__containerDataFilters.length; i++) {\n var filter = CP_Customizer.__containerDataFilters[i];\n if (false === filter.call(elem, elem)) {\n result = false;\n break;\n }\n }\n return result;\n\n });\n\n elements.each(function (index, elem) {\n var result = false,\n setter = false,\n $elem = $(this);\n\n for (var selector in CP_Customizer.__containerDataHandlers) {\n if ($elem.is(selector)) {\n result = CP_Customizer.__containerDataHandlers[selector].getter.call($elem, $elem);\n setter = CP_Customizer.__containerDataHandlers[selector].setter;\n break;\n }\n }\n\n result = root.CP_Customizer.hooks.applyFilters('container_data_element', result, $elem);\n if (result !== false) {\n if (!_.isArray(result)) {\n result = [result];\n }\n\n for (var i = 0; i < result.length; i++) {\n result[i].id = 'item_no_' + index + '_' + i;\n result[i].setter = setter;\n result[i].node = $elem;\n }\n\n fields = fields.concat(result);\n }\n\n });\n\n var content = '';\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i],\n type = field.type || 'text';\n\n var $fieldContent = $(CP_Customizer.jsTPL[type] ? CP_Customizer.jsTPL[type](field) : '');\n\n if (field.classes) {\n $fieldContent.addClass(field.classes);\n }\n\n if (field.ready && _.isFunction(field.ready)) {\n field.ready($fieldContent);\n }\n\n $fieldContent.addClass(type);\n\n content += $('<div />').append($fieldContent).html();\n }\n\n var popupContainer = $('#cp-container-editor');\n\n\n function setContent() {\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i],\n value = {},\n node = field.node\n if (field.getValue) {\n value = field.getValue($('[id=\"' + field.id + '\"]'));\n } else {\n var _values = $('[id^=\"' + field.id + '\"]').filter('input,textarea,select').map(function (index, elem) {\n return {\n key: $(this).attr('id').replace(field.id + \"__\", ''),\n value: $(this).is('[type=checkbox]') ? this.checked : $(this).val()\n };\n }).toArray();\n\n _(_values).each(function (v) {\n value[v.key] = v.value;\n });\n\n if (_values.length === 1 && value.hasOwnProperty(field.id)) {\n value = value[field.id];\n }\n }\n\n if (field.setter) {\n field.setter.call(node, node, value, field.type, field);\n root.CP_Customizer.hooks.doAction('container_data_element_setter', node, value, field);\n }\n }\n\n if (node.is('[data-theme]')) {\n CP_Customizer.preview.jQuery(node).data('was-changed', true);\n }\n\n\n if (node.closest('[data-theme]').length) {\n CP_Customizer.preview.jQuery(node.closest('[data-theme]')).data('was-changed', true);\n }\n\n\n CP_Customizer.closePopUps();\n CP_Customizer.updateState();\n }\n\n\n setContent = CP_Customizer.preview.addSilentExecution(setContent);\n\n popupContainer.find('[id=\"cp-item-ok\"]').off().click(setContent);\n\n popupContainer.find('[id=\"cp-item-cancel\"]').off().click(function () {\n CP_Customizer.closePopUps();\n });\n\n popupContainer.find('#cp-items').html(content);\n\n CP_Customizer.popUp(root.CP_Customizer.translateCompanionString('Manage Content'), \"cp-container-editor\", {\n class: \"data-edit-popup\"\n });\n\n CP_Customizer.preview.blur(true);\n\n },\n\n __dataContainers: ['[data-container-editable]', '[data-type=group]'],\n\n addDataContainerSelector: function (selector) {\n this.__dataContainers.push(selector);\n },\n\n registerContainerDataHandler: function (selector, handler) {\n CP_Customizer.preview.addDataContainerSelector(selector);\n var context = {\n selector: selector,\n handler: handler\n };\n\n CP_Customizer.hooks.addFilter('custom_container_data_handle', function (value, $item) {\n if ($item.is(this.selector)) {\n value = true;\n }\n return value;\n\n }.bind(context));\n\n CP_Customizer.hooks.addAction('custom_container_data_handle', function ($item) {\n if ($item.is(this.selector)) {\n this.handler($item);\n }\n }.bind(context));\n },\n\n\n getContainersSelector: function (addSelectors) {\n var result = _.clone(this.__dataContainers);\n\n if (_.isArray(addSelectors)) {\n result = result.concat(addSelectors);\n } else {\n if (_.isString(addSelectors)) {\n result.push(addSelectors);\n }\n }\n\n return result.join(',');\n },\n\n\n addContentBinds: function () {\n var $ = this.jQuery(),\n document = this.frame().document,\n window = this.frame();\n\n $(document).on('mouseover.hoveroverlay', this.getContainersSelector('[data-widgets-area],[data-bg=\"image\"]'), _.debounce(function () {\n \t\tif (this.hasAttribute(\"data-non-editable\")) return false;\n var node = $(this);\n var hoverOverlay = root.CP_Customizer.overlays.hoverOverlay();\n\n if (node.closest('[data-type=group]').length) {\n node = $(this).closest('[data-type=group]');\n }\n\n if (node.closest('[data-content-shortcode]').length) {\n node = node.closest('[data-content-shortcode]');\n }\n\n root.CP_Customizer.overlays.assignNode(hoverOverlay, node, true);\n hoverOverlay.show();\n\n var structureAllowsRemoving = (node.parents('[data-type=row]').length || node.parents('[data-type=column]').length)/* && node.siblings().length*/;\n var isFixed = (node.is('[data-fixed]') || node.parents('[data-fixed]').length);\n\n isFixed = CP_Customizer.hooks.applyFilters('is_fixed_element', isFixed, node);\n\n if (structureAllowsRemoving && !isFixed && node.is(root.CP_Customizer.CONTENT_ELEMENTS)) {\n hoverOverlay.find('.remove').show();\n } else {\n hoverOverlay.find('.remove').hide();\n }\n }, 1));\n\n\n $(document).on('mouseover.hoveroverlay', '[data-content-editable], .page-content i.mdi, body [data-content-item-container=\"true\"]', _.debounce(function () {\n\t\t\t\t\t\tif (this.hasAttribute(\"data-non-editable\")) return false;\n var node = $(this);\n\n if (node.parent().is('[data-content-item-container=\"true\"]')) {\n return;\n }\n\n var hoverOverlay = root.CP_Customizer.overlays.hoverOverlay();\n\n if (node.closest('[data-type=group]').length) {\n node = $(this).closest('[data-type=group]');\n }\n\n root.CP_Customizer.overlays.assignNode(hoverOverlay, node);\n hoverOverlay.show();\n\n if (CP_Customizer.isShortcodeContent(node)) {\n hoverOverlay.find('.remove').hide();\n\n if (!CP_Customizer.isOnCanvasMod(node)) {\n hoverOverlay.hide();\n }\n } else {\n var inRow = node.parents('[data-type=row]').length || node.parents('[data-type=column]').length;\n if (inRow && !node.is('[data-fixed]') && !node.closest('[data-fixed]').length) {\n hoverOverlay.find('.remove').show();\n } else {\n hoverOverlay.find('.remove').hide();\n }\n }\n\n\n }, 1));\n\n $(document).on('mouseover.hoveroverlay', '.page-content [data-content-shortcode]', function () {\n\n if (CP_Customizer.isShortcodeEditable($(this))) {\n var overlay = root.CP_Customizer.overlays.hoverOverlay();\n root.CP_Customizer.overlays.assignNode(overlay, $(this));\n overlay.show();\n }\n });\n\n\n $(document).on('mouseover', root.CP_Customizer.preview.getPageContainerSelector() + ' > div', function () {\n root.CP_Customizer.trigger('content.section.hovered', [$(this)]);\n });\n\n\n $(document).on('mouseover', '[data-type=\"richtext\"]', function () {\n var hoverOverlay = root.CP_Customizer.overlays.hoverOverlay();\n root.CP_Customizer.overlays.assignNode(hoverOverlay, $(this), true);\n\n });\n\n\n $(document).on('mouseover.addoverlay', '.page-content [data-type=\"row\"] > div, [data-theme] [data-type=\"row\"] > div, .page-content [data-type=\"column\"]', function () {\n\n if ($(this).closest(\"[data-type=\\\"row\\\"]\").is('[data-fixed]')) {\n return;\n }\n\n if ($(this).find('[data-type=column]').length) {\n return;\n }\n\n if ($(this).closest('[data-content-shortcode]').length) {\n return;\n }\n\n var addOverlay = root.CP_Customizer.overlays.addOverlay();\n root.CP_Customizer.overlays.assignNode(addOverlay, $(this));\n addOverlay.show();\n });\n\n\n $(document).on('mouseover.rowitemoverlay', '.page-content [data-type=\"row\"] > div, [data-theme] [data-type=\"row\"] > div, .page-content [data-type=\"row\"] > div, [data-theme] [data-type=\"row\"] > div * ', function () {\n var node = $(this);\n\n if (!node.parent().is('[data-type=\"row\"]')) {\n var parents = node.parentsUntil('[data-type=\"row\"]');\n node = parents.last();\n }\n\n if (CP_Customizer.isShortcodeContent(node)) {\n return;\n }\n\n\n var itemOverlay = root.CP_Customizer.overlays.rowItemHoverOverlay();\n root.CP_Customizer.overlays.assignNode(itemOverlay, node);\n itemOverlay.show();\n }\n );\n\n $(window).on('scroll', root.CP_Customizer.overlays.updateAllOverlays);\n $(window).on('resize', _(root.CP_Customizer.overlays.updateAllOverlays).debounce(50));\n\n $(document).on('click', this.getContainersSelector(), root.CP_Customizer.preview.editContainerData);\n\n $(document).on('click', 'body [data-content-editable]', function () {\n $(this).focus();\n });\n\n $(document).on('click', 'img[data-content-editable], [data-bg=\"image\"]', function () {\n\n\n var self = $(this),\n type = \"image\",\n data = {};\n\n if (self.is(CP_Customizer.preview.getContainersSelector())) {\n return;\n }\n\n var section = CP_Customizer.preview.getNodeSection(self);\n var sectionExports = CP_Customizer.getSectionExports(section);\n\n var flexible = _.isUndefined(sectionExports.maintainCropPropotion) ? true : sectionExports.maintainCropPropotion;\n\n if (self.is('[data-size-flexible=false]')) {\n flexible = false;\n }\n\n if (self.attr('data-size')) {\n var size = self.attr('data-size').split('x');\n type = \"cropable\";\n data = {\n width: size[0],\n height: size[1] ? size[1] : size[0],\n flexible: flexible\n };\n } else {\n data = {\n width: self.width(),\n height: self.height(),\n flexible: true\n };\n }\n\n root.CP_Customizer.openMediaBrowser(type, setterCB, data);\n\n function setterCB(src) {\n if (!src) {\n return;\n }\n if (self.is('img')) {\n self.attr('src', src[0].url);\n\n // remove attributes added by other plugins like JetPack\n self.removeAttr('srcset');\n self.removeAttr('src-orig');\n self.removeAttr('width');\n self.removeAttr('height');\n\n } else {\n self.css('background-image', 'url(' + src[0].url + ')');\n }\n\n root.CP_Customizer.markSave();\n }\n });\n\n $(document).on('click', 'i.mdi', function () {\n if (CP_Customizer.hooks.applyFilters('can_edit_icon', true, $(this))) {\n CP_Customizer.preview.editContainerData.apply(this);\n }\n });\n\n var cachedValue = \"\";\n $(document).on('mousedown', '.page-content [data-content-editable]', function (event) {\n cachedValue = $(this).text();\n });\n\n\n $(document).on('mouseup', '.page-content [data-content-editable]', function () {\n if ($(this).text() !== cachedValue) {\n root.CP_Customizer.markSave();\n cachedValue = $(this).text();\n } else {\n cachedValue = \"\";\n }\n });\n\n //Check for IE ('Trident')\n var contentEditableInputEvent = /Trident/.test(navigator.userAgent) ? 'textinput' : 'input';\n\n\n $(document).on(contentEditableInputEvent, 'body [data-content-editable]', function () {\n if ($(this).is('[data-theme]')) {\n $(this).data('was-changed', true);\n return;\n }\n\n root.CP_Customizer.overlays.updateOverlay(root.CP_Customizer.overlays.hoverOverlay(), $(this), false, true);\n root.CP_Customizer.markSave();\n });\n\n\n $(document).on('blur', 'body [data-theme]', function () {\n if ($(this).data('was-changed')) {\n root.CP_Customizer.markSave();\n }\n });\n\n var elementsSpecificSelector = CP_Customizer.TEXT_ELEMENTS.split(',').map(function (item) {\n var result = CP_Customizer.preview.getPageContainerSelector() + ' ' + item;\n\n result += \", [data-theme] \" + item;\n return result;\n });\n\n elementsSpecificSelector.push('[data-theme]');\n\n elementsSpecificSelector = elementsSpecificSelector.join(',');\n\n var elementsOnFocusLeave = _.debounce(function () {\n var $this = $(this);\n root.CP_Customizer.preview.markNode($this);\n\n if ($this.is(root.CP_Customizer.CONTENT_ELEMENTS) && $this.html().trim().length === 0) {\n $this.attr('data-preview-empty', 1);\n }\n }, 10);\n\n $(document).on('blur focusout', elementsSpecificSelector, elementsOnFocusLeave);\n\n $(document).on('focus', elementsSpecificSelector, function (event) {\n var $this = $(this);\n $this.removeAttr('data-preview-empty');\n\n if ($this.is('.mdi')) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n });\n\n\n $(document).on('keydown.cp', '[contenteditable=true]', function (event) {\n\n var editedNode = this;\n\n _.delay(function () {\n root.CP_Customizer.overlays.updateOverlay(root.CP_Customizer.overlays.hoverOverlay(), $(editedNode), false, true);\n $(editedNode).removeAttr('data-preview-empty');\n }, 20);\n\n });\n\n $(document).on('keypress.cp', '[contenteditable=true]', function (event) {\n\n if (event.which !== 13)\n return true;\n\n var document = CP_Customizer.preview.frame().document;\n\n var docFragment = document.createDocumentFragment();\n //add a new line\n var newEle = document.createTextNode('\\n');\n docFragment.appendChild(newEle);\n //add the br, or p, or something else\n newEle = document.createElement('br');\n docFragment.appendChild(newEle);\n\n var caretPosition = root.CP_Customizer.preview.getSelectionTextInfo(this);\n\n //make the br replace selection\n var range = window.getSelection().getRangeAt(0);\n range.deleteContents();\n range.insertNode(docFragment);\n //create a new range\n range = document.createRange();\n range.setStartAfter(newEle);\n range.collapse(true);\n //make the cursor there\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n\n event.preventDefault();\n\n $(this).trim();\n\n root.CP_Customizer.overlays.updateOverlay(root.CP_Customizer.overlays.hoverOverlay(), $(this), false, true);\n\n return false;\n\n });\n\n $(document).on('blur.cpmarksave', '[contenteditable=true]', _.debounce(function (event) {\n\n if (!$(this).data('cpFocused')) {\n return;\n }\n\n $(this).data('cpFocused', false);\n\n root.CP_Customizer.preview.markNode($(this));\n root.CP_Customizer.markSave();\n }, 800));\n\n $(window).bind('keydown', function (event) {\n if (event.ctrlKey || event.metaKey) {\n var key = String.fromCharCode(event.which).toLowerCase();\n if (key === \"s\") {\n event.preventDefault();\n event.stopPropagation();\n root.CP_Customizer.save();\n }\n }\n });\n\n\n },\n // http://stackoverflow.com/questions/1125292/how-to-move-cursor-to-end-of-contenteditable-entity\n placeCursorAtEnd: function (contentEditableElement) {\n try {\n var range, selection,\n document = this.frame().document,\n window = this.frame();\n if (document.createRange) //Firefox, Chrome, Opera, Safari, IE 9+\n {\n range = document.createRange(); //Create a range (a range is a like the selection but invisible)\n range.selectNodeContents(contentEditableElement); //Select the entire contents of the element with the range\n range.collapse(false); //collapse the range to the end point. false means collapse to end rather than the start\n selection = window.getSelection(); //get the selection object (allows you to change selection)\n selection.removeAllRanges(); //remove any selections already made\n selection.addRange(range); //make the range you have just created the visible selection\n } else if (document.selection) //IE 8 and lower\n {\n range = document.body.createTextRange(); //Create a range (a range is a like the selection but invisible)\n range.moveToElementText(contentEditableElement); //Select the entire contents of the element with the range\n range.collapse(false); //collapse the range to the end point. false means collapse to end rather than the start\n range.select(); //Select the range (make it the visible selection\n }\n } catch (e) {\n\n }\n },\n\n\n decorateMods: function ($container) {\n\n // decorate default mods\n CP_Customizer.preview.pauseObserver();\n $container = $container ? this.jQuery($container) : this.find('body');\n var defaultMods = root.CP_Customizer.preview.getThemeMods($container);\n var preview = this;\n defaultMods.each(function () {\n var $el = $(this);\n if ($el.is('[data-theme]')) {\n preview.markNode($el);\n $el.find('[data-type=\"row\"] > div').each(preview.enableSortable);\n }\n });\n\n if (root.CP_Customizer.options().mods) {\n for (var selector in root.CP_Customizer.options().mods) {\n var $el = this.find(selector);\n var modData = root.CP_Customizer.options().mods[selector];\n if (modData.type) {\n $el.attr(modData.type, modData.mod);\n\n if (modData.type === \"data-theme\") {\n preview.markNode($el);\n $el.find('[data-type=\"row\"] > div').each(this.enableSortable);\n }\n }\n\n if (modData.atts) {\n for (var attr in modData.atts) {\n $el.attr('data-theme-' + attr, modData.atts[attr]);\n }\n }\n\n }\n }\n\n CP_Customizer.preview.restartObserver();\n },\n\n //scan siblings and parent siblings until a comment node is found\n getGutenbergBlockCommentStart:function (node)\n {\n if (!node || (node && node.tagName == \"body\")) return false;\n if (node.nodeType == Node.COMMENT_NODE) return node;\n\n var previousSibling = node.previousSibling;\n var maxDepth = 10;\n while (previousSibling && \n previousSibling.nodeType != Node.COMMENT_NODE &&\n maxDepth-- > 0)\n {\n previousSibling = previousSibling.previousSibling;\n }\n\n if (!previousSibling || previousSibling.nodeType != Node.COMMENT_NODE) \n previousSibling = this.getGutenbergBlockCommentStart(node.parentNode);\n \n if (previousSibling.nodeType == Node.COMMENT_NODE)\n return previousSibling;\n \n return false;\n },\n\n getGutenbergBlockCommentEnd:function (node)\n {\n if (!node || (node && node.tagName == \"body\")) return false;\n if (node.nodeType == Node.COMMENT_NODE) return node;\n\n var nextSibling = node.nextSibling;\n var maxDepth = 10;\n while (nextSibling && \n nextSibling.nodeType != Node.COMMENT_NODE &&\n maxDepth-- > 0)\n {\n nextSibling = nextSibling.nextSibling;\n }\n\n if (!nextSibling || nextSibling.nodeType != Node.COMMENT_NODE) \n nextSibling = this.getGutenbergBlockCommentEnd(node.parentNode);\n \n if (nextSibling.nodeType == Node.COMMENT_NODE)\n return nextSibling;\n \n return false;\n },\n\n\t disableGutenbergBlocks: function (contentEditableElements)\n\t {\n var self = this;\n console.log(self);\n var dataIdCounter = 1;\n\t contentEditableElements.each(function (i, node) {\n\n\t //add data-non-editable also for node children for gutenberg figure > img case \n\t function setNonEditableNodes(node, parent)\n\t {\n\t function setNode(node, parent)\n\t {\n\t $(node).removeAttr(\"data-content-editable data-container-editable data-content-code-editable contenteditable srcset sizes data-category data-label data-export-id\");\n if (parent === true) \n {\n $(node).attr(\"data-non-editable\", true);\n }\n\t }\n\t \n\n\t setNode(node, parent);\n\t for (var i = 0; i < node.childNodes.length; i++) {\n\t var child = node.childNodes[i];\n\t setNonEditableNodes(child);\n\t //delete srcset andsizes attributes so that Gutenberg does not say invalid content\n\t setNode(node);\n\t }\n\t }\n\t \n\n\t \n\t //check previous sibling nodes until reaching comment node to skip eventual text nodes\n\t function nextNonTextNode(node)\n\t {\n\t var nextSibling = node;\n\t var maxDepth = 10;\n\t while (nextSibling && \n\t (nextSibling.nodeType == Node.COMMENT_NODE ||\n\t nextSibling.nodeType == Node.TEXT_NODE) &&\n\t maxDepth-- > 0)\n\t {\n\t nextSibling = nextSibling.nextSibling;\n\t }\n\n\t return nextSibling;\n\t }\n\n\t var commentNode = self.getGutenbergBlockCommentStart(node);\n\t var sectionNode;\n\t \n\t if ((commentNode && commentNode.nodeType == Node.COMMENT_NODE) && //check if section has wp:comment\n\t commentNode.textContent.indexOf(\"wp:\") != -1 && //check if gutenberg block\n commentNode.textContent.indexOf(\"wp:extendstudio/materialis\") == -1 && //check if not materialis block\n commentNode.textContent.indexOf(\"wp:extendstudio/mesmerize\") == -1) //check if not mesmerize block\n\t {\n\t //set gutenberg block as non editable\n\t sectionNode = nextNonTextNode(commentNode);\n\t setNonEditableNodes(sectionNode, true);\n\t }\n\t }); \n\t },\n\t \n decorateElements: function ($container) {\n\n\n CP_Customizer.preview.pauseObserver();\n\n var $ = root.CP_Customizer.preview.jQuery(),\n self = this;\n\n var elementsContainers = root.CP_Customizer.hooks.applyFilters('decorable_elements_containers', [root.CP_Customizer.preview.getPageContainerSelector(), '[data-dynamic-mod-container]']);\n $container = $container ? $($container) : root.CP_Customizer.preview.find(elementsContainers.join(','));\n\n\n $(function () {\n var $toDecorate = $(\"\");\n $toDecorate = $toDecorate.add($container);\n // $toDecorate = $toDecorate.add($('[data-theme]'));\n CP_Customizer.overlays.addFixedOverlays($toDecorate);\n });\n\n\n $container.find('a').unbind('click').click(function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n if ($(this).is('[data-container-editable]') || $(this).is('[data-type=group]')) {\n self.editContainerData.apply(this);\n }\n\n return false;\n });\n var elements = $container.find(root.CP_Customizer.CONTENT_ELEMENTS).filter(function () {\n return root.CP_Customizer.preview.data().maintainable;\n });\n\n if ($container.is(root.CP_Customizer.CONTENT_ELEMENTS)) {\n if (elements.length) {\n elements.add($container);\n } else {\n elements = $container;\n }\n }\n\n\n elements = elements.filter(function (item) {\n if ($(this).closest('[data-content-shortcode]').length) {\n return false;\n }\n return true;\n });\n elements = elements.add(root.CP_Customizer.preview.getThemeMods($container).filter(root.CP_Customizer.CONTENT_ELEMENTS));\n elements.filter('a').each(function () {\n var $el = $(this);\n\n if ($el.closest(root.CP_Customizer.preview.getPageContainerSelector()).length) {\n $el.attr('data-container-editable', true);\n }\n\n if ($el.is('[data-theme]')) {\n $el.attr('data-container-editable', true);\n }\n\n });\n elements.filter('ul').attr('data-container-editable', true);\n elements = elements.filter(function (item) {\n if (this.tagName === \"SPAN\" && $(this).parents(CP_Customizer.TEXT_ELEMENTS).length) {\n return false;\n }\n\n if ($(this).parents(root.CP_Customizer.preview.getContainersSelector()).length) {\n $(this).attr('data-content-code-editable', true);\n return false;\n }\n\n if ($(this).is(root.CP_Customizer.preview.getContainersSelector())) {\n $(this).attr('data-content-code-editable', true);\n return false;\n }\n\n return true;\n });\n\n elements.not('i.mdi,a').attr('data-content-editable', true);\n elements.not('i.mdi,hr,a').attr('contenteditable', true);\n\n elements.filter('i.mdi').each(function () {\n if ($(this).parent().is(root.CP_Customizer.CONTENT_ELEMENTS)) {\n return;\n }\n\n $(this).attr('data-content-editable', true);\n $(this).attr('contenteditable', true);\n });\n\n var contentEditableElements = $container.find('[contenteditable=\"true\"]');\n\n if ($container.is('[contentededitable=true]')) {\n contentEditableElements.add($container);\n }\n\n contentEditableElements = contentEditableElements.add(root.CP_Customizer.preview.getThemeMods($container).filter('[contenteditable=\"true\"]'));\n\n\n var handlePasteEvent = function (e) {\n var $ = CP_Customizer.preview.jQuery();\n\n var text = '';\n var that = $(this);\n var document = CP_Customizer.preview.frame().document;\n\n e.preventDefault();\n e.stopPropagation();\n\n if (e.clipboardData) {\n text = e.clipboardData.getData('text/plain');\n } else if (window.clipboardData) {\n text = window.clipboardData.getData('Text');\n } else if (e.originalEvent.clipboardData) {\n text = $('<div></div>').text(e.originalEvent.clipboardData.getData('text'));\n }\n\n var textContainer = $('<div/>').append(text);\n\n CP_Customizer.preview.fixWronglyWrappedTextNodes(textContainer);\n\n text = textContainer[0].innerHTML.replace(/\\r\\n/g, '<br/>').replace(/\\r/g, '<br/>').replace(/\\n/g, '<br/>');\n\n if (document.queryCommandSupported('insertText')) {\n document.execCommand('insertHTML', false, text);\n return false;\n }\n else { // IE > 7\n that.find('*').each(function () {\n $(this).addClass('within');\n });\n\n setTimeout(function () {\n // nochmal alle durchlaufen\n that.find('*').each(function () {\n // wenn das element keine klasse 'within' hat, dann unwrap\n // http://api.jquery.com/unwrap/\n $(this).not('.within').contents().unwrap();\n });\n root.CP_Customizer.preview.markNode(that);\n }, 1);\n }\n root.CP_Customizer.markSave();\n };\n\n contentEditableElements.filter('*').each(function () {\n if (!CP_Customizer.IS_PRO) {\n this.addEventListener('paste', handlePasteEvent);\n }\n });\n\n $container.find('[data-type=\"row\"] > div, [data-type=column]').each(this.enableSortable);\n\n if ($container.is('[data-type=\"row\"] > div, [data-type=column]')) {\n this.enableSortable.call($container);\n }\n\n if ($container.closest('.ui-sortable').length) {\n try {\n $container.closest('.ui-sortable').sortable('refresh');\n $container.closest('.ui-sortable').sortable('disable');\n } catch (e) {\n\n }\n }\n\n \t this.disableGutenbergBlocks($container.find('[contenteditable=\"true\"], [data-content-code-editable=\"true\"], [class^=wp-]'));\n root.CP_Customizer.trigger(root.CP_Customizer.events.ELEMENT_DECORATED, [$container]);\n CP_Customizer.preview.restartObserver();\n \t\t },\n\n\t decorateSectionsForGutenberg: function(sections){\n\t var sections = sections ? sections : CP_Customizer.preview.getSections();\n\n\t //adds gutenberg block html comment\n\t sections.each(function (i, node) {\n\t //skip decorate if node already has comment\n\t if (node.previousSibling && \n\t node.previousSibling.nodeType == Node.COMMENT_NODE &&\n\t node.previousSibling.textContent.indexOf(\" wp:extendstudio/materialis\") != -1) \n\t return;\n\n\t var commentOpen = document.createComment(\" wp:extendstudio/materialis \");\n\t var commentClose = document.createComment(\" /wp:extendstudio/materialis \");\n\t node.before(commentOpen);\n\t node.after(commentClose);\n\t });\n },\n\n enableSortable: function () {\n var $ = CP_Customizer.preview.jQuery();\n var $this = $(this);\n\n if ($this.find('[data-type=column]').length) {\n return;\n }\n\n if ($this.parent().is('[data-content-shortcode]')) {\n return;\n }\n\n\n if ($this.children().length === 0) {\n if ($this.is(root.CP_Customizer.CONTENT_ELEMENTS) && $this.html().trim().length === 0) {\n $this.attr('data-preview-empty', 1);\n }\n }\n\n $this.sortable({\n axis: \"y\",\n start: function (event, ui) {\n ui.helper.css({\n 'display': 'block',\n });\n },\n stop: function (evt, ui) {\n $this.sortable('disable');\n $('.node-hover-overlay[is-dragging=true]').removeAttr('is-dragging');\n $(ui.item).data('reikidragging', false);\n ui.item.removeAttr(\"style\");//button drag left:0px fix\n\n function refreshOverlay() {\n root.CP_Customizer.overlays.assignNode(root.CP_Customizer.overlays.hoverOverlay(), $(ui.item));\n root.CP_Customizer.overlays.updateOverlay(root.CP_Customizer.overlays.hoverOverlay(), $(ui.item));\n }\n\n ui.item.css('display', '');\n ui.item.css('transition', '');\n setTimeout(refreshOverlay, 10);\n $('[contenteditable]').attr('contenteditable', true);\n root.CP_Customizer.isSorting = false;\n root.CP_Customizer.updateState();\n },\n deactivate: function (evt, ui) {\n $('.node-hover-overlay[is-dragging=true]').removeAttr('is-dragging');\n },\n cursorAt: {\n left: 0,\n top: 0\n }\n\n });\n $this.sortable('disable');\n },\n\n showTextElementCUI: function (node) {\n CP_Customizer.preview.pauseObserver();\n\n $(node).off('paste.cp_customizer').on('paste.cp_customizer', function (event) {\n var clipboardData = null;\n var mimeType = \"\";\n var window = CP_Customizer.preview.frame();\n var document = window.document;\n\n\n event.preventDefault();\n // event.stopPropagation();\n // event.stopImmediatePropagation();\n\n if (event.clipboardData) {\n clipboardData = event.clipboardData;\n mimeType = 'text/plain';\n } else if (window.clipboardData) {\n clipboardData = window.clipboardData;\n mimeType = 'Text';\n } else if (event.originalEvent.clipboardData) {\n clipboardData = event.originalEvent.clipboardData;\n mimeType = 'text';\n }\n\n var text = clipboardData.getData(mimeType);\n text = CP_Customizer.utils.wpautop(text.replace(/\\n\\s*\\n/g, '\\n'));\n var textContainer = $('<div/>').append(text);\n\n CP_Customizer.preview.fixWronglyWrappedTextNodes(textContainer);\n\n text = textContainer[0].innerHTML;\n\n if (document.queryCommandSupported('insertText')) {\n document.execCommand('insertHTML', false, text);\n return false;\n }\n else { // IE > 7\n that.find('*').each(function () {\n $(this).addClass('within');\n });\n\n setTimeout(function () {\n // nochmal alle durchlaufen\n that.find('*').each(function () {\n // wenn das element keine klasse 'within' hat, dann unwrap\n // http://api.jquery.com/unwrap/\n $(this).not('.within').contents().unwrap();\n });\n }, 1);\n }\n\n });\n\n node = $(node)[0];\n\n var cui = this.getTextElementCUI();\n\n if (!cui) {\n CP_Customizer.logError('TinyMCE Editor not found');\n return;\n }\n\n cui.hidden = false;\n cui.target = node;\n cui.bodyElement = node;\n cui.show();\n cui.fire('focusin');\n cui.undoManager.clear();\n cui.theme.panel.getEl().classList.add('cp-tinymce-inline');\n cui.theme.panel.getEl().style.display = \"block\";\n\n\n var docWidth = Math.min(CP_Customizer.preview.frame().innerWidth, CP_Customizer.preview.jQuery('html').width()),\n cuiRect = cui.theme.panel.getEl().getBoundingClientRect(),\n nodeWidth = CP_Customizer.preview.jQuery(node).width(),\n nodeOffsetLeft = CP_Customizer.preview.jQuery(node).offset().left;\n\n\n var newLeft = (nodeOffsetLeft - (cuiRect.width - nodeWidth) * 0.5);\n\n if (newLeft < 0) {\n newLeft = nodeOffsetLeft;\n }\n\n if (newLeft + cuiRect.width > docWidth) {\n newLeft = nodeOffsetLeft + nodeWidth - cuiRect.width;\n\n }\n cui.theme.panel.getEl().style.left = newLeft + 'px';\n\n },\n\n hideTextElementCUI: function () {\n var cui = this.getTextElementCUI();\n\n if (!cui) {\n CP_Customizer.logError('TinyMCE Editor not found');\n return;\n }\n\n\n if (cui.theme && cui.theme.panel) {\n cui.theme.panel.getEl().style.display = \"none\";\n }\n\n if (cui.getBody()) {\n cui.fire('focusout');\n // cui.hide();\n }\n },\n\n getFonts: function () {\n\n var defaultFonts = {\n \"Arial\": \"arial,helvetica,sans-serif\",\n \"Arial Black\": \"arial black,sans-serif\",\n \"Andale Mono\": \"andale mono,monospace\",\n // \"Book Antiqua\": \"book antiqua,palatino,serif\",\n // \"Comic Sans MS\": \"comic sans ms,sans-serif\",\n // \"Courier New\": \"courier new,courier,monospace\",\n // \"Georgia\": \"georgia,palatino,serif\",\n // \"Helvetica\": \"helvetica,arial,sans-serif\",\n // \"Impact\": \"impact,sans-serif\",\n // \"Symbol\": \"symbol\",\n \"Tahoma\": \"tahoma,arial,helvetica,sans-serif\",\n \"Terminal\": \"terminal,monaco,monospace\",\n \"Times New Roman\": \"times new roman,times,serif\",\n // \"Trebuchet MS\": \"trebuchet ms,geneva,sans-serif\",\n \"Verdana\": \"verdana,geneva,sans-serif\"\n // \"Webdings\": \"webdings\",\n // \"Wingdings\": \"wingdings,zapf dingbats\"\n };\n\n var googleFonts = {};\n\n if (root.CP_Customizer.pluginOptions.data.fonts) {\n for (var font in root.CP_Customizer.pluginOptions.data.fonts) {\n googleFonts[font] = font + \",arial,helvetica,sans-serif\";\n }\n }\n\n googleFonts = root.CP_Customizer.hooks.applyFilters('tinymce_google_fonts', googleFonts);\n\n var fonts = _.extend(googleFonts, defaultFonts);\n\n fonts.toTinyMCEFormat = function () {\n var result = [];\n for (var font in this) {\n if (_.isString(this[font])) {\n result.push(font + \"=\" + this[font]);\n }\n }\n\n return result.join(';');\n };\n\n return fonts;\n },\n\n getNodeFont: function (node) {\n var $node = this.jQuery(node)\n var font = $node.css('font-family');\n var fontArray = font.replace(/[\\'\\\"]/g, '').replace(/\\s/g, '').toLowerCase().split(',');\n var fonts = this.getFonts();\n\n if (_.isObject(fonts)) {\n for (var name in fonts) {\n if (_.isString(fonts[name])) {\n var _fontArray = fonts[name].replace(/[\\'\\\"]/g, '').replace(/\\s/g, '').toLowerCase().split(',');\n if (_.difference(_fontArray, fontArray).length === 0) {\n return name;\n }\n }\n }\n }\n\n return font;\n },\n\n getFontWeights: function (font) {\n var fonts = CP_Customizer.utils.getValue('web_fonts');\n\n if (fonts) {\n for (var i = 0; i < fonts.length; i++) {\n var _font = fonts[i];\n if (_font.family.toLowerCase() === font.toLowerCase()) {\n var weights = [];\n for (var w = 0; w < _font.weights.length; w++) {\n var weight = _font.weights[w];\n if (weight === 'normal' || weight === 'regular') {\n weight = '400';\n } else {\n try {\n weight = parseInt(weight).toString();\n } catch (e) {\n\n }\n }\n\n if (weights.indexOf(weight) === -1) {\n weights.push(weight);\n }\n }\n return weights;\n }\n }\n }\n\n return ['100', '200', '300', '400', '500', '600', '700', '800', '900'];\n },\n\n getTextElementCUI: function () {\n var editorID = 'cp-tinymce-cui-editor';\n var editor = root.CP_Customizer.preview.frame().tinymce ? root.CP_Customizer.preview.frame().tinymce.get(editorID) : 'cp-editor-not-found';\n\n if (editor === 'cp-editor-not-found') {\n return undefined;\n }\n\n var self = this;\n if (!editor) {\n this.jQuery('body').after('<div id=\"' + editorID + '\"></div>');\n var options = {\n \"selector\": \"#\" + editorID,\n inline: true,\n style_formats_merge: true,\n extended_valid_elements: 'span',\n \"formats\": {\n alignment: {selector: 'p,h1,h2,h3,h4,h5,h6', styles: {textAlign: '%value'}},\n fontweight: {inline: 'span', styles: {fontWeight: '%value'}},\n fontsize: {inline: 'span', styles: {fontSize: '%value'}},\n fontcolor: {inline: 'span', styles: {color: '%value'}},\n italic: {inline: 'span', styles: {fontStyle: 'italic'}},\n\n },\n \"menubar\": false,\n \"theme\": \"modern\",\n \"skin\": \"lightgray\",\n \"toolbar\": 'fontselect addwebfont font-weight font-size-popup | italic underline strikethrough superscript subscript alignment font-color-popup | removeformat',\n \"font_formats\": this.getFonts().toTinyMCEFormat(),\n \"paste_as_text\": true,\n \"forced_root_block\": false,\n setup: function (ed) {\n var bm;\n\n ed.addButton('font-weight', {\n type: 'listbox',\n text: root.CP_Customizer.translateCompanionString('Font Weight'),\n icon: false,\n onselect: function (e) {\n ed.formatter.apply('fontweight', {value: this.value()});\n },\n values: [\n {text: 'Thin (100)', value: '100'},\n {text: 'Extra light (200)', value: '200'},\n {text: 'Light (300)', value: '300'},\n {text: 'Normal (400)', value: '400'},\n {text: 'Medium (500)', value: '500'},\n {text: 'Semi Bold (600)', value: '600'},\n {text: 'Bold (700)', value: '700'},\n {text: 'Extra Bold (800)', value: '800'},\n {text: 'Black (900)', value: '900'}\n ],\n onPostRender: function () {\n\n // add font control separator//\n var fontControl = ed.theme.panel.controlIdLookup['mceu_0'];\n fontControl.on('showMenu', function (e) {\n var items = this.menu.items();\n for (var i in items) {\n var item = items[i];\n\n if (!_.isFunction(item.text)) {\n continue;\n }\n\n if (item.text().raw.toLowerCase() == 'arial') {\n item.$el.addClass('first-system-font');\n }\n }\n });\n\n var btn = this;\n ed.on('NodeChange', _.debounce(function (e) {\n var weight = jQuery(e.element || ed.selection.getNode()).css('font-weight');\n if (weight === \"bold\") weight = \"700\";\n if (weight === \"normal\") weight = \"400\";\n btn.value(weight);\n }, 10));\n\n btn.on('show', function (e) {\n ed.theme.panel.getEl().style.display = \"block\";\n e.control.$el.css({top: this.$el.offset().top + 34, left: this.$el.offset().left})\n });\n\n btn.on('showMenu', function () {\n var font = CP_Customizer.preview.getNodeFont(ed.selection.getNode());\n var weights = CP_Customizer.preview.getFontWeights(font);\n for (var i in btn.menu.items()) {\n var item = btn.menu.items()[i];\n\n if (!_.isFunction(item.value)) {\n continue;\n }\n\n if (weights.indexOf(item.value()) === -1) {\n item.$el.hide();\n } else {\n item.$el.show();\n }\n }\n });\n }\n });\n\n\n ed.addButton('alignment', {\n type: 'listbox',\n text: root.CP_Customizer.translateCompanionString(''),\n icon: true,\n onselect: function (e) {\n ed.formatter.apply('alignment', {value: this.value()});\n },\n values: [\n {\n icon: 'alignleft',\n text: root.CP_Customizer.translateCompanionString(''),\n value: 'left'\n },\n {\n icon: 'aligncenter',\n text: root.CP_Customizer.translateCompanionString(''),\n value: 'center'\n },\n {\n icon: 'alignright',\n text: root.CP_Customizer.translateCompanionString(''),\n value: 'right'\n },\n {\n icon: 'alignjustify',\n text: root.CP_Customizer.translateCompanionString(''),\n value: 'justify'\n }\n ],\n onPostRender: function () {\n var btn = this;\n ed.on('NodeChange', function (e) {\n var textAlign = jQuery(ed.selection.getNode()).css('text-align');\n btn.value(textAlign);\n btn.icon('align' + textAlign);\n\n //Disable text alignment for header elements\n if (jQuery(e.element).parents('.header-wrapper').length)\n {\n btn.$el.hide();\n } else\n {\n btn.$el.show();\n }\n });\n\n btn.on('show', function (e) {\n ed.theme.panel.getEl().style.display = \"block\";\n e.control.$el.css({top: this.$el.offset().top + 34, left: this.$el.offset().left})\n e.control.$el.eq(0).css('min-width', '10px');\n });\n }\n });\n\n ed.addButton('addwebfont', {\n type: 'button',\n icon: 'insert',\n tooltip: root.CP_Customizer.translateCompanionString(\"Add web font\"),\n onPostRender: function () {\n this.on(\"click\", function () {\n top.wp.customize.control('web_fonts').focus()\n });\n }\n });\n ed.addButton('font-color-popup', {\n type: \"colorbutton\",\n icon: false,\n\n\n onPostRender: function () {\n var btn = this;\n\n self.jQuery(this.getEl()).spectrum({\n showAlpha: true,\n\n preferredFormat: \"rgb\",\n showInput: true,\n show: function () {\n //console.log(this);\n\n var colorPalette = CP_Customizer.hooks.applyFilters('spectrum_color_palette', []);\n\n\n var color = jQuery(ed.selection.getNode()).css('color');\n var spectrumEl = self.jQuery(btn.getEl());\n\n var container = spectrumEl.spectrum(\"container\");\n spectrumEl.spectrum(\"set\", color);\n\n spectrumEl.spectrum(\"option\", \"showPalette\", colorPalette.length > 0);\n\n if (colorPalette.length > 0) {\n\n // group colors a 3 per row\n colorPalette = CP_Customizer.utils.arrayChunk(colorPalette, 3);\n\n spectrumEl.spectrum(\"option\", \"palette\", colorPalette);\n }\n\n\n var offTop = container.offset().top\n var scrollTop = self.frame().scrollY;\n\n container.css({\n top: self.jQuery(btn.getEl()).offset().top - scrollTop + 30,\n \"left\": \"auto\",\n \"right\": CP_Customizer.preview.frame().innerWidth - jQuery(btn.getEl()).offset().left - 40\n });\n\n self.jQuery(self.jQuery('body')[0].ownerDocument).scroll(function () {\n var offTop = container.offset().top\n var scrollTop = self.jQuery('body').scrollTop();\n\n container.offset({\n top: self.jQuery(btn.getEl()).offset().top - scrollTop + 30\n });\n });\n\n },\n change: function (color) {\n var col = color.toRgbString();\n btn.value(col);\n\n ed.selection.moveToBookmark(bm);\n ed.formatter.apply('fontcolor', {value: col});\n }\n });\n\n btn.on(\"click\", function () {\n bm = ed.selection.getBookmark();\n });\n\n ed.on('NodeChange', function (e) {\n var color = jQuery(ed.selection.getNode()).css('color');\n btn.color(color);\n self.jQuery(btn.getEl()).spectrum(\"set\", color);\n });\n\n function onEditorBlur(e) {\n self.jQuery(btn.getEl()).spectrum('hide');\n CP_Customizer.preview.restartObserver();\n }\n\n ed.on('blur', onEditorBlur);\n\n\n }\n });\n ed.on('focus', function (e) {\n // _.delay(function () {\n // var editorEL = e.target.theme.panel.getEl(),\n // node = e.target.bodyElement,\n // margin = ($(node).width() - $(editorEL).width()) / 2;\n //\n // $(editorEL).css({\n // 'margin-left': margin\n // });\n // }, 0);\n });\n\n updateOnEditorBlur = _.debounce(function (e) {\n _.delay(function () {\n var $node = $(e.target.bodyElement);\n CP_Customizer.preview.markNode($node);\n\n if ($node.is('[data-theme]')) {\n CP_Customizer.preview.jQuery($node).data('was-changed', true);\n }\n CP_Customizer.updateState();\n }, 0);\n }, 100);\n\n ed.on('blur', updateOnEditorBlur);\n\n }\n };\n root.CP_Customizer.preview.frame().tinymce.init(options);\n editor = root.CP_Customizer.preview.frame().tinymce.get(editorID);\n\n }\n\n return editor;\n },\n\n blur: function (overlayOnly) {\n var hoverOverlay = CP_Customizer.overlays.hoverOverlay();\n var hoveredNode = CP_Customizer.preview.jQuery(hoverOverlay.data().node);\n\n // hoverOverlay.deactivateHeatZone();\n\n var fakeNode = CP_Customizer.preview.jQuery(\"<p contenteditable='true' style='display: none;' />\");\n\n CP_Customizer.overlays.assignNode(hoverOverlay, fakeNode);\n\n if (overlayOnly) {\n return;\n }\n\n if (CP_Customizer.preview.getTextElementCUI()) {\n CP_Customizer.preview.getTextElementCUI().fire('blur');\n }\n\n\n }\n },\n\n overlays: {\n\n\n addFixedOverlays: function ($startNode) {\n var $ = root.CP_Customizer.preview.jQuery();\n\n if ($startNode.length > 1) {\n\n var self = this;\n $startNode.each(function () {\n self.addFixedOverlays($(this));\n });\n return;\n\n }\n $startNode = $startNode || $('body');\n\n if ($startNode.closest('[data-type=\"row\"]').length || $startNode.closest('[data-type=\"column\"]').length) {\n return;\n }\n\n root.CP_Customizer.trigger(root.CP_Customizer.events.ADD_FIXED_OVERLAYS, [$startNode]);\n\n },\n\n\n __fixedOverlayOptions: {},\n registerFixedOverlayOptions: function (name, options) {\n\n if (_.isObject(name)) {\n _.each(name, function (options, key) {\n CP_Customizer.overlays.registerFixedOverlayOptions(key, options);\n });\n } else {\n\n if (!this.__fixedOverlayOptions.hasOwnProperty(name)) {\n this.__fixedOverlayOptions[name] = options;\n } else {\n // console.error(\"Overlay options name '\" + name + \"' already exists\");\n }\n }\n\n },\n\n getOverlayOptionButton: getButtonElement,\n\n addOptionsToFixedOverlay:\n function ($container, type, node, callback) {\n var typeOptions = this.__fixedOverlayOptions[type],\n $toAppend;\n\n typeOptions = CP_Customizer.hooks.applyFilters('section_fixed_overlay_options', _.clone(typeOptions), type);\n\n if (!typeOptions) {\n console.error('Undefined typeoptions', type, node);\n return;\n }\n\n var jQuery = CP_Customizer.preview.jQuery();\n var _node = (typeOptions.nodeOverrider || _.identity)(node);\n for (var key in typeOptions) {\n var filteredOptions = CP_Customizer.hooks.applyFilters('section_fixed_overlay', typeOptions[key], key);\n if (typeOptions.hasOwnProperty(key)) {\n switch (key) {\n case 'title':\n $toAppend = getTitleElement(filteredOptions, _node, type);\n if ($toAppend) {\n $container.append($toAppend);\n }\n break;\n case 'items':\n $toAppend = getItemsElements(filteredOptions, _node, type);\n $container.append($toAppend);\n break;\n case 'node_binds':\n var nodeBinds = filteredOptions;\n jQuery.each(nodeBinds, function (bind, callbacks) {\n if (bind === \"hover\") {\n _node.hover(\n function (event) {\n callbacks[0].bind(this)(event, jQuery(this).data().overlay);\n },\n function (event) {\n var isNodeRelated = jQuery(this).data().overlay.find(\"*\").addBack().is(event.relatedTarget);\n if (isNodeRelated) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n\n callbacks[1].bind(this)(event, jQuery(this).data().overlay);\n }\n );\n } else {\n _node.bind(bind, callbacks);\n }\n });\n break;\n case 'toolbar_binds':\n var toolbarBinds = typeOptions[key];\n var overlay = jQuery(node).data().overlay;\n jQuery.each(toolbarBinds, function (bind, callbacks) {\n if (bind === \"hover\") {\n overlay.find('.overlay-toolbar').hover(\n function (event) {\n callbacks[0].bind(node)(event, overlay);\n },\n function (event) {\n callbacks[1].bind(node)(event, overlay);\n }\n );\n } else {\n overlay.bind(bind, callbacks);\n }\n });\n break;\n }\n }\n }\n\n if (callback) {\n callback(typeOptions);\n }\n }\n\n ,\n\n updateOverlay: function (overlay, node, cover, positionOnly) {\n var $ = root.CP_Customizer.preview.jQuery();\n node = $(node);\n updateControls = !positionOnly;\n\n if (!node || !node.length) {\n return;\n }\n\n\n if (updateControls) {\n overlay.find('.pen-overlay').css({\n width: node.outerWidth(),\n height: node.outerHeight(),\n 'pointer-events': 'all',\n 'display': 'block'\n });\n\n overlay.find('.add-element-bubble.visible').removeClass('visible');\n overlay.find('.add-element-bubble .expanded').removeClass('expanded');\n\n if (node.outerHeight() < 30) {\n overlay.find('.pen-overlay').addClass('small');\n } else {\n overlay.find('.pen-overlay').removeClass('small');\n }\n\n\n if (node.parent().is('.ui-sortable') && node.siblings(root.CP_Customizer.CONTENT_ELEMENTS).length && node.closest(\".page-content,[data-theme]\").length) {\n overlay.find('.move').show();\n } else {\n overlay.find('.move').hide();\n }\n\n\n if (!node.is(':visible')) {\n overlay.hide();\n } else {\n overlay.show();\n }\n\n overlay.find('.add').show();\n if (node.closest('[data-add-content]').length) {\n value = node.closest('[data-add-content]').attr('data-add-content');\n\n if (value === \"false\") {\n overlay.find('.add').hide();\n }\n }\n\n\n if (node.closest('[data-type=\"row\"]').length && node.closest('[data-type=\"row\"]').is('[data-custom-items]')) {\n overlay.find('.top-container').hide();\n overlay.find('[h-align-center]').hide();\n } else {\n overlay.find('.top-container').show();\n overlay.find('[h-align-center]').show();\n }\n\n\n if (overlay.is('.add-content-overlay')) {\n if (node.is('[data-type=\"column\"]') && node.closest('[data-type=row]').length === 0) {\n overlay.find('.remove').hide();\n } else {\n if (node.closest('[data-type=row]').children().length > 1) {\n overlay.find('.remove').show();\n } else {\n overlay.find('.remove').hide();\n }\n }\n }\n\n if (overlay.is('.node-hover-overlay')) {\n if (node.siblings().length === 0) {\n overlay.find('.remove').hide();\n } else {\n if (node.is(root.CP_Customizer.CONTENT_ELEMENTS)) {\n overlay.find('.remove').show();\n } else {\n overlay.find('.remove').hide();\n }\n }\n }\n\n if (overlay.is('.item-hover-overlay')) {\n if (node.closest('[data-type=row]').children().length > 1) {\n overlay.find('.remove').show();\n } else {\n overlay.find('.remove').hide();\n }\n }\n\n }\n\n var bounds = node[0].getBoundingClientRect();\n var scrollTop = root.CP_Customizer.preview.frame().pageYOffset;\n var scrollLeft = root.CP_Customizer.preview.frame().pageXOffset;\n overlay.css({\n left: (parseInt(bounds.left) + scrollLeft) + \"px\",\n top: (parseInt(bounds.top) + scrollTop) + \"px\"\n });\n\n overlay.css({\n width: node.outerWidth(),\n 'position': 'absolute'\n });\n\n if (!cover) {\n overlay.css({\n height: 'auto',\n 'background-color': ''\n });\n }\n\n overlay.children('.overlay-left, .overlay-right').css({\n height: node.outerHeight(),\n width: '0px'\n });\n overlay.children('.overlay-right').css({\n left: node.outerWidth() - 1,\n width: '0px'\n });\n overlay.children('.overlay-top, .overlay-bottom').css({\n height: '0px',\n width: node.outerWidth()\n });\n overlay.children('.overlay-bottom').css({\n top: node.outerHeight()\n });\n\n overlay.children('[align-bottom]').each(function () {\n $(this).css({\n top: node.outerHeight() - 5\n });\n });\n\n overlay.children('[align-top]').css({\n top: 0\n });\n\n overlay.children('[h-align-center]').each(function () {\n $(this).css({\n left: (node.outerWidth() - $(this).outerWidth()) / 2\n });\n });\n\n },\n\n\n updateAllOverlays: function (event) {\n var updateOnlySections = Array.from(arguments).length === 0;\n var update = function () {\n var $ = CP_Customizer.preview.jQuery();\n this.overlaysContainer.children().each(function () {\n var isSection = $(this).is('.section-overlay');\n\n if (updateOnlySections && !isSection) {\n return;\n }\n\n var node = $(this).data('node');\n if (node) {\n\n\n root.CP_Customizer.overlays.updateOverlay($(this), $(node), false, true);\n\n var isScrollEvent = event && event.type == 'scroll';\n\n if ($(this).is('.heatzone') && !isScrollEvent) {\n $(this).removeClass('heatzone');\n }\n if (event === true) {\n $(this).hide();\n }\n }\n });\n }.bind({\n overlaysContainer: root.CP_Customizer.overlays.overlaysContainer()\n });\n\n update();\n return true;\n },\n\n overlaysContainer: function () {\n var overlaysContainer = CP_Customizer.preview.find('#cp-overlays');\n\n if (!overlaysContainer.length) {\n overlaysContainer = CP_Customizer.preview.jQuery()('<div id=\"cp-overlays\"></div>');\n CP_Customizer.preview.find('body').append(overlaysContainer);\n }\n\n return overlaysContainer;\n },\n\n hoverOverlay: function () {\n var $ = root.CP_Customizer.preview.jQuery();\n var hoverOverlay = $('[data-overlay=\"cp-hoveroverlay\"]');\n\n if (hoverOverlay.length) {\n return hoverOverlay;\n }\n\n hoverOverlay = $('<div data-overlay=\"cp-hoveroverlay\" class=\"node-hover-overlay\"><div class=\"pen-overlay\"><svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 0 20 20\"><path d=\"M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z\"></path></svg></div><span title=\"' + root.CP_Customizer.translateCompanionString(\"Move element\") + '\" class=\"move\"></span><span title=\"' + root.CP_Customizer.translateCompanionString(\"Delete element\") + '\" class=\" remove\"></span><div class=\"overlay-top overlay-border\"></div><div class=\"overlay-left overlay-border\"></div><div class=\"overlay-right overlay-border\"></div><div class=\"overlay-bottom overlay-border\"></div></div>');\n\n root.CP_Customizer.overlays.overlaysContainer().append(hoverOverlay);\n hoverOverlay.hide();\n\n hoverOverlay.find('.remove').click(function () {\n root.CP_Customizer.preview.removeNode($(hoverOverlay.data('node')));\n hoverOverlay.hide();\n });\n\n hoverOverlay.find('.pen-overlay').unbind('click').click(function (event) {\n var $node = $(hoverOverlay.data('node'));\n\n if ($node.is('[data-focus-control]')) {\n var setting = wp.customize($node.attr('data-focus-control'));\n var control = setting ? setting.findControls()[0] : null;\n\n if (control) {\n control.focus();\n if (control.container.closest('.customizer-right-section').length) {\n var sidebarID = control.container.closest('.customizer-right-section').attr('id').replace('-popup', '');\n jQuery('[data-sidebar-container=\"' + sidebarID + '\"]').click();\n // control.container.closest('.customizer-right-section').addClass('active');\n }\n }\n\n return;\n }\n\n if ($node.is('[data-widgets-area]')) {\n root.wp.customize.section('sidebar-widgets-' + $node.attr('data-widgets-area')).focus();\n return;\n }\n\n if ($node.is('hr')) {\n return;\n }\n\n if ($node.is('[data-content-shortcode]')) {\n var shortcodeData = CP_Customizer.parseShortcode($node.attr('data-content-shortcode'));\n CP_Customizer.hooks.doAction('shortcode_edit', $node, shortcodeData);\n CP_Customizer.hooks.doAction('shortcode_edit_' + shortcodeData.tag, $node, shortcodeData);\n return;\n }\n\n if (!$node.data('container-editable')) {\n $node.off();\n $(this).hide();\n }\n\n if ($node.is('[data-content-item-container=\"true\"]')) {\n $node = $node.children().eq(0);\n }\n\n $node.click();\n $node.data('cpFocused', true);\n\n if ($node.is(root.CP_Customizer.TEXT_ELEMENTS)) {\n $node.focus();\n\n _.delay(function () {\n root.CP_Customizer.preview.placeCursorAtEnd($node[0]);\n }, 5);\n\n CP_Customizer.hooks.doAction('text_element_clicked', $node);\n\n hoverOverlay.activateHeatZone();\n } else {\n CP_Customizer.hooks.doAction('element_clicked', $node);\n }\n\n });\n\n function findCenter($, el) {\n el = $(el);\n var o = el.offset();\n return {\n x: o.left + el.outerWidth() / 2,\n y: o.top + el.outerHeight() / 2\n };\n }\n\n function triggerDrag(el, ev) {\n var target = el,\n $ = root.CP_Customizer.preview.jQuery(),\n frame = root.CP_Customizer.preview.frame();\n\n var self = this,\n center = findCenter($, target),\n options = {},\n x = Math.floor(center.x),\n y = Math.floor(center.y),\n dx = options.dx || 0,\n dy = options.dy || 0;\n var coord = {\n clientX: x,\n clientY: y\n };\n\n var type = \"mousedown\";\n\n var e = $.extend({\n bubbles: true,\n cancelable: (type != \"mousemove\"),\n view: frame,\n detail: 0,\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n button: 0,\n relatedTarget: el\n }, coord);\n\n // var relatedTarget = $(el).parent().data('node');\n\n var evt = document.createEvent(\"MouseEvents\");\n evt.initMouseEvent(type, e.bubbles, e.cancelable, e.view, e.detail,\n e.screenX, e.screenY, ev.clientX, ev.clientY,\n e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,\n e.button, null);\n\n el.dispatchEvent(evt);\n }\n\n\n var moveHandlerCallback = function ($handle, event) {\n\n if (event.which !== 1) {\n return;\n }\n\n var overlay = $handle.closest('.node-hover-overlay');\n\n var $node = $(hoverOverlay.data('node'));\n\n if ($node.siblings().length === 0) {\n return;\n }\n\n $node.blur();\n\n if ($node.data('reikidragging')) {\n overlay.attr('is-dragging', false);\n $node.data('reikidragging', false);\n return;\n }\n\n var $first = $node.parents('.ui-sortable').first();\n if ($first.data(\"ui-sortable\")) {\n $first.sortable('enable');\n }\n\n $node.data('reikidragging', true);\n overlay.attr('is-dragging', true);\n\n $('[contenteditable=\"true\"]').attr('contenteditable', false);\n $('[contenteditable=\"true\"]').blur();\n triggerDrag($node[0], event);\n root.CP_Customizer.isSorting = true;\n\n root.CP_Customizer.preview.hideTextElementCUI();\n };\n\n\n hoverOverlay.find('.move').off('mousedown.cp').on('mousedown.cp', function (event) {\n _(moveHandlerCallback).delay(50, $(this), event);\n });\n\n\n hoverOverlay.find('.move').off('mouseup.cp').on('mouseup.cp', function (event) {\n var overlay = $(this).closest('.node-hover-overlay');\n overlay.attr('is-dragging', false);\n });\n\n hoverOverlay.activateHeatZone = function () {\n var $this = $(this);\n $this.addClass('heatzone');\n\n var top = $this.find('.overlay-top'),\n left = $this.find('.overlay-left'),\n right = $this.find('.overlay-right'),\n bottom = $this.find('.overlay-bottom');\n\n if (top.find('.zone').length === 0) {\n top.append('<div class=\"zone\" />');\n }\n\n if (left.find('.zone').length === 0) {\n left.append('<div class=\"zone\" />');\n }\n\n if (right.find('.zone').length === 0) {\n right.append('<div class=\"zone\" />');\n }\n\n if (bottom.find('.zone').length === 0) {\n bottom.append('<div class=\"zone\" />');\n }\n\n var node = $this.data('node');\n var $node = CP_Customizer.preview.jQuery(node);\n\n var nodeRect = {\n top: $node.offset().top,\n bottom: $node.offset().top + node.offsetHeight,\n height: node.offsetHeight,\n left: node.getBoundingClientRect().left,\n right: node.getBoundingClientRect().left + node.offsetWidth,\n width: node.offsetWidth\n };\n\n var docHeight = $(node).closest('body').height();\n var docWidth = Math.min(CP_Customizer.preview.frame().innerWidth, CP_Customizer.preview.jQuery('html').width());\n\n\n top.find('.zone').css({\n height: nodeRect.top,\n width: docWidth,\n left: -1 * nodeRect.left\n }\n );\n\n bottom.find('.zone').css({\n height: docHeight - nodeRect.bottom,\n width: docWidth,\n left: -1 * nodeRect.left,\n top: '-1px'\n }\n );\n\n left.find('.zone').css({\n height: nodeRect.height,\n width: nodeRect.left\n //top: -1 * nodeRect.top - nodeRect.height / 2\n }\n );\n\n right.find('.zone').css({\n height: nodeRect.height,\n width: docWidth - nodeRect.right\n // top: -1 * nodeRect.top - nodeRect.height / 2\n }\n );\n\n hoverOverlay.off('click.zone').on('click.zone', '.zone', function (event) {\n hoverOverlay.removeClass('heatzone');\n\n event.preventDefault();\n event.stopPropagation();\n\n var x = event.clientX,\n y = event.clientY,\n elementMouseIsOver = CP_Customizer.preview.frame().document.elementFromPoint(x, y);\n\n //\n hoverOverlay.addClass('heatzone');\n CP_Customizer.preview.blur();\n _.delay(function () {\n hoverOverlay.removeClass('heatzone');\n CP_Customizer.preview.jQuery(elementMouseIsOver).trigger('mouseover');\n }, 10);\n return false;\n });\n };\n\n // hoverOverlay.deactivateHeatZone = function () {\n // hoverOverlay.removeClass('heatzone');\n // };\n\n return hoverOverlay;\n\n },\n\n rowItemHoverOverlay: function () {\n var $ = root.CP_Customizer.preview.jQuery();\n var itemHoverOverlay = $('[data-overlay=\"cp-item-hover-overlay\"]');\n\n if (itemHoverOverlay.length) {\n return itemHoverOverlay;\n }\n\n itemHoverOverlay = $('<div data-overlay=\"cp-item-hover-overlay\" class=\"item-hover-overlay\"> <div h-align-right title=\"' + root.CP_Customizer.translateCompanionString(\"Delete item\") + '\" class=\"remove\"></div> </div>');\n\n root.CP_Customizer.overlays.overlaysContainer().append(itemHoverOverlay);\n\n itemHoverOverlay.hide();\n\n itemHoverOverlay.find('.remove').click(function () {\n var node = $(itemHoverOverlay.data('node'));\n root.CP_Customizer.preview.removeNode(node);\n root.CP_Customizer.hooks.doAction('section_list_item_refresh');\n itemHoverOverlay.hide();\n });\n\n return itemHoverOverlay;\n },\n\n\n addOverlay: function () {\n\n var $ = root.CP_Customizer.preview.jQuery();\n var addOverlay = $('[data-overlay=\"cp-addoverlay\"]');\n\n if (addOverlay.length) {\n return addOverlay;\n }\n\n addOverlay = $('<div data-overlay=\"cp-addoverlay\" class=\"add-content-overlay\"><div class=\"buttons\" align-bottom h-align-center><div class=\"add\" title=\"' + root.CP_Customizer.translateCompanionString(\"Add element\") + '\">' + root.CP_Customizer.translateCompanionString(\"Add element\") + '</div></div></div>');\n root.CP_Customizer.overlays.overlaysContainer().append(addOverlay);\n addOverlay.hide();\n\n //addOverlay.find('.add').prepend('<div class=\"add-element-bubble\"><div class=\"elements-container\"></div><i class=\"element-bubble-close\"></i></div>');\n // let's add the close button in a future update\n addOverlay.find('.add').prepend('<div class=\"add-element-bubble\"><div class=\"elements-container\"></div></div>');\n\n\n addOverlay.find('.add').click(function (event) {\n addOverlay.find('.add').find('.add-element-bubble').toggleClass('visible');\n });\n\n root.CP_Customizer.content.addContentItemsTo(addOverlay.find('.elements-container'));\n\n addOverlay.find('.elements-container').on('cp-insert-content-item', function (event, type, insertHandler) {\n event.preventDefault();\n var $node = $(addOverlay.data('node'));\n var index = $node.children().length;\n\n insertHandler(type, $node, index, after);\n\n function after($node) {\n root.CP_Customizer.preview.decorateElements($node);\n root.CP_Customizer.overlays.updateOverlay(addOverlay, $(addOverlay.data('node')));\n CP_Customizer.renderNodeShortcodes($node);\n // CP_Customizer.hooks.doAction('after_node_insert', $node);\n }\n });\n\n return addOverlay;\n },\n\n assignNode: function (overlay, node, cover) {\n var $ = root.CP_Customizer.preview.jQuery();\n if (overlay.attr('is-dragging') && overlay.attr('is-dragging') === \"true\") {\n return;\n }\n if ($(overlay.data('node')).is(node)) {\n return;\n } else {\n /*if (overlay.data('node') && overlay.data('node').ownerDocument.activeElement == overlay.data('node')) {\n debugger;\n $(overlay.data('node')).blur();\n }*/\n }\n\n overlay.data('node', $(node)[0]);\n\n function updateOverlay() {\n root.CP_Customizer.overlays.updateOverlay(overlay, $(node), cover);\n }\n\n overlay.on('reiki.update_overlays', '*', function (event) {\n setTimeout(updateOverlay, 0);\n });\n\n root.CP_Customizer.preview.hideTextElementCUI();\n updateOverlay();\n },\n\n hideMovableOverlays: function () {\n CP_Customizer.overlays.addOverlay().hide();\n CP_Customizer.overlays.hoverOverlay().hide();\n CP_Customizer.overlays.rowItemHoverOverlay().hide()\n }\n\n }\n ,\n\n content: {\n __registeredItems: {\n 'link':\n {\n icon: 'mdi-link-variant',\n tooltip: translateCompanionString('link'),\n data:\n '<a class=\"link\" data-cpid=\"new\" data-container-editable=\"true\" data-content-code-editable href=\"#\">' + translateCompanionString('new link') + '</a>',\n 'after': function ($item) {\n $item.unbind('click').click(function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n if ($(this).is('[data-container-editable]') || $(this).is('[data-type=group]')) {\n CP_Customizer.preview.editContainerData.apply(this);\n }\n\n return false;\n });\n }\n }\n ,\n 'button':\n {\n icon: 'mdi-open-in-new',\n tooltip: translateCompanionString('button'),\n data:\n '<a data-cpid=\"new\" data-container-editable=\"true\" data-content-code-editable class=\"button blue\" href=\"#\">' + translateCompanionString('new button') + '</a>',\n 'after': function ($item) {\n $item.unbind('click').click(function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n if ($(this).is('[data-container-editable]') || $(this).is('[data-type=group]')) {\n CP_Customizer.preview.editContainerData.apply(this);\n }\n\n return false;\n });\n }\n }\n ,\n 'heading':\n {\n icon: 'mdi-format-header-pound larger',\n tooltip: translateCompanionString('heading'),\n items:\n function () {\n var result = {};\n for (var i = 1; i <= 6; i++) {\n result['h' + i] = {\n label: \"H\" + i,\n data: '<h' + i + '>' + translateCompanionString(\"Heading\") + ' ' + i + '</h' + i + '>',\n tooltip: translateCompanionString('Heading') + ' ' + i\n };\n }\n\n return result;\n }\n }\n ,\n\n 'lead':\n {\n icon: 'mdi-format-align-left',\n tooltip: translateCompanionString('lead'),\n data:\n '<p data-cpid=\"new\" class=\"lead\" data-content-editable=\"true\" contenteditable=\"true\">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>'\n }\n ,\n\n 'paragraph':\n {\n icon: 'mdi-format-paragraph larger',\n tooltip: translateCompanionString('paragraph'),\n data:\n '<p data-cpid=\"new\" data-content-editable=\"true\" contenteditable=\"true\">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>'\n }\n ,\n\n 'image':\n {\n icon: 'mdi-image-area big',\n tooltip: translateCompanionString('image'),\n data:\n '<img data-cpid=\"new\" class=\"custom-image\" data-content-code-editable=\"true\" data-content-editable=\"true\" contenteditable=\"true\" src=\"#\"/>'\n }\n // ,\n\n // 'icon':\n // {\n // icon: 'mdi-adjust',\n // items:\n // function () {\n // var result = {};\n // for (var i = 1; i <= 6; i++) {\n // result['mdi' + i] = {\n // icon: 'mdi-flag mdi' + i,\n // data: '<i class=\"mdi cp-icon mdi' + i + ' mdi-adjust\"></i>',\n // tooltip: \"Font Icon \" + i\n // };\n // }\n //\n // return result;\n // }\n // }\n // ,\n // 'separator':\n // {\n // 'icon':\n // \"mdi-adjust\",\n // data:\n // '<div class=\"spacer\" data-type=\"group\"><span class=\"mdi before\"></span><i data-content-code-editable=\"true\" class=\"mdi mdi-adjust\"></i><span class=\"mdi after\"></span></div>'\n // }\n },\n\n registerItem: function (data) {\n\n if (data) {\n for (var key in data) {\n if (data[key].contentElementSelector) {\n CP_Customizer.addContentElementsSelectors(data[key].contentElementSelector);\n }\n }\n }\n\n _.extend(this.__registeredItems, data);\n },\n\n getItemData: function (type) {\n types = type.split('.');\n var start = this.__registeredItems;\n\n for (var i = 0; i < types.length; i++) {\n var _type = types[i];\n\n if (i + 1 < types.length) {\n var _items = start[_type].items;\n if (_(_items).isFunction()) {\n _items = _items.call();\n\n }\n start = _items;\n } else {\n return start[_type].data;\n }\n }\n },\n\n getItemAfter: function (type) {\n types = type.split('.');\n var start = this.__registeredItems;\n\n for (var i = 0; i < types.length; i++) {\n var _type = types[i];\n\n if (i + 1 < types.length) {\n var _items = start[_type].items;\n if (_(_items).isFunction()) {\n _items = _items.call();\n\n }\n start = _items;\n } else {\n return start[_type].after;\n }\n }\n },\n\n getContentItems: function (data, subitems, parentId) {\n data = data || this.__registeredItems;\n subitems = subitems || false;\n var self = this;\n var $result = $(\"<div />\");\n $.each(data, function (id, option) {\n var title = option.toolip || option.tooltip || id; // || for old typo :D\n var idAttr = parentId ? parentId + \".\" + id : id;\n var _item = $('<i class=\"mdi ' + (option.icon || \"\") + '\" title=\"' + title + '\" data-' + (option.items ? \"parent\" : \"content\") + '-id=\"' + idAttr + '\"></i>');\n\n if (option.label) {\n _item.append('<span class=\"item-label\">' + option.label + '</span>');\n }\n\n if (option.items) {\n\n var _items = option.items;\n\n if (_(_items).isFunction()) {\n _items = option.items.call();\n }\n\n var subitemsContainer = $('<div class=\"subitems-container\" />');\n subitemsContainer.append(self.getContentItems(_items, true, idAttr));\n _item.append(subitemsContainer);\n }\n\n $result.append(_item);\n });\n\n return $result.html();\n\n },\n\n\n addContentItemsTo: function ($container) {\n $container.append(CP_Customizer.content.getContentItems());\n var self = this;\n $container.off('click.cp-new-content').on('click.cp-new-content', 'i.mdi[data-content-id]', function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n var node_type = $(this).data('content-id');\n $container.trigger('cp-insert-content-item', [node_type, self.insertNewContent]);\n });\n\n $container.off('click.cp-new-parent').on('click.cp-new-parent', 'i.mdi[data-parent-id]', function (event) {\n event.preventDefault();\n event.stopPropagation();\n $(this).toggleClass('expanded');\n $(this).siblings().removeClass('expanded');\n });\n },\n\n insertNewContent: function (type, $container, index, after) {\n var $ = CP_Customizer.preview.jQuery();\n var $new = $(CP_Customizer.content.getItemData(type));\n var itemAfter = CP_Customizer.content.getItemAfter(type);\n CP_Customizer.preview.insertNode($new, $container, index);\n setTimeout(function () {\n $new.trigger('click');\n if (_(after).isFunction()) {\n after($new);\n\n\n }\n if (_.isFunction(itemAfter)) {\n itemAfter($new);\n }\n }, 100);\n }\n }\n\n }\n ;\n\n CP_Customizer = _.extend(CP_Customizer, {\n closePopUps: root.Materialis.closePopUps,\n popUp: root.Materialis.popUp,\n openRightSidebar: root.Materialis.openRightSidebar,\n hideRightSidebar: root.Materialis.hideRightSidebar,\n\n });\n top.CP_Customizer = root.CP_Customizer = CP_Customizer;\n\n\n var previewLoadedMessageCallback = function (event) {\n if (event.data === 'cloudpress_update_customizer') {\n\n if (root.__isCPChangesetPreview) {\n CP_Customizer.preview.jQuery('html').addClass('cp__changeset__preview');\n return;\n }\n\n setTimeout(function () {\n CP_Customizer.hideLoader();\n CP_Customizer.preview.frame().wp.customize.preview.bind('loading-initiated', function () {\n CP_Customizer.showLoader();\n CP_Customizer.trigger('PREVIEW_LOADING_START');\n });\n\n }, 300);\n\n _(CP_Customizer).extend(window.cpCustomizerGlobal);\n CP_Customizer.trigger('PREVIEW_LOADED');\n\n CP_Customizer.preview.addContentBinds();\n\n CP_Customizer.preview.jQuery('a').on('click', function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n CP_Customizer.preview.decorateMods();\n CP_Customizer.preview.decorateElements();\n\n\n // make the save button use CP_Customizer save wrapper\n $(root.document).find('input#save').unbind('click').bind('click', function (event) {\n\n event.preventDefault();\n event.stopPropagation();\n root.CP_Customizer.save();\n });\n\n }\n };\n\n root.addEventListener('message', previewLoadedMessageCallback);\n\n\n $(root).bind('keydown', function (event) {\n if (event.ctrlKey || event.metaKey) {\n var key = String.fromCharCode(event.which).toLowerCase();\n if (key === \"s\") {\n event.preventDefault();\n event.stopPropagation();\n root.CP_Customizer.save();\n }\n }\n });\n\n $(root.document).find('input#save').unbind('click').bind('click', function (event) {\n event.preventDefault();\n event.stopPropagation();\n root.CP_Customizer.save();\n });\n\n\n $(root.document).ready(function () {\n\n for (var i = 0; i < CP_Customizer.__modules.length; i++) {\n var callback = CP_Customizer.__modules[i];\n callback(CP_Customizer);\n }\n\n CP_Customizer.__modulesLoaded = true;\n CP_Customizer.trigger('DOCUMENT_READY');\n });\n\n // UTILS\n\n function getTitleElement(name, node, category) {\n var label = \"\";\n if (typeof name === \"function\") {\n label = name(node);\n } else {\n if (!_.isUndefined(name)) {\n label = name;\n } else {\n return \"\";\n }\n }\n\n return \"<span data-category=\\\"\" + category + \"\\\" class=\\\"cog-item title\\\">\" + label + \"</span>\";\n }\n\n function getButtonElement(itemData, node, category) {\n var template = '<span data-category=\"' + category + '\" class=\"cog-item ' + (itemData.classes || \"\") + '\"></span>';\n\n var $button = $(template).attr({\n 'data-name': (itemData.name || 'button')\n });\n $button.text(itemData.title || 'Button');\n\n\n // key is event handler\n $.each(itemData, function (key, data) {\n if (key === 'on_hover') {\n var callbackIn = function () {\n data[0].call($button, node);\n };\n var callbackOut = function () {\n\n data[1].call($button, node);\n };\n $button.hover(callbackIn, callbackOut);\n\n } else if (key.indexOf('on_') === 0) {\n var ev = key.replace('on_', '');\n var callback = function (event) {\n event.preventDefault();\n event.stopPropagation();\n data.call($button, node);\n };\n $button.bind(ev, callback);\n }\n });\n\n return $button;\n }\n\n function getItemsElements(itemsArray, node, category) {\n result = [];\n for (var i = 0; i < itemsArray.length; i++) {\n var itemData = itemsArray[i];\n var $item = getButtonElement(itemData, node, category);\n result.push($item);\n }\n return result;\n }\n\n})(jQuery, window);\n","(function ($) {\n\n // source: https://github.com/andymantell/node-wpautop\n function _autop_newline_preservation_helper(matches) {\n return matches[0].replace(\"\\n\", \"<WPPreserveNewline />\");\n };\n\n function wpautop(pee, br) {\n if (typeof(br) === 'undefined') {\n br = true;\n }\n\n var pre_tags = {};\n if (pee.trim() === '') {\n return '';\n }\n\n pee = pee + \"\\n\"; // just to make things a little easier, pad the end\n if (pee.indexOf('<pre') > -1) {\n var pee_parts = pee.split('</pre>');\n var last_pee = pee_parts.pop();\n pee = '';\n pee_parts.forEach(function (pee_part, index) {\n var start = pee_part.indexOf('<pre');\n\n // Malformed html?\n if (start === -1) {\n pee += pee_part;\n return;\n }\n\n var name = \"<pre wp-pre-tag-\" + index + \"></pre>\";\n pre_tags[name] = pee_part.substr(start) + '</pre>';\n pee += pee_part.substr(0, start) + name;\n\n });\n\n pee += last_pee;\n }\n\n pee = pee.replace(/<br \\/>\\s*<br \\/>/, \"\\n\\n\");\n\n // Space things out a little\n var allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';\n pee = pee.replace(new RegExp('(<' + allblocks + '[^>]*>)', 'gmi'), \"\\n$1\");\n pee = pee.replace(new RegExp('(</' + allblocks + '>)', 'gmi'), \"$1\\n\\n\");\n pee = pee.replace(/\\r\\n|\\r/, \"\\n\"); // cross-platform newlines\n\n if (pee.indexOf('<option') > -1) {\n // no P/BR around option\n pee = pee.replace(/\\s*<option'/gmi, '<option');\n pee = pee.replace(/<\\/option>\\s*/gmi, '</option>');\n }\n\n if (pee.indexOf('</object>') > -1) {\n // no P/BR around param and embed\n pee = pee.replace(/(<object[^>]*>)\\s*/gmi, '$1');\n pee = pee.replace(/\\s*<\\/object>/gmi, '</object>');\n pee = pee.replace(/\\s*(<\\/?(?:param|embed)[^>]*>)\\s*/gmi, '$1');\n }\n\n if (pee.indexOf('<source') > -1 || pee.indexOf('<track') > -1) {\n // no P/BR around source and track\n pee = pee.replace(/([<\\[](?:audio|video)[^>\\]]*[>\\]])\\s*/gmi, '$1');\n pee = pee.replace(/\\s*([<\\[]\\/(?:audio|video)[>\\]])/gmi, '$1');\n pee = pee.replace(/\\s*(<(?:source|track)[^>]*>)\\s*/gmi, '$1');\n }\n\n pee = pee.replace(/\\n\\n+/gmi, \"\\n\\n\"); // take care of duplicates\n\n // make paragraphs, including one at the end\n var pees = pee.split(/\\n\\s*\\n/);\n pee = '';\n pees.forEach(function (tinkle) {\n pee += '<p>' + tinkle.replace(/^\\s+|\\s+$/g, '') + \"</p>\\n\";\n });\n\n pee = pee.replace(/<p>\\s*<\\/p>/gmi, ''); // under certain strange conditions it could create a P of entirely whitespace\n pee = pee.replace(/<p>([^<]+)<\\/(div|address|form)>/gmi, \"<p>$1</p></$2>\");\n pee = pee.replace(new RegExp('<p>\\s*(</?' + allblocks + '[^>]*>)\\s*</p>', 'gmi'), \"$1\", pee); // don't pee all over a tag\n pee = pee.replace(/<p>(<li.+?)<\\/p>/gmi, \"$1\"); // problem with nested lists\n pee = pee.replace(/<p><blockquote([^>]*)>/gmi, \"<blockquote$1><p>\");\n pee = pee.replace(/<\\/blockquote><\\/p>/gmi, '</p></blockquote>');\n pee = pee.replace(new RegExp('<p>\\s*(</?' + allblocks + '[^>]*>)', 'gmi'), \"$1\");\n pee = pee.replace(new RegExp('(</?' + allblocks + '[^>]*>)\\s*</p>', 'gmi'), \"$1\");\n\n if (br) {\n pee = pee.replace(/<(script|style)(?:.|\\n)*?<\\/\\\\1>/gmi, _autop_newline_preservation_helper); // /s modifier from php PCRE regexp replaced with (?:.|\\n)\n pee = pee.replace(/(<br \\/>)?\\s*\\n/gmi, \"<br />\\n\"); // optionally make line breaks\n pee = pee.replace('<WPPreserveNewline />', \"\\n\");\n }\n\n pee = pee.replace(new RegExp('(</?' + allblocks + '[^>]*>)\\s*<br />', 'gmi'), \"$1\");\n pee = pee.replace(/<br \\/>(\\s*<\\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)/gmi, '$1');\n pee = pee.replace(/\\n<\\/p>$/gmi, '</p>');\n\n if (Object.keys(pre_tags).length) {\n pee = pee.replace(new RegExp(Object.keys(pre_tags).join('|'), \"gi\"), function (matched) {\n return pre_tags[matched];\n });\n }\n\n return pee;\n };\n\n CP_Customizer.addModule(function (CP_Customizer) {\n CP_Customizer.utils = CP_Customizer.utils || {};\n\n CP_Customizer.utils.wpautop = function (value) {\n value = wpautop(value);\n\n if (jQuery(value).length === 1) {\n return jQuery(value).html();\n }\n\n return value;\n\n };\n\n\n CP_Customizer.utils.phpTrim = function (str, charlist) {\n\n var whitespace = [\n ' ',\n '\\n',\n '\\r',\n '\\t',\n '\\f',\n '\\x0b',\n '\\xa0',\n '\\u2000',\n '\\u2001',\n '\\u2002',\n '\\u2003',\n '\\u2004',\n '\\u2005',\n '\\u2006',\n '\\u2007',\n '\\u2008',\n '\\u2009',\n '\\u200a',\n '\\u200b',\n '\\u2028',\n '\\u2029',\n '\\u3000'\n ].join('');\n\n var l = 0;\n var i = 0;\n str += '';\n\n if (charlist) {\n whitespace = (charlist + '').replace(/([[\\]().?/*{}+$^:])/g, '$1')\n }\n l = str.length\n for (i = 0; i < l; i++) {\n if (whitespace.indexOf(str.charAt(i)) === -1) {\n str = str.substring(i)\n break\n }\n }\n l = str.length\n for (i = l - 1; i >= 0; i--) {\n if (whitespace.indexOf(str.charAt(i)) === -1) {\n str = str.substring(0, i + 1)\n break\n }\n }\n return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''\n };\n\n CP_Customizer.utils.normalizeBackgroundImageValue = function (value) {\n value = value.replace(/url\\((.*)\\)/, \"$1\");\n return CP_Customizer.utils.phpTrim(value, \"\\\"'\");\n };\n\n\n CP_Customizer.utils.htmlDecode = function (value) {\n var result = $('<div/>').html(value).text();\n return result;\n };\n\n CP_Customizer.utils.htmlEscape = function (str) {\n return str\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n };\n\n\n var htmlEntityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n CP_Customizer.utils.htmlUnescape = function (str) {\n\n for (var item in htmlEntityMap) {\n var regExp = new RegExp(htmlEntityMap[item], 'g');\n str = str.replace(regExp, item);\n }\n\n return str;\n };\n\n\n CP_Customizer.utils.setToPath = function (schema, path, value) {\n\n if (!schema) {\n return schema;\n }\n\n if (_.isString(schema)) {\n schema = CP_Customizer.utils.normalizeValue(schema);\n }\n\n var pList = path.split('.');\n var len = pList.length;\n\n if (len > 1) {\n var first = pList.shift();\n var remainingPath = pList.join('.');\n schema[first] = CP_Customizer.utils.setToPath(schema[first], remainingPath, value);\n } else {\n schema[path] = value;\n }\n\n return schema;\n };\n\n CP_Customizer.utils.normalizeShortcodeString = function (shortcode) {\n shortcode = CP_Customizer.utils.htmlDecode(shortcode);\n\n return '[' + CP_Customizer.utils.phpTrim(shortcode) + ']';\n };\n\n CP_Customizer.utils.getSpectrumColorFormated = function ($spectrumElement) {\n var value = $spectrumElement.spectrum('get');\n\n\n if (!value) {\n return value;\n }\n\n if (value.getAlpha() < 1) {\n return \"rgba(\" + value._r + \",\" + value._g + \",\" + value._b + \",\" + value._a + \")\";\n } else {\n return value.toHexString();\n }\n };\n\n CP_Customizer.utils.normalizeValue = function (value, convertToArray) {\n\n\n if (_.isString(value)) {\n\n try {\n value = decodeURI(value);\n\n } catch (e) {\n\n }\n\n try {\n value = JSON.parse(value);\n\n } catch (e) {\n\n }\n\n }\n\n if (_.isObject(value) && convertToArray) {\n var hasOnlyNumberKeys = _.keys(value).map(function (k) {\n return _.isNumber(parseInt(k))\n }).reduce(function (a, b) {\n return (a && b);\n }, true);\n\n if (hasOnlyNumberKeys) {\n var newValue = [];\n _.keys(value).forEach(function (k) {\n\n if (_.isUndefined(value[k])) {\n return;\n }\n\n newValue.push(value[k]);\n });\n\n value = newValue;\n }\n }\n\n return value;\n };\n\n CP_Customizer.utils.getValue = function (component) {\n var value = undefined;\n\n if (component instanceof CP_Customizer.wpApi.Control) {\n value = component.setting.get();\n }\n\n if (component instanceof CP_Customizer.wpApi.Setting) {\n value = component.get();\n }\n\n if (_.isString(component)) {\n value = CP_Customizer.wpApi(component).get();\n }\n\n if (_.isString(value)) {\n\n try {\n value = decodeURI(value);\n\n } catch (e) {\n\n }\n\n try {\n value = JSON.parse(value);\n } catch (e) {\n\n }\n\n }\n\n return value;\n };\n\n CP_Customizer.utils.deepClone = function (toClone, asArray) {\n var result = jQuery.extend(true, {}, toClone);\n if (asArray) {\n result = _.toArray(result);\n }\n return result;\n };\n\n CP_Customizer.utils.cssValueNumber = function (value) {\n var matches = value.match(/\\d+(.\\d+)?/);\n\n if (!matches || !_.isArray(matches)) {\n return null;\n }\n\n return matches.shift();\n };\n\n CP_Customizer.utils.arrayChunk = function (bigArray, perGroup) {\n perGroup = perGroup || 5;\n var result = _.groupBy(bigArray, function (element, index) {\n return Math.floor(index / perGroup);\n });\n\n return _.toArray(result);\n };\n\n CP_Customizer.utils.normalizeClassAttr = function (classes, asSelector) {\n classes = classes.split(' ').filter(function (item) {\n return (item.trim().length > 0);\n });\n\n if (asSelector) {\n return (classes.length ? '.' + classes.join('.') : '');\n } else {\n return classes.join(' ');\n }\n };\n\n CP_Customizer.utils.getFileInfo = function (url) {\n var filename = url.substring(url.lastIndexOf(\"/\") + 1, url.lastIndexOf(\".\"));\n var parts = url.split(\"/\" + filename)[0];\n var path = parts[0];\n var extension = parts.length > 1 ? parts[1].split('/')[0] : '';\n\n return {\n path: path,\n file: filename + (extension ? '.' + extension : extension),\n filename: filename,\n extension: extension\n }\n };\n\n var imageExtensions = [\"tif\", \"tiff\", \"gif\", \"jpeg\", \"jpg\", \"jif\", \"jfif\", \"jp2\", \"jpx\", \"j2k\", \"j2c\", \"fpx\", \"pcd\", \"png\", \"pdf\", \"bmp\", \"ico\"];\n CP_Customizer.utils.isImageFile = function (url) {\n var fileInfo = CP_Customizer.utils.getFileInfo(url);\n\n return (imageExtensions.indexOf(fileInfo.extension) !== -1);\n\n };\n\n // https://stackoverflow.com/a/13896633\n // TODO: make work with ?x[a]=2&x[b]=3\n CP_Customizer.utils.parseUrlQuery = function (str) {\n if (typeof str !== \"string\" || str.length === 0) return {};\n var s = str.split(\"&\");\n var s_length = s.length;\n var bit, query = {}, first, second;\n for (var i = 0; i < s_length; i++) {\n bit = s[i].split(\"=\");\n first = decodeURIComponent(bit[0]);\n if (first.length === 0) continue;\n second = decodeURIComponent(bit[1]);\n if (typeof query[first] === \"undefined\") query[first] = second;\n else if (query[first] instanceof Array) query[first].push(second);\n else query[first] = [query[first], second];\n }\n return query;\n };\n\n\n CP_Customizer.utils.stringifyUrlQuery = function (query) {\n var queryString = \"\";\n for (var key in query) {\n\n if (!query.hasOwnProperty(key)) {\n continue;\n }\n\n var data = query[key];\n\n if (!_.isUndefined(data)) {\n if (_.isString(data)) {\n queryString += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(data);\n }\n\n if (_.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n queryString += '&' + encodeURIComponent(key) + '[' + i + ']=' + encodeURIComponent(data[i]);\n }\n }\n\n } else {\n queryString += '&' + encodeURIComponent(key);\n }\n }\n\n if (queryString.length) {\n queryString = '?' + CP_Customizer.utils.phpTrim(queryString, '&');\n }\n\n return queryString;\n };\n\n CP_Customizer.utils.parseURL = function (url) {\n var location = ((url.split('?')[0] || '').split('#')[0] || ''),\n queryString = (url.indexOf('?') !== -1) ? url.split('?').pop().split('#')[0] : '',\n query = CP_Customizer.utils.parseUrlQuery(queryString),\n hash = (url.indexOf('#') !== -1) ? url.replace(/(.*)#/, '').trim() : '';\n\n return {\n location: location.replace(/\\/$/, ''),\n query: query,\n hash: hash.length ? '#' + hash : ''\n }\n\n };\n\n CP_Customizer.utils.removeUrlQueryStrings = function (url, strings) {\n var parsedUrl = CP_Customizer.utils.parseURL(url),\n hash = parsedUrl.hash,\n queryKeys = Object.getOwnPropertyNames(parsedUrl.query),\n query = {};\n\n for (var i = 0; i < queryKeys.length; i++) {\n var key = queryKeys[i];\n if (strings.indexOf(key) === -1) {\n query[key] = parsedUrl.query[key];\n }\n }\n\n var queryString = CP_Customizer.utils.stringifyUrlQuery(query);\n\n if (!queryString.length) {\n queryString = \"/\";\n }\n\n return parsedUrl.location + queryString + hash;\n };\n\n CP_Customizer.utils.nodeMatchingClasses = function (node, classList, firstMatchOnly) {\n\n if (!$(node).length) {\n if (firstMatchOnly) {\n return undefined;\n }\n return [];\n }\n\n result = Array.from($(node)[0].classList).filter(function (_class) {\n return (classList.indexOf(_class) !== -1);\n });\n\n if (firstMatchOnly) {\n if (result.length) {\n result = result[0];\n } else {\n result = undefined;\n }\n }\n\n return result;\n };\n\n CP_Customizer.utils.colorInArray = function (colorsArray, color, includeAlpha) {\n var inArray = false;\n color = tinycolor(color);\n\n for (var i = 0; i < colorsArray.length; i++) {\n\n var _color = tinycolor(colorsArray[i]);\n inArray = (color._r === _color._r) && (color._g === _color._g) && (color._b === _color._b);\n\n if (includeAlpha) {\n inArray = inArray && (color._a === _color._a);\n }\n\n if (inArray) {\n break;\n }\n }\n\n return inArray;\n\n }\n\n CP_Customizer.utils.valueToBool = function (value) {\n if (_.isBoolean(value)) {\n return value;\n }\n\n if (_.isString(value)) {\n\n var _v = value.toLowerCase();\n if (_v === \"yes\" || _v === \"true\") {\n return true;\n }\n\n if (_v === \"no\" || _v === \"false\") {\n return false;\n }\n }\n\n\n if (!isNaN(value)) {\n return !!parseInt(value);\n }\n\n return !!value;\n }\n\n\n CP_Customizer.utils.convertColor = {\n toRGB: function (color) {\n return tinycolor(color).toRgbString();\n },\n toRGBA: function (color, alpha) {\n return tinycolor(color).setAlpha(alpha).toRgbString();\n },\n toHex: function (color) {\n return tinycolor(color).toHexString();\n },\n brighten: function (color, value) {\n return tinycolor(color).brighten(value).toRgbString();\n }\n }\n\n CP_Customizer.hasClass = function (element, classes) {\n var elementClasses = Array.from($(element)[0].classList);\n }\n });\n})(jQuery);\n","(function ($, CP_Customizer) {\n CP_Customizer.addModule(function () {\n var used = false;\n var usedWoo = false;\n CP_Customizer.bind(CP_Customizer.events.PREVIEW_LOADED, function () {\n\n // if front page was opened in customizer, but woocommerce modified the content in the preview (without changing the link)\n // set used to false, so that the function will continue and hide the page sections\n if (\n used &&\n (\n (CP_Customizer.preview.data('queryVars:post_type', 'default') === 'product') ||\n (CP_Customizer.preview.data('queryVars:pagename', 'default') === 'checkout')\n ) &&\n (usedWoo === false)) {\n used = false;\n }\n\n if (used) {\n return;\n }\n used = true;\n\n var $activatePageCard = $('.reiki-needed-container[data-type=\"activate\"]');\n var $openPageCard = $('.reiki-needed-container[data-type=\"select\"]');\n var $makeEditable = $('.reiki-needed-container[data-type=\"edit-this-page\"]');\n var $makeProductEditable = $('.reiki-needed-container[data-type=\"edit-this-product\"]');\n\n var data = CP_Customizer.preview.data();\n var toAppend;\n\n var canMaintainThis = CP_Customizer.preview.data('canEditInCustomizer') //CP_Customizer.options('isMultipage', false) && (data.pageID !== false);\n\n if (data.maintainable) {\n\n } else {\n if (canMaintainThis) {\n\n if (CP_Customizer.preview.data('queryVars:post_type', 'page') === 'page') {\n toAppend = $makeEditable.clone().show();\n } else {\n toAppend = $makeProductEditable.clone().show();\n }\n\n wp.customize.panel('page_content_panel').container.eq(0).find('.sections-list-reorder').empty().append(toAppend);\n\n } else {\n wp.customize.panel('page_content_panel').container.eq(0).find('.accordion-section-title > .add-section-plus').remove();\n if (!data.hasFrontPage) {\n toAppend = $activatePageCard.eq(0).clone().show();\n wp.customize.panel('page_content_panel').container.eq(0).find('.sections-list-reorder').empty().append(toAppend);\n } else {\n if (!data.isFrontPage) {\n toAppend = $openPageCard.eq(0).clone().show();\n wp.customize.panel('page_content_panel').container.eq(0).find('.sections-list-reorder').empty().append(toAppend);\n }\n }\n\n if (CP_Customizer.preview.data('queryVars:post_type', 'product') === 'product') {\n usedWoo = true;\n }\n }\n }\n\n if (toAppend) {\n toAppend.show();\n }\n\n });\n });\n})(jQuery, CP_Customizer);\n","(function (root, CP_Customizer, $) {\n\n CP_Customizer.__shortcodesPopupControls = {};\n\n CP_Customizer.registerShortcodePopupControls = function (tag, controls) {\n CP_Customizer.__shortcodesPopupControls[tag] = controls;\n };\n\n\n CP_Customizer.hooks.addAction('dynamic_columns_handle', function (cols, node) {\n if (CP_Customizer.isShortcodeContent(node)) {\n var shortcode = CP_Customizer.getNodeShortcode(node);\n var device = root.CP_Customizer.preview.currentDevice();\n var prop = ( device === \"tablet\") ? \"columns_tablet\" : \"columns\";\n shortcode.attrs = shortcode.attrs || {};\n shortcode.attrs[prop] = cols;\n CP_Customizer.updateNodeFromShortcodeObject(node, shortcode);\n }\n });\n CP_Customizer.hooks.addFilter('is_shortcode_editable', function (value, shortcode) {\n var controls = CP_Customizer.hooks.applyFilters('filter_shortcode_popup_controls', CP_Customizer.utils.deepClone(CP_Customizer.__shortcodesPopupControls));\n\n // console.log(controls, shortcode);\n value = value || _.has(controls, shortcode.tag);\n\n return value;\n });\n\n\n CP_Customizer.getShortcodePopupFields = function (shortcodeData) {\n var controls = CP_Customizer.hooks.applyFilters('filter_shortcode_popup_controls', CP_Customizer.utils.deepClone(CP_Customizer.__shortcodesPopupControls));\n var tag = _.isObject(shortcodeData) ? shortcodeData.tag : shortcodeData;\n var attrs = controls[tag] || [];\n var controls = [];\n for (var attrName in attrs) {\n if (attrs.hasOwnProperty(attrName)) {\n var control = CP_Customizer.utils.deepClone(attrs[attrName].control);\n\n if (shortcodeData.attrs && shortcodeData.attrs.hasOwnProperty(attrName)) {\n control.value = shortcodeData.attrs[attrName];\n } else {\n control.value = !_.isUndefined(control.default) ? control.default : \"\";\n }\n\n if (control.getValue) {\n control.value = control.getValue(attrName, shortcodeData.tag);\n }\n\n control.name = attrName;\n control.id = attrName;\n if (control.getParse) {\n control.value = control.getParse(control.value);\n }\n controls.push(control);\n }\n }\n return controls;\n };\n\n CP_Customizer.openShortcodePopupEditor = function (callback, $node, shortcode) {\n var popupContainer = $('#cp-container-editor');\n\n var fields = CP_Customizer.getShortcodePopupFields(shortcode);\n\n var fallback = CP_Customizer.shortcodesAttrs && CP_Customizer.shortcodesAttrs[shortcode];\n\n if (!fields.length || fallback) {\n return;\n }\n\n shortcode = {\n tag: _.isObject(shortcode) ? shortcode.tag : shortcode,\n attrs: _.isObject(shortcode) ? shortcode.attrs : {},\n };\n\n function setContent() {\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i],\n node = field.node;\n var value = field.val();\n\n if (field.setValue) {\n field.setValue(field.id, value, shortcode.tag);\n } else {\n shortcode.attrs[field.id] = field.setParse ? field.setParse(value) : value;\n }\n }\n\n callback(shortcode.attrs);\n CP_Customizer.closePopUps();\n CP_Customizer.updateState();\n }\n\n\n popupContainer.find('[id=\"cp-item-ok\"]').off().click(setContent);\n popupContainer.find('[id=\"cp-item-cancel\"]').off().click(function () {\n CP_Customizer.closePopUps();\n });\n\n popupContainer.find('#cp-items').empty();\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i],\n type = field.type || 'text',\n content = (CP_Customizer.jsTPL[type] ? CP_Customizer.jsTPL[type](field) : '');\n\n var $fieldContent = $(content);\n\n $fieldContent.attr('data-field', field.name);\n\n\n field.$wrapper = $fieldContent;\n field.$panel = popupContainer.find('#cp-items');\n field.$node = $node;\n\n field.val = function () {\n var value = {};\n var field = this;\n var _values = this.$wrapper.find('[id^=\"' + field.id + '\"]').filter('input,textarea,select').map(function (index, elem) {\n return {\n key: $(this).attr('id').replace(field.id + \"__\", ''),\n value: $(this).is('[type=checkbox]') ? this.checked : $(this).val()\n };\n }).toArray();\n\n _(_values).each(function (v) {\n value[v.key] = v.value;\n });\n\n if (_values.length === 1 && value.hasOwnProperty(field.id)) {\n value = value[field.id];\n }\n\n return value;\n };\n\n if (field.ready && _.isFunction(field.ready)) {\n $fieldContent.data('field', field);\n $fieldContent.bind('shortcode-popup-ready', function () {\n var $fieldContent = $(this);\n var field = $fieldContent.data('field');\n field.ready($fieldContent, $fieldContent.closest('#cp-items'));\n });\n\n\n }\n\n popupContainer.find('#cp-items').append($fieldContent);\n\n }\n\n popupContainer.find('#cp-items').children().trigger('shortcode-popup-ready');\n CP_Customizer.popUp( window.CP_Customizer.translateCompanionString('Manage Options'), \"cp-container-editor\", {\n width: \"600\",\n class: \"data-edit-popup\"\n });\n };\n\n\n CP_Customizer.editEscapedShortcodeAtts = function ($node, shortcode) {\n CP_Customizer.openShortcodePopupEditor(function (attrs) {\n shortcode.attrs = attrs;\n\n var shortcodeText = '[' + shortcode.tag;\n var attrs = [];\n for (var attr in shortcode.attrs) {\n if ((shortcode.attrs[attr] + \"\").trim() != \"\") {\n\n attrs.push(attr + '=\"' + htmlEscape(htmlEscape(shortcode.attrs[attr])) + '\"');\n }\n }\n\n if (attrs.length) {\n shortcodeText += ' ' + attrs.join(' ');\n }\n\n shortcodeText += ']';\n\n CP_Customizer.updateNodeShortcode($node, shortcodeText);\n\n }, $node, shortcode);\n };\n\n function htmlEscape(str) {\n return str\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n }\n})(window, CP_Customizer, jQuery);\n\n","(function (root, CP_Customizer, $) {\n\n CP_Customizer.__customPopupControls = {};\n\n CP_Customizer.registerCustomPopupControls = function (tag, controls) {\n CP_Customizer.__customPopupControls[tag] = controls;\n };\n\n\n CP_Customizer.getCustomPopupFields = function (tag, $node) {\n var controls = CP_Customizer.hooks.applyFilters('filter_custom_popup_controls', CP_Customizer.utils.deepClone(CP_Customizer.__customPopupControls));\n var attrs = controls[tag] || [];\n var controls = [];\n for (var attrName in attrs) {\n if (attrs.hasOwnProperty(attrName)) {\n var control = CP_Customizer.utils.deepClone(attrs[attrName].control);\n\n\n if (_.isFunction(control.active)) {\n if (!control.active($node)) {\n continue;\n }\n }\n\n if (control.attr) {\n control.value = $node.attr(control.attr);\n }\n\n if (control.getValue) {\n control.value = control.getValue(attrName, $node, control.default);\n }\n\n if (!control.value && control.default) {\n control.value = control.default;\n }\n\n control.name = attrName;\n control.id = attrName;\n if (control.getParse) {\n control.value = control.getParse(control.value);\n }\n controls.push(control);\n }\n }\n return controls;\n };\n\n CP_Customizer.openCustomPopupEditor = function ($node, tag, callback) {\n var popupContainer = $('#cp-container-editor');\n\n var fields = CP_Customizer.getCustomPopupFields(tag, $node);\n\n\n function setContent() {\n var values = {};\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i],\n value = field.val();\n\n values[field.id] = {\n oldValue: field.value,\n value: value\n };\n\n if (field.attr) {\n $node.attr(field.attr, value);\n }\n\n }\n\n if (callback) {\n callback(values, $node);\n }\n\n CP_Customizer.closePopUps();\n CP_Customizer.updateState();\n }\n\n\n popupContainer.find('[id=\"cp-item-ok\"]').off().click(setContent);\n popupContainer.find('[id=\"cp-item-cancel\"]').off().click(function () {\n CP_Customizer.closePopUps();\n });\n\n popupContainer.find('#cp-items').empty();\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i],\n type = field.type || 'text',\n content = (CP_Customizer.jsTPL[type] ? CP_Customizer.jsTPL[type](field) : '');\n\n var $fieldContent = $(content);\n\n $fieldContent.attr('data-field', field.name);\n\n\n field.$wrapper = $fieldContent;\n field.$panel = popupContainer.find('#cp-items');\n field.$node = $node;\n\n field.val = function () {\n var value = {};\n var field = this;\n var _values = this.$wrapper.find('[id^=\"' + field.id + '\"]').filter('input,textarea,select').map(function (index, elem) {\n return {\n key: $(this).attr('id').replace(field.id + \"__\", ''),\n value: $(this).is('[type=checkbox]') ? this.checked : $(this).val()\n };\n }).toArray();\n\n _(_values).each(function (v) {\n value[v.key] = v.value;\n });\n\n if (_values.length === 1 && value.hasOwnProperty(field.id)) {\n value = value[field.id];\n }\n\n return value;\n };\n\n if (field.ready && _.isFunction(field.ready)) {\n $fieldContent.data('field', field);\n $fieldContent.bind('shortcode-popup-ready', function () {\n var $fieldContent = $(this);\n var field = $fieldContent.data('field');\n field.ready($fieldContent, $fieldContent.closest('#cp-items'));\n });\n\n\n }\n\n popupContainer.find('#cp-items').append($fieldContent);\n\n }\n\n popupContainer.find('#cp-items').children().trigger('shortcode-popup-ready');\n CP_Customizer.popUp(window.CP_Customizer.translateCompanionString('Manage Options'), \"cp-container-editor\", {\n width: \"600\",\n class: \"data-edit-popup\"\n });\n };\n\n\n function htmlEscape(str) {\n return str\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n }\n})(window, CP_Customizer, jQuery);\n","(function (root, CP_Customizer, $) {\n\n var currentPageStyles = {};\n var styleEL = $(\"\");\n var mod = null;\n\n var mediaMap = {\n \"mobile\": \"@media screen and (max-width:767)\",\n \"tablet\": \"@media screen and (min-width:768)\",\n \"desktop\": \"@media screen and (min-width:1024)\",\n \"nomedia\": false\n };\n\n var outputOrder = ['nomedia', 'mobile', 'tablet', 'desktop'];\n\n function sprintf_style_array(data, media) {\n var style = \"\";\n\n\n for (var selector in data) {\n var props = data[selector];\n var propsText = \"\";\n\n for (var prop in props) {\n var value = props[prop];\n propsText += \"\\t\" + prop + \":\" + value + \";\\n\";\n }\n\n style += selector + \"{\\n\" + propsText + \"\\n}\";\n }\n if (media) {\n style = media + \"{\\n\" + style + \"\\n}\";\n }\n\n return style + \"\\n\\n\";\n }\n\n function setModAndUpdate() {\n CP_Customizer.setMod(mod, _.clone(currentPageStyles), 'postMessage');\n\n var style = \"\";\n\n for (var i = 0; i < outputOrder.length; i++) {\n var media = outputOrder[i];\n var mediaQuery = mediaMap[media];\n style += sprintf_style_array(currentPageStyles[media], mediaQuery);\n }\n styleEL.text(style);\n }\n\n\n CP_Customizer.on(CP_Customizer.events.PREVIEW_LOADED, function () {\n currentPageStyles = CP_Customizer.preview.data('content_style');\n mod = 'custom_content_style_' + CP_Customizer.preview.data('pageID');\n styleEL = CP_Customizer.preview.find('#page-content-custom-styles');\n });\n\n\n CP_Customizer.contentStyle = {\n getStyle: function (selector, media) {\n\n if (!selector) {\n return {};\n }\n\n media = media || 'nomedia';\n return currentPageStyles[media][selector] || {};\n },\n\n removeSelector: function (selector, media, noUpdate) {\n media = media || 'nomedia';\n\n if (media === \"all\") {\n for (var m in currentPageStyles) {\n this.removeSelector(selector, m, true);\n }\n setModAndUpdate();\n return;\n }\n\n if (currentPageStyles[media]) {\n if (currentPageStyles[media][selector]) {\n delete currentPageStyles[media][selector];\n } else {\n for (var s in currentPageStyles[media]) {\n if (s.match(selector)) {\n delete currentPageStyles[media][s];\n }\n }\n }\n }\n\n if (!noUpdate) {\n\n setModAndUpdate();\n }\n\n },\n\n\n getProp: function (selector, pseudo, prop, defaultValue, media) {\n pseudo = (pseudo || \"\").trim();\n selector = selector + pseudo;\n\n var style = this.getStyle(selector, media);\n return (style[prop] || \"\").toLowerCase().replace('!important', '').trim() || defaultValue;\n\n },\n\n getNodeProp: function (node, selector, pseudo, prop, media) {\n\n if (!node || node.length === 0) {\n return '';\n }\n\n node = CP_Customizer.preview.jQuery(node)[0];\n var defaultValue = CP_Customizer.preview.frame().getComputedStyle(node, pseudo).getPropertyValue(prop);\n return this.getProp(selector, pseudo, prop, defaultValue, media)\n },\n\n\n getNodeProps: function (node, selector, pseudo, props, media) {\n var result = {},\n manager = this;\n\n _.each(props, function (prop) {\n result[prop] = manager.getNodeProp(node, selector, pseudo, prop, media);\n });\n\n return result;\n },\n\n isImportant: function (selector, pseudo, prop, media) {\n pseudo = (pseudo || \"\").trim();\n selector = selector + pseudo;\n\n var style = this.getStyle(selector, media);\n var value = style[prop] || \"\";\n return value.toLowerCase().indexOf('!important') !== -1;\n\n },\n\n setProp: function (selector, pseudo, prop, value, media, handeledModUpdate) {\n media = media || 'nomedia';\n pseudo = (pseudo || \"\").trim();\n\n pseudo = (pseudo || \"\").trim();\n selector = selector + pseudo;\n\n if (!currentPageStyles[media]) {\n currentPageStyles[media] = {};\n }\n\n if (_.isArray(currentPageStyles[media])) {\n currentPageStyles[media] = _.extend({}, currentPageStyles[media]);\n }\n\n if (!currentPageStyles[media][selector]) {\n currentPageStyles[media][selector] = {};\n }\n\n currentPageStyles[media][selector][prop] = value;\n\n if (!handeledModUpdate) {\n setModAndUpdate();\n }\n },\n\n removeProp: function (selector, pseudo, prop, media) {\n media = media || 'nomedia';\n\n pseudo = (pseudo || \"\").trim();\n selector = selector + pseudo;\n\n if (currentPageStyles[media]) {\n if (currentPageStyles[media][selector]) {\n if (currentPageStyles[media][selector][prop]) {\n delete currentPageStyles[media][selector][prop];\n }\n }\n }\n\n\n setModAndUpdate();\n },\n\n setProps: function (selector, pseudo, props, media) {\n for (var prop in props) {\n this.setProp(selector, pseudo, prop, props[prop], media, true);\n }\n\n setModAndUpdate();\n },\n\n merge: function (styles) {\n currentPageStyles = jQuery.extend(currentPageStyles, styles);\n setModAndUpdate();\n },\n\n recompileScssStyle: function () {\n return;\n var settings = CP_Customizer.options('scss_settings', {});\n var vars = {};\n\n for (var i = 0; i < settings.length; i++) {\n var setting = settings[i];\n var setting_vars = CP_Customizer.hooks.applyFilters('scss_setting_vars_' + setting, {});\n\n if (_.isEmpty(setting_vars)) {\n setting_vars = CP_Customizer.hooks.applyFilters('scss_setting_vars', {}, setting);\n }\n\n vars = _.extend(_.clone(vars), _.clone(setting_vars));\n }\n\n var data = CP_Customizer.preview.data('scss', {});\n\n vars = _.extend(_.clone(data.vars), _.clone(vars));\n data.vars = vars;\n\n var request = CP_Customizer.IO.post('compiled_style_preview', {\n data: data\n });\n\n request.done(function (content) {\n CP_Customizer.preview.find('#ope-compiled-css').text(content);\n });\n\n },\n\n setSectionItemColor: function (node, colorMapping, newColor) {\n\n var $node = CP_Customizer.preview.jQuery(node),\n colorName = CP_Customizer.getThemeColor(newColor),\n colorClasses = Object.getOwnPropertyNames(CP_Customizer.getColorsObj()).concat(['color-white', 'color-black', 'color-gray']);\n\n colorMapping.forEach(function (cMap) {\n if (colorName) {\n if (cMap.colorClass) {\n var oldColorClasses = colorClasses.map(function (color) {\n return cMap.colorClass.prefix + color + cMap.colorClass.suffix;\n });\n\n var newClass = cMap.colorClass.prefix + colorName + cMap.colorClass.suffix;\n var $item = $node.is(cMap.colorClass.selector || cMap.selector) ? $node : $node.find(cMap.colorClass.selector || cMap.selector);\n $item.removeClass(oldColorClasses.join(' ')).addClass(newClass);\n }\n }\n });\n\n },\n\n\n getSectionItemColor: function (node, colorMapping, defaultColor) {\n\n if (!colorMapping) {\n return 'rgba(0,0,0,0)';\n }\n\n var $node = CP_Customizer.preview.jQuery(node),\n firstCMap = colorMapping[0],\n selector = colorMapping[0].selector,\n colorClasses = Object.getOwnPropertyNames(CP_Customizer.getColorsObj()).concat(['color-white', 'color-black', 'color-gray']),\n result = defaultColor || 'rgba(0,0,0,0)';\n\n if (firstCMap.colorClass) {\n selector = firstCMap.colorClass.selector || selector;\n var $item = $node.is(selector) ? $node : $node.find(selector);\n\n for (var i = 0; i < colorClasses.length; i++) {\n var colorClass = colorClasses[i],\n nodeClass = firstCMap.colorClass.prefix + colorClass + firstCMap.colorClass.suffix;\n if ($item.hasClass(nodeClass)) {\n result = CP_Customizer.getColorValue(colorClass);\n break;\n }\n }\n }\n\n return result;\n\n }\n };\n\n\n CP_Customizer.styleUtils = {\n generateCSSLinerGradient: function (angle, colors) {\n var colorsArray = colors.map(function (color) {\n return color.value + \" \" + color.stop + '%'\n });\n\n colorsText = colorsArray.join(' , ');\n\n return 'linear-gradient(' + angle + 'deg, ' + colorsText + ')';\n\n },\n\n generateOneSideLinerGradient: function (angle, color, transpacency, from) {\n transpacency = transpacency || 50;\n startAlpha = transpacency / 2;\n from = from || 50;\n\n var fromColor = tinycolor(color).setAlpha(startAlpha / 100).toRgbString(),\n middleColor = tinycolor(color).setAlpha(transpacency / 100).toRgbString(),\n toColor = tinycolor(color).toHexString();\n\n var colors = [\n {\n value: 'rgba(0,0,0,0)',\n stop: 0\n },\n {\n value: fromColor,\n stop: from / 2\n },\n {\n value: middleColor,\n stop: from\n },\n {\n value: toColor,\n stop: 100\n }\n ];\n\n return this.generateCSSLinerGradient(angle, colors);\n\n },\n\n getCSSGradientColors: function (value, colorAsObject) {\n var parts = value.match(/,((.*?)\\s([0-9]+)%)/ig);\n parts = parts.map(function (part) {\n part = CP_Customizer.utils.phpTrim(part, ',').trim();\n var stop = part.match(/(\\d+)%/igm)[0];\n var color = part.replace(stop, '').trim();\n\n return {\n value: colorAsObject ? tinycolor(color) : color,\n stop: CP_Customizer.utils.phpTrim(stop, '%').trim()\n }\n });\n\n return parts\n },\n\n getRGBAStringTransparency: function (color) {\n\n var transparency = tinycolor(color).getAlpha();\n\n return transparency;\n\n }\n\n }\n\n\n})(window, CP_Customizer, jQuery);\n","(function (root, CP_Customizer, $) {\n\n var sectionSettingsContainer = $('' +\n '<li id=\"cp-section-setting-popup\" class=\"customizer-right-section\">' +\n ' <span data-close-right-sidebar=\"true\" title=\"' + root.CP_Customizer.translateCompanionString(\"Close Panel\") +'\" class=\"close-panel\"></span>' +\n ' <ul class=\"section-settings-container accordion-section-content no-border\"></ul>' +\n ' </li>');\n\n CP_Customizer.addModule(function (CP_Customizer) {\n\n var control = wp.customize.panel('page_content_panel');\n control.container.find('.sections-list-reorder').append(sectionSettingsContainer);\n\n CP_Customizer.hooks.addFilter('content_section_setting_float', function () {\n return false;\n });\n\n CP_Customizer.hooks.addFilter('content_section_setting', function () {\n return \"cp-section-setting\";\n });\n\n\n CP_Customizer.createControl = function (options) {\n\n options = _.extend({\n id: '',\n type: '',\n container: $('<div />'),\n params: {},\n value: '',\n updater: function (value) {\n if (control.container.find('[data-cp-link]').is('[type=checkbox]')) {\n control.container.find('[data-cp-link]').prop('checked', value);\n return;\n }\n control.container.find('[data-cp-link]').val(value).trigger('change');\n }\n }, options);\n\n\n options.params.type = options.params.type || options.type;\n\n var settingID = options.id || _.uniqueId('control-setting-');\n var setting = new CP_Customizer.wpApi.Setting(settingID, options.value, {});\n\n setting.previewer = CP_Customizer.wpApi.previewer;\n\n setting.transport = 'postMessage';\n\n options.params.settings = [setting];\n options.params.value = options.value;\n options.params.link = ' data-cp-link';\n\n var controllerClass = CP_Customizer.wpApi.controlConstructor[options.type] || CP_Customizer.wpApi.Control;\n var control = new controllerClass(\n settingID + '-control',\n {\n containerType: options.type,\n params: options.params\n }\n );\n\n var container = $(options.container);\n\n control.container = container;\n control.setting = control.setting || setting;\n\n control.section = function () {\n return 'page_content';\n };\n\n var updaterCallback = options.updater;\n\n var oldSet = setting.set;\n\n setting.bind(function (value) {\n control.params.value = value;\n updaterCallback.call(this, value);\n });\n\n setting.bind(function (value, oldValue) {\n if (_.isFunction(setting.onChange)) {\n setting.onChange(value, oldValue);\n CP_Customizer.markSave();\n }\n });\n\n setting.controlContainer = container;\n setting.renderControl = function () {\n control.renderContent();\n control.ready();\n\n return this;\n };\n\n setting.attachWithSetter = function (currentValue, onChange) {\n this.onChange = false;\n this._value = undefined;\n\n this.set(currentValue);\n\n if (options.onAttach) {\n options.onAttach.call(setting, currentValue);\n }\n\n var self = this;\n _.delay(function () {\n self.onChange = onChange;\n }, 1);\n };\n\n setting.renderControl();\n setting.control = control;\n\n\n setting.hide = function () {\n this.control.container.hide();\n };\n\n setting.show = function () {\n this.control.container.show();\n };\n\n return setting;\n };\n\n CP_Customizer.createControl.color = function (id, container, params) {\n\n var $container = $('<li class=\"customize-control customize-control-kirki customize-control-kirki-color\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n updater: function (value) {\n var colorControl = this.control.container.find('input[data-cp-link]');\n if (colorControl.data('spectrum.id') === undefined) {\n colorControl.iris('color', value);\n } else {\n colorControl.spectrum(\"set\", value);\n }\n },\n type: 'kirki-color',\n container: $container,\n params: _.extend(\n params,\n {\n choices: {\n alpha: params.alpha || true\n },\n value: params.value || \"#FFFFFF\"\n }\n ),\n value: params.value || \"#FFFFFF\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n\n CP_Customizer.createControl.palette = function (id, container, params) {\n\n var $container = $('<li class=\"customize-control customize-control-kirki customize-control-kirki-color\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n updater: function (value) {\n var colorControl = this.control.container.find('input[data-cp-link]');\n if (colorControl.data('spectrum.id') === undefined) {\n colorControl.iris('color', value);\n } else {\n var cb = colorControl.spectrum(\"option\", \"move\");\n colorControl.spectrum(\"destroy\");\n colorControl.spectrum({\n showPaletteOnly: true,\n showPalette: true,\n color: value,\n palette: [params.palette],\n move: cb,\n change: cb\n });\n colorControl.spectrum(\"set\", value);\n\n }\n },\n type: 'kirki-color',\n container: $container,\n params: _.extend(\n params,\n {\n choices: {\n alpha: params.alpha || true\n },\n value: params.value || \"#FFFFFF\"\n }\n ),\n value: params.value || \"#FFFFFF\"\n };\n\n var result = CP_Customizer.createControl(options);\n\n result.setPallete = function (palette) {\n var colorControl = this.control.container.find('input[data-cp-link]');\n colorControl.spectrum('option', 'palette', palette);\n };\n\n return result;\n };\n\n\n CP_Customizer.createControl.select = function (id, container, params) {\n var type = 'kirki-select',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n updater: function (value) {\n if (this.controlContainer.find('[data-cp-link]').data().selectize) {\n this.controlContainer.find('[data-cp-link]').data().selectize.setValue(value);\n }\n },\n type: type,\n container: $container,\n params: _.extend(\n params,\n {\n choices: params.choices || [],\n value: params.value || \"\",\n multiple: params.multiple || []\n }\n ),\n value: params.value || \"\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.text = function (id, container, params) {\n var type = 'kirki-number',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />'),\n params = params || {};\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n\n type: type,\n onAttach: function (value) {\n var thisInput = this.controlContainer.find('input');\n thisInput.val(value);\n },\n container: $container,\n params: _.extend(\n params,\n {\n value: params.value || \"\"\n }\n ),\n value: params.value || \"\"\n };\n\n var setting = CP_Customizer.createControl(options);\n setting.control.container.find('input').spinner('destroy');\n\n return setting;\n };\n\n CP_Customizer.createControl.number = function (id, container, params) {\n var type = 'kirki-number',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n updater: function (value) {\n if (this.controlContainer.find('[data-cp-link]').data().selectize) {\n this.controlContainer.find('[data-cp-link]').data().selectize.setValue(value);\n }\n },\n type: type,\n onAttach: function (value) {\n var thisInput = this.controlContainer.find('input');\n thisInput.spinner(\"value\", value);\n },\n container: $container,\n params: _.extend(\n params,\n {\n choices: {\n min: params.min,\n max: params.max,\n step: params.step\n },\n value: params.value || \"\"\n }\n ),\n value: params.value || \"\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.image = function (id, container, params) {\n var type = 'image',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n updater: function (value) {\n if (value && \"none\" !== value && \"/none\" !== value.split('/none').pop()) {\n this.control.params.attachment = {\n id: Date.now(),\n type: type,\n sizes: {\n full: {\n url: value\n }\n }\n }\n } else {\n this.control.params.attachment = undefined;\n }\n this.control.renderContent();\n },\n params: _.extend(\n params,\n {\n canUpload: true,\n button_labels: {\n remove: window.CP_Customizer.translateCompanionString(\"Remove\"),\n change: window.CP_Customizer.translateCompanionString(\"Change\"),\n select: window.CP_Customizer.translateCompanionString(\"Select\"),\n placeholder: \"No file selected\",\n },\n attachment: {\n type: type,\n sizes: {\n full: {\n url: params.url\n }\n }\n }\n }\n ),\n value: params.value || \"\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.video = function (id, container, params) {\n var type = 'media',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n updater: function (value) {\n if (value) {\n this.control.params.attachment = value;\n } else {\n this.control.params.value = '';\n }\n this.control.renderContent();\n },\n params: _.extend(\n params,\n {\n canUpload: true,\n button_labels: {\n remove: \"Remove\",\n change: \"Change\",\n select: \"Select\",\n placeholder: \"No file selected\",\n },\n attachment: {\n id: params.value\n }\n }\n ),\n value: params.value || ''\n };\n\n var result = CP_Customizer.createControl(options);\n\n result.onSelect = function(){};\n\n result.attachWithSetter = function (currentValue, onChange) {\n this.onChange = false;\n this._value = undefined;\n\n this.set(currentValue);\n\n if (options.onAttach) {\n options.onAttach.call(setting, currentValue);\n }\n\n var self = this;\n _.delay(function () {\n self.onSelect = onChange;\n }, 1);\n };\n\n result.control.select = function() {\n \t\t\t// Get the attachment from the modal frame.\n \t\t\tvar node,\n \t\t\t\tattachment = result.control.frame.state().get( 'selection' ).first().toJSON(),\n \t\t\t\tmejsSettings = window._wpmejsSettings || {};\n\n \t\t\tresult.control.params.attachment = attachment;\n\n \t\t\t// Set the Customizer setting; the callback takes care of rendering.\n \t\t\tresult.control.setting( attachment.id );\n \t\t\tresult.onSelect({\n id: attachment.id,\n url: attachment.url,\n icon: attachment.icon,\n type: attachment.type\n })\n \t\t\tnode = result.control.container.find( 'audio, video' ).get(0);\n\n \t\t\t// Initialize audio/video previews.\n \t\t\tif ( node ) {\n \t\t\t\tresult.control.player = new MediaElementPlayer( node, mejsSettings );\n \t\t\t} else {\n \t\t\t\tresult.control.cleanupPlayer();\n \t\t\t}\n \t\t};\n\n return result;\n };\n\n CP_Customizer.createControl.gradient = function (id, container, params) {\n var type = 'web-gradients',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n updater: function (value) {\n this.control.params.value = value;\n this.control.renderContent();\n },\n container: $container,\n params: _.extend(\n params,\n {\n value: params.value || \"\",\n button_label: window.CP_Customizer.translateCompanionString(\"Choose Gradient\")\n }\n ),\n value: params.value || \"\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.gradientPro = function (id, container, params) {\n var type = 'gradient-control-pro',\n selector = 'customize-control-' + id + '-control',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" id=\"' + selector + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n updater: function (value) {\n this.control.setValue(value, true);\n },\n container: $container,\n params: _.extend(\n params,\n {\n value: params.value || \"\",\n button_label: \"Select Gradient\",\n id: id || '',\n settings: {\n default: id || ''\n }\n }\n ),\n value: params.value || \"\",\n selector: selector\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.typography = function (id, container, params) {\n var type = 'kirki-typography',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" id=\"customize-control-' + id +'-control\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n updater: function (value) {\n },\n container: $container,\n params: _.extend(\n params,\n {\n kirkiConfig: \"global\",\n l10n: kirki.l10n.global,\n default: params.value,\n id: id || '',\n }\n ),\n value: params.value || \"\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.sectionSeparator = function (id, container, label) {\n var type = 'sectionseparator',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: label\n }\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.textarea = function (id, container, params) {\n var type = 'kirki-generic',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: _.extend(\n params,\n {\n value: params.value || \"\",\n choices: {\n element: 'textarea',\n rows: '5'\n }\n }\n ),\n value: params.value || \"\"\n };\n\n return CP_Customizer.createControl(options);\n };\n\n CP_Customizer.createControl.controlsGroup = function (id, container, label) {\n var type = 'sectionseparator',\n $container = $('<li class=\"customize-control customize-control-kirki customize-controls-container customize-control-' + type + '\" ></li>');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: label || \"\"\n }\n };\n\n var result = CP_Customizer.createControl(options);\n\n\n return (function (result, $el, parent) {\n\n if (!label) {\n result.control.container.find('.materialis-separator').remove()\n }\n\n\n result.parent = container;\n\n result.free = function () {\n $el.remove();\n };\n\n result.attach = function () {\n parent.append($el);\n };\n\n result.el = function () {\n if (this.control.container.find('ul.holder').length === 0) {\n this.control.container.append('<ul class=\"holder\"></ul>');\n }\n return this.control.container.find('ul.holder');\n };\n\n return result;\n })(result, $container, container);\n };\n\n\n CP_Customizer.createControl.controlHolder = function (id, container) {\n var type = 'sectionsetting',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container\n };\n\n return CP_Customizer.createControl(options);\n };\n\n\n CP_Customizer.createControl.checkbox = function (id, container, label) {\n var type = 'kirki-checkbox',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: label\n }\n };\n\n return CP_Customizer.createControl(options);\n };\n\n\n CP_Customizer.createControl.generic = function (id, container, params) {\n var type = 'kirki-generic',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: params.label,\n choices: {\n element: 'input',\n type: 'text'\n }\n },\n value: params.value\n };\n\n return CP_Customizer.createControl(options);\n\n\n return result;\n };\n\n\t\tCP_Customizer.createControl.repeater = function (id, container, params) {\n var type = 'repeater',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n var repeaterContent = '';\n repeaterContent+= '<label>';\n repeaterContent+= '<span class=\"customize-control-title\">' + params.label + '</span>';\n repeaterContent+= '<input type=\"hidden\" ' + params + ' value=\"\" />';\n repeaterContent+= '</label>';\n repeaterContent+= '<ul class=\"repeater-fields\"></ul>';\n// repeaterContent+= '<p class=\"limit\">' + params.choices.limit + '</p>';\n// repeaterContent+= '<button class=\"button-secondary repeater-add\">Add</button>';\n repeaterContent+= jQuery('.customize-control-repeater-content').first().prop('outerHTML');\n $container.html(repeaterContent);\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: _.extend(\n params,\n {\n kirkiConfig: \"global\",\n l10n: kirki.l10n.global,\n label: params.label,\n default: params.value,\n }\n ),\n value: params.value\n };\n\n return CP_Customizer.createControl(options);\n\n\n return result;\n };\n\n\n CP_Customizer.createControl.button = function (id, container, label, callback, buttonOptions) {\n var type = 'kirki-checkbox',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-ope-button\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n buttonOptions = _.extend(\n {\n class: \"button full-width\"\n },\n buttonOptions\n );\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: label\n }\n };\n\n var result = CP_Customizer.createControl(options);\n\n result.control.container.empty();\n\n var $button = $('<button class=\"' + buttonOptions.class + '\" />');\n $button.text(label);\n $button.off('click').on('click', function (event) {\n event.stopPropagation();\n event.preventDefault();\n callback.call(this, event);\n });\n\n result.control.container.append($button);\n\n return result;\n };\n\n\t\tCP_Customizer.createControl.buttonGroup = function (id, container, params, callback, buttonOptions) {\n var type = 'sidebar-button-group',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-ope-button\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n buttonOptions = _.extend(\n {\n class: \"button full-width\"\n },\n buttonOptions\n );\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: _.extend(\n params,\n {\n popup: id\n }\n ),\n };\n\n var result = CP_Customizer.createControl(options);\n\n return result;\n };\n\n\n CP_Customizer.createControl.info = function (id, container, content) {\n var type = 'kirki-checkbox',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-ope-info\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: \"\"\n }\n };\n\n var result = CP_Customizer.createControl(options);\n\n result.control.container.empty();\n\n result.control.container.append($('<p/>').append(content));\n\n\n return result;\n };\n\n CP_Customizer.createControl.infoPRO = function (id, container, content) {\n\n if (CP_Customizer.IS_PRO) {\n return;\n }\n\n var type = 'kirki-checkbox',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-ope-info-pro\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n label: \"\"\n }\n };\n\n var result = CP_Customizer.createControl(options);\n\n result.control.container.empty();\n\n result.control.container.append($('<p/>').append(content));\n\n\n return result;\n };\n\n\n CP_Customizer.createControl.sortable = function (id, container, itemTemplate, label) {\n var type = 'sectionsetting',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + '\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var options = {\n id: id || '',\n type: type,\n container: $container,\n params: {\n itemTemplate: itemTemplate,\n label: label\n }\n };\n\n var result = CP_Customizer.createControl(options);\n\n result.control.attachControls = function () {\n };\n result.control.free = function () {\n this.container.find('.setting-control-container').empty();\n try {\n this.container.sortable('destroy');\n } catch (e) {\n\n }\n };\n\n result.control.onStop = function () {\n };\n\n result.control.setItems = function (items, afterCreation) {\n var control = this;\n var itemContainer = this.container.find('.setting-control-container');\n\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var html = control.params.itemTemplate(item);\n\n if (afterCreation) {\n html = $(html);\n afterCreation(html, item);\n }\n\n itemContainer.append(html);\n }\n\n itemContainer.sortable({\n axis: \"y\",\n handle: \".handle\",\n stop: function (event, ui) {\n result.control.onStop(event, ui);\n }\n });\n\n };\n\n\n return result;\n }\n\n CP_Customizer.createControl.number = function (id, container, options) {\n\n options = options || {};\n\n options.choices = _.extend({\n min: 0,\n max: 100,\n step: 1\n }, options.choices || {});\n\n var type = 'kirki-number',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + ' cp-control\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n\n var controlOptions = {\n id: id || '',\n updater: function (value) {\n var thisInput = this.controlContainer.find('input');\n thisInput.val(value);\n thisInput.change();\n },\n type: type,\n container: $container,\n params: {\n label: options.label,\n default: options.default,\n choices: options.choices\n },\n value: options.default\n };\n\n return CP_Customizer.createControl(controlOptions);\n }\n\n CP_Customizer.createControl.spacing = function (id, container, options) {\n if (!options.sides) {\n options.sides = ['top', 'bottom'];\n }\n\n var type = 'kirki-spacing',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + ' cp-control\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n var sides = {};\n var controls = {};\n\n for (var i = 0; i < options.sides.length; i++) {\n sides[options.sides[i]] = \"0px\";\n controls[options.sides[i]] = true;\n }\n\n var controlOptions = {\n id: id || '',\n updater: function (value) {\n\n for (var key in value) {\n var $input = this.controlContainer.find('.' + key + '.input-wrapper > input');\n $input.val(value[key]);\n }\n\n },\n type: type,\n container: $container,\n params: {\n kirkiConfig: \"global\",\n l10n: kirki.l10n.global,\n label: options.label,\n default: sides,\n choices: {\n controls: controls\n }\n },\n value: sides\n };\n\n kirkiNotifications(id, type, 'global');\n\n return CP_Customizer.createControl(controlOptions);\n };\n\n CP_Customizer.createControl.dimension = function (id, container, options) {\n\n options = options || {};\n\n var type = 'kirki-dimension',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + ' cp-control\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n\n var controlOptions = {\n id: id || '',\n updater: function (value) {\n var $input = this.controlContainer.find('.input-wrapper > input');\n $input.val(value);\n\n },\n type: type,\n container: $container,\n params: {\n kirkiConfig: \"global\",\n l10n: kirki.l10n.global,\n label: options.label,\n default: options.default || \"0px\"\n },\n value: options.default || \"0px\"\n };\n\n kirkiNotifications(id, type, 'global');\n\n return CP_Customizer.createControl(controlOptions);\n }\n\n CP_Customizer.createControl.slider = function (id, container, options) {\n\n options = options || {};\n\n options.choices = _.extend({\n min: 0,\n max: 100,\n step: 1,\n default: 0\n }, options.choices || {});\n\n var type = 'kirki-slider',\n $container = $('<li class=\"customize-control customize-control-kirki customize-control-' + type + ' cp-control\" />');\n\n if (container) {\n $(container).append($container);\n }\n\n\n var controlOptions = {\n id: id || '',\n updater: function (value) {\n var thisInput = this.controlContainer.find('input');\n thisInput.val(value);\n thisInput.change();\n thisInput.siblings('.kirki_range_value').find('.value').text(value);\n\n },\n onAttach: function (value) {\n var thisInput = this.controlContainer.find('input');\n thisInput.attr('data-reset_value', value);\n thisInput.data('reset_value', value);\n },\n type: type,\n container: $container,\n params: {\n kirkiConfig: \"global\",\n l10n: kirki.l10n.global,\n label: options.label,\n default: options.default,\n choices: options.choices\n },\n value: options.default\n };\n\n kirkiNotifications(id, type, 'global');\n\n return CP_Customizer.createControl(controlOptions);\n }\n });\n\n})(window, CP_Customizer, jQuery);\n\n\n(function (root, CP_Customizer, $) {\n CP_Customizer.addModule(function (CP_Customizer) {\n var $sectionSettingsContainer = $(\"#cp-section-setting-popup .section-settings-container\");\n\n CP_Customizer.hooks.doAction('section_panel_before_dimensions', $sectionSettingsContainer); // #####\n\n CP_Customizer.hooks.addAction('right_sidebar_opened', function (sidebarId, data) {\n if (sidebarId !== 'cp-section-setting') {\n return;\n }\n\n CP_Customizer.panels.sectionPanel.init(data);\n CP_Customizer.panels.sectionPanel.update(data);\n CP_Customizer.hooks.doAction('section_sidebar_opened', data);\n });\n\n\n var baseArea = {\n\n __controls: {},\n\n priority: 100,\n\n extend: function (options) {\n return _.extend(this, options);\n },\n\n init: function () {\n },\n update: function () {\n },\n\n disable: function () {\n for (var item in this.__controls) {\n this.__controls[item].hide();\n }\n this.enabled = false;\n },\n enable: function () {\n for (var item in this.__controls) {\n this.__controls[item].show();\n }\n this.enabled = true;\n },\n\n\n _exclude: false,\n\n exclude: function () {\n this._exclude = true;\n },\n\n include: function () {\n this._exclude = false;\n },\n\n canInclude: function () {\n return !this._exclude;\n },\n\n getPrefixed: function (data) {\n return this.name + '-' + data;\n },\n\n areaTitle: false,\n\n\n initAreaTitle: function ($container) {\n if (this.areaTitle) {\n var separator = CP_Customizer.createControl.sectionSeparator(\n this.getPrefixed('area-title'),\n $container,\n this.areaTitle\n );\n this.addToControlsList(separator);\n }\n },\n\n hideAll:function(){\n for(var control in this.__controls){\n this.__controls[control].hide();\n }\n },\n\n showAll:function(){\n for(var control in this.__controls){\n this.__controls[control].show();\n }\n },\n\n addToControlsList: function (control) {\n this.__controls[control.id] = control;\n },\n\n getControl: function (id) {\n if (this.__controls[id]) {\n return this.__controls[id];\n }\n\n if (this.__controls[this.getPrefixed(id)]) {\n return this.__controls[this.getPrefixed(id)];\n }\n\n return null;\n },\n\n wrapOriginal: function (originalName, newFunction) {\n if (_.isFunction(this[originalName])) {\n this[originalName] = _.wrap(this[originalName], newFunction);\n }\n }\n };\n\n\n var panelBase = {\n _areas: {},\n _initialized: false,\n\n extend: function (options) {\n return _.extend(this, options);\n },\n\n registerArea: function (name, options, forceOverride) {\n\n var settings = _.extend(\n CP_Customizer.utils.deepClone(baseArea),\n options\n );\n\n if (!this._areas[name] || forceOverride === true) {\n this._areas[name] = _.extend({\n enabled: true,\n name: name\n }, settings);\n\n\n }\n\n return this._areas[name];\n },\n\n hasArea: function (name) {\n return !_.isUndefined(this._areas[name]);\n },\n\n getArea: function (name) {\n return this._areas[name];\n },\n\n init: function (data) {\n if (this._initialized) {\n return;\n }\n\n this._initialized = true;\n\n\n var self = this;\n\n // sort asc by priority\n var areas = Object.getOwnPropertyNames(this._areas).sort(function (a, b) {\n return self._areas[a].priority - self._areas[b].priority;\n });\n\n areas = CP_Customizer.hooks.applyFilters('section_sidebar_sort_areas', areas);\n\n areas.forEach(function (area) {\n if (self._areas[area] && self._areas[area].canInclude()) {\n CP_Customizer.hooks.doAction('before_section_sidebar_area_' + name, $sectionSettingsContainer);\n\n self._processExtendAreaQueue(self._areas[area]);\n\n self._areas[area].initAreaTitle($sectionSettingsContainer);\n self._areas[area].init($sectionSettingsContainer);\n\n CP_Customizer.hooks.doAction('after_section_sidebar_area_' + name, $sectionSettingsContainer);\n }\n });\n\n this.update(data);\n },\n\n update: function (data) {\n\n data.sectionExports = CP_Customizer.getSectionExports(data.section);\n\n for (var area in this._areas) {\n\n if (this._areas[area].canInclude()) {\n\n CP_Customizer.hooks.doAction('update_before_section_sidebar_area_' + name, data);\n this._areas[area].update(data);\n CP_Customizer.hooks.doAction('update_after_section_sidebar_area_' + name, data);\n\n }\n }\n },\n disableArea: function (name) {\n if (this._areas[name] && this._areas[name].enabled) {\n this._areas[name].enabled = false;\n this._areas[name].disable();\n }\n },\n enableArea: function (name) {\n if (this._areas[name] && !this._areas[name].enabled) {\n this._areas[name].enabled = false;\n this._areas[name].enable();\n }\n },\n\n excludeArea: function (name) {\n if (this._areas[name]) {\n this._areas[name].exclude();\n }\n },\n\n _areasToExtend: {},\n\n _processExtendAreaQueue: function (area) {\n var extendCallback = this._areasToExtend[area.name];\n\n if (extendCallback) {\n extendCallback(area)\n }\n },\n\n extendArea: function (name, callback) {\n if (this._areas[name]) {\n callback(this._areas[name]);\n } else {\n if (!this._areasToExtend[name]) {\n this._areasToExtend[name] = callback;\n }\n }\n }\n };\n\n CP_Customizer.panels = CP_Customizer.panel || {};\n CP_Customizer.panels.panelBase = panelBase;\n CP_Customizer.panels.panelArea = baseArea;\n\n CP_Customizer.panels.instantiate = function (config) {\n return _.extend(CP_Customizer.utils.deepClone(panelBase), config || {});\n };\n\n CP_Customizer.panels.sectionPanel = _.extend(CP_Customizer.panels.sectionPanel || {}, panelBase);\n\n });\n\n})(window, CP_Customizer, jQuery);\n","(function (root, CP_Customizer, $) {\n\n var containerTemplate = $('' +\n '<li id=\"cp-current-page-settings-popup\" class=\"customizer-right-section\">' +\n ' <span data-close-right-sidebar=\"true\" title=\"' + window.CP_Customizer.translateCompanionString('Close Panel') + '\" class=\"close-panel\"></span>' +\n ' <ul class=\"current-page-settings-container section-settings-container accordion-section-content no-border\"></ul>' +\n ' </li>');\n\n CP_Customizer.addModule(function (CP_Customizer) {\n\n var control = wp.customize.panel('page_content_panel');\n control.container.append(containerTemplate);\n\n var $container = $(\"#cp-current-page-settings-popup .current-page-settings-container\");\n\n CP_Customizer.panels.pageContentPanel = CP_Customizer.panels.instantiate({\n init: function (data) {\n if (this._initialized) {\n return;\n }\n\n this._initialized = true;\n\n var self = this;\n\n // sort asc by priority\n var areas = Object.getOwnPropertyNames(this._areas).sort(function (a, b) {\n return self._areas[a].priority - self._areas[b].priority;\n });\n\n areas = CP_Customizer.hooks.applyFilters('page_settings_sidebar_sort_areas', areas);\n\n areas.forEach(function (area) {\n if (self._areas[area] && self._areas[area].canInclude()) {\n CP_Customizer.hooks.doAction('before_page_settings_sidebar_area_' + name, $container);\n\n self._processExtendAreaQueue(self._areas[area]);\n self._areas[area].initAreaTitle($container);\n self._areas[area].init($container);\n\n CP_Customizer.hooks.doAction('after_page_settings_sidebar_area_' + name, $container);\n }\n });\n\n this.update(data);\n },\n update: function (data) {\n for (var area in this._areas) {\n\n if (this._areas[area].canInclude()) {\n\n CP_Customizer.hooks.doAction('update_before_page_settings_sidebar_area_' + name, data);\n this._areas[area].update(data);\n CP_Customizer.hooks.doAction('update_after_page_settings_sidebar_area_' + name, data);\n\n }\n }\n }\n });\n\n CP_Customizer.hooks.addAction('right_sidebar_opened', function (sidebarId) {\n if (sidebarId !== 'cp-current-page-settings') {\n return;\n }\n\n var data = {\n 'id': CP_Customizer.preview.data('pageID')\n };\n\n CP_Customizer.panels.pageContentPanel.init(data);\n CP_Customizer.panels.pageContentPanel.update(data);\n CP_Customizer.hooks.doAction('page_setting_sidebar_opened', {});\n });\n });\n\n})(window, CP_Customizer, jQuery);","(function (root, CP_Customizer, $) {\n CP_Customizer.addModule(function (CP_Customizer) {\n CP_Customizer.hooks.addFilter('section_fixed_overlay_options', function (options, type) {\n\n var item = {\n\n name: \"section_more_settings_button\",\n title: window.CP_Customizer.translateCompanionString(\"Section Settings\"),\n\n on_click: function (node) {\n var section = node;\n\n if (!section.parent().is(CP_Customizer.preview.getRootNode())) {\n section = node.parentsUntil(top.CP_Customizer.preview.getRootNode()).last();\n }\n\n section = CP_Customizer.hooks.applyFilters('filter_cog_item_section_element', section, node);\n\n CP_Customizer.wpApi.panel('page_content_panel').focus()\n CP_Customizer.openRightSidebar(\"cp-section-setting\", {\n section: section\n });\n }\n\n };\n\n if (type === \"section\" && options && !itemExists(options, item.name)) {\n options.items.push(item);\n }\n\n return options;\n });\n\n\n CP_Customizer.hooks.addFilter('section_fixed_overlay', function (options, key) {\n\n var tempOptions = _.clone(options);\n\n if (key === \"items\") {\n if (_.isArray(tempOptions)) {\n tempOptions.forEach(function (item, index, optionsList) {\n if (item.name === \"section_color_changer\" || item.name === \"columns_reorder\") {\n if (item.on_hover) {\n delete item.on_hover;\n }\n\n item.classes = \"\";\n\n item.on_click = function (node) {\n var section = node;\n\n if (!section.parent().is(CP_Customizer.preview.getRootNode())) {\n section = node.parentsUntil(top.CP_Customizer.preview.getRootNode()).last();\n }\n\n section = CP_Customizer.hooks.applyFilters('filter_cog_item_section_element', section, node);\n\n CP_Customizer.wpApi.panel('page_content_panel').focus()\n CP_Customizer.openRightSidebar(\"cp-section-setting\", {\n section: section\n });\n }\n }\n\n if (item.name === \"page_background_image\") {\n delete optionsList[index];\n }\n });\n }\n\n // do return empty array slots\n var result = tempOptions.filter(function (item) {\n return item;\n });\n } else {\n result = options;\n }\n\n\n return result;\n });\n\n function itemExists(options, name) {\n\n if (options && options.items) {\n for (var i = 0; i < options.items.length; i++) {\n var item = options.items[i];\n\n if (item.name === name) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n\n CP_Customizer.hooks.addFilter('section_fixed_overlay_options', function (options, type) {\n\n var item = {\n\n name: \"section_more_settings_button\",\n title: window.CP_Customizer.translateCompanionString(\"Section Settings\"),\n\n on_click: function (node) {\n var section = node;\n\n if (!section.parent().is(CP_Customizer.preview.getRootNode())) {\n section = node.parentsUntil(top.CP_Customizer.preview.getRootNode()).last();\n }\n\n section = CP_Customizer.hooks.applyFilters('filter_cog_item_section_element', section, node);\n\n CP_Customizer.wpApi.panel('page_content_panel').focus()\n CP_Customizer.openRightSidebar(\"cp-section-setting\", {\n section: section\n });\n }\n\n };\n\n if (type === \"section\" && options && !itemExists(options, item.name)) {\n options.items.push(item);\n }\n\n return options;\n });\n });\n\n})(window, CP_Customizer, jQuery);\n\n\n(function (root, CP_Customizer, $) {\n CP_Customizer.addModule(function (CP_Customizer) {\n var sectionPanel = CP_Customizer.panels.sectionPanel;\n sectionPanel.registerArea('background_color', {\n init: function ($container) {\n\n var separator = CP_Customizer.createControl.sectionSeparator(\n this.getPrefixed('separator'),\n $container,\n window.CP_Customizer.translateCompanionString('Background Color')\n );\n\n this.addToControlsList(separator);\n\n var palette = CP_Customizer.createControl.palette(\n this.getPrefixed('background-color'),\n $container,\n {\n value: '#ffffff',\n label: window.CP_Customizer.translateCompanionString('Background Color'),\n palette: ['#ffffff', '#F5FAFD']\n });\n\n this.addToControlsList(palette);\n\n CP_Customizer.createControl.infoPRO(\n this.getPrefixed('section-bg-pro-info'),\n $container,\n '<span>' + window.CP_Customizer.translateCompanionString(\"More section design options available in PRO\") + '</span><br/> ' +\n '<a href=\"https://extendthemes.com/go/materialis-upgrade\" class=\"button button-small button-orange upgrade-to-pro\" target=\"_blank\">' +\n '' + window.CP_Customizer.translateCompanionString(\"Check all PRO features\") + '</a>'\n )\n },\n update: function (data) {\n var image = CP_Customizer.utils.normalizeBackgroundImageValue((getComputedStyle(data.section[0]).backgroundImage || \"\")) || false;\n image = (image && image !== \"none\" && !image.endsWith('/none')) ? image : false;\n var color = getComputedStyle(data.section[0]).backgroundColor;\n\n if (image) {\n\n this.disable();\n return;\n }\n\n this.enable();\n\n var palette = this.getControl('background-color');\n\n palette.attachWithSetter(color, function (value) {\n\n data.section.css({\n 'background-image': 'none',\n 'background-color': value\n });\n\n CP_Customizer.updateState();\n });\n }\n });\n\n sectionPanel.registerArea('background_image', {\n init: function ($container) {\n\n var separator = CP_Customizer.createControl.sectionSeparator(\n this.getPrefixed('separator'),\n $container,\n window.CP_Customizer.translateCompanionString('Background Image')\n );\n\n this.addToControlsList(separator);\n\n var bgImage = CP_Customizer.createControl.image(\n this.getPrefixed('image'),\n $container,\n {\n value: '',\n label: window.CP_Customizer.translateCompanionString('Background Image')\n });\n\n this.addToControlsList(bgImage);\n },\n\n update: function (data) {\n var image = CP_Customizer.utils.normalizeBackgroundImageValue((getComputedStyle(data.section[0]).backgroundImage || \"\")) || false;\n image = (image && image !== \"none\" && !image.endsWith('/none')) ? image : false;\n\n\n var bgImage = this.getControl('image');\n\n if (!image) {\n this.disable();\n return;\n }\n\n this.enable();\n\n bgImage.attachWithSetter(image, function (value) {\n\n if (value) {\n value = 'url(\"' + value + '\")';\n } else {\n value = \"\";\n }\n data.section.css({\n 'background-color': 'none',\n 'background-image': value,\n 'background-size': 'cover',\n 'background-position': 'center top'\n });\n\n\n CP_Customizer.updateState();\n });\n }\n });\n\n\n sectionPanel.registerArea('content_align', {\n init: function ($container) {\n\n var separator = CP_Customizer.createControl.sectionSeparator(\n this.getPrefixed('separator'),\n $container,\n window.CP_Customizer.translateCompanionString('Content Align')\n );\n\n this.addToControlsList(separator);\n\n var textAlign = CP_Customizer.createControl.select(\n this.getPrefixed('text_align'),\n $container,\n {\n value: '',\n label: window.CP_Customizer.translateCompanionString('Content align'),\n choices: {\n 'content-align-default': window.CP_Customizer.translateCompanionString('Default'),\n 'content-left-sm': window.CP_Customizer.translateCompanionString('Left'),\n 'content-center-sm': window.CP_Customizer.translateCompanionString('Center'),\n 'content-right-sm': window.CP_Customizer.translateCompanionString('Right')\n }\n });\n\n this.addToControlsList(textAlign);\n },\n\n update: function (data) {\n var section = data.section;\n var sectionExports = CP_Customizer.getSectionExports(section);\n\n if (!sectionExports.contentAligns) {\n this.disable();\n return;\n }\n\n this.enable();\n\n var selector = sectionExports.contentAligns.join(' , '),\n $alignHolders = section.find(selector);\n\n if (section.is(selector)) {\n $alignHolders = $alignHolders.add(section);\n }\n\n var textAlign = this.getControl('text_align');\n var textAlignClasses = ['content-left-sm', 'content-center-sm', 'content-right-sm'];\n var currentTextAlign = CP_Customizer.utils.nodeMatchingClasses($alignHolders, textAlignClasses, true);\n\n textAlign.attachWithSetter(\n currentTextAlign || 'content-align-default',\n function (value, oldValue) {\n if (oldValue.trim()) {\n $alignHolders.each(function () {\n $(this).removeClass(oldValue);\n })\n }\n if (value.trim() && value !== 'content-align-default') {\n $alignHolders.each(function () {\n $(this).addClass(value);\n })\n }\n }\n );\n }\n });\n\n\n // frame box\n sectionPanel.registerArea('frame', {\n init: function ($container) {\n var frameSeparator = CP_Customizer.createControl.sectionSeparator(this.getPrefixed('separator'),\n $container, window.CP_Customizer.translateCompanionString('Frame Settings'));\n this.addToControlsList(frameSeparator);\n $groupEl = $container;\n var frameType = CP_Customizer.createControl.select(this.getPrefixed('type'), $groupEl, {\n value: '',\n label: window.CP_Customizer.translateCompanionString('Type'),\n choices: {\n \"background\": window.CP_Customizer.translateCompanionString(\"background\"),\n \"border\": window.CP_Customizer.translateCompanionString(\"border\")\n }\n });\n this.addToControlsList(frameType);\n var frameColor = CP_Customizer.createControl.color(this.getPrefixed('color'), $groupEl, {\n value: '#ffffff',\n label: window.CP_Customizer.translateCompanionString('Color')\n });\n\n this.addToControlsList(frameColor);\n\n var frameOffsetX = CP_Customizer.createControl.slider(this.getPrefixed('offs-x'), $groupEl, {\n label: window.CP_Customizer.translateCompanionString('Offset X'),\n choices: {\n min: -100,\n max: 100,\n step: 1\n }\n });\n\n this.addToControlsList(frameOffsetX);\n var frameOffsetY = CP_Customizer.createControl.slider(this.getPrefixed('offs-y'), $groupEl, {\n label: window.CP_Customizer.translateCompanionString('Offset Y'),\n choices: {\n min: -100,\n max: 100,\n step: 1\n }\n });\n\n this.addToControlsList(frameOffsetY);\n var frameWidth = CP_Customizer.createControl.slider(this.getPrefixed('width'), $groupEl, {\n label: window.CP_Customizer.translateCompanionString('Width'),\n choices: {\n min: 1,\n max: 200,\n step: 1\n }\n });\n\n this.addToControlsList(frameWidth);\n var frameHeight = CP_Customizer.createControl.slider(this.getPrefixed('height'), $groupEl, {\n label: window.CP_Customizer.translateCompanionString('Height'),\n choices: {\n min: 1,\n max: 200,\n step: 1\n }\n });\n this.addToControlsList(frameHeight);\n\n var frameHideOnMobile = CP_Customizer.createControl.checkbox(\n this.getPrefixed('hide-on-mobile'),\n $groupEl,\n window.CP_Customizer.translateCompanionString('Hide on mobile')\n );\n\n this.addToControlsList(frameHideOnMobile);\n\n\n },\n update: function (data) {\n var section = data.section;\n var hasFrame = section.find('.overlay-box').length > 0;\n if (!hasFrame) {\n this.disable();\n return;\n }\n this.enable();\n if (hasFrame) {\n var frameType = this.getControl('type');\n var frameWidth = this.getControl('width');\n var frameHeight = this.getControl('height');\n var frameOffsetX = this.getControl('offs-x');\n var frameOffsetY = this.getControl('offs-y');\n var frameColor = this.getControl('color');\n var frameHideOnMobile = this.getControl('hide-on-mobile');\n\n var nodeSel = \".overlay-box .overlay-box-offset\";\n\n\n var selector = '[data-id=\"' + section.attr('data-id') + '\"] ' + nodeSel;\n var node = section.find(nodeSel);\n\n frameHideOnMobile.attachWithSetter(node.hasClass(\"hide-xs\"), function (value) {\n if (value === true) {\n node.addClass(\"hide-xs\");\n } else {\n node.removeClass(\"hide-xs\");\n }\n });\n\n function getProp(name) {\n return (CP_Customizer.contentStyle.getNodeProp(node, selector, null, name));\n }\n\n function setProp(name, value) {\n CP_Customizer.contentStyle.setProp(selector, null, name, value);\n }\n\n function getFrameType() {\n var type = \"background\";\n if (node.hasClass(\"offset-border\")) {\n type = \"border\";\n }\n return type;\n }\n\n frameType.attachWithSetter(getFrameType(), function (value) {\n if (value == \"border\") {\n node.removeClass(\"offset-background\");\n node.addClass(\"offset-border\");\n setProp(value + '-color', getProp('background-color'));\n setProp('background-color', 'transparent');\n }\n if (value == \"background\") {\n node.addClass(\"offset-background\");\n node.removeClass(\"offset-border\");\n setProp(value + '-color', getProp('border-color'));\n setProp('border-color', 'transparent');\n }\n });\n\n frameColor.attachWithSetter(getProp(getFrameType() + '-color'), function (value) {\n setProp(getFrameType() + '-color', value);\n });\n\n frameHeight.attachWithSetter(parseInt(getProp('height')), function (value) {\n setProp('height', value + \"%\");\n });\n\n frameWidth.attachWithSetter(parseInt(getProp('width')), function (value) {\n setProp('width', value + \"%\");\n });\n\n function getTranslate() {\n var transform = getProp('transform');\n var translate = transform.match(/translate\\(([^,]+),([^,]+)\\)/) || [];\n var translateX = translate.length ? translate[1] : 0;\n var translateY = translate.length ? translate[2] : 0;\n return {\n 'x': parseInt(translateX),\n 'y': parseInt(translateY),\n }\n }\n\n function setTranslate(x, y) {\n var translate = getTranslate();\n if (!_.isUndefined(x)) {\n translate.x = x;\n }\n if (!_.isUndefined(y)) {\n translate.y = y;\n }\n setProp('transform', 'translate(' + translate.x + '%,' + translate.y + '%)');\n }\n\n var translate = getTranslate();\n frameOffsetX.attachWithSetter(parseInt(translate.x), function (value) {\n setTranslate(value, undefined);\n });\n\n frameOffsetY.attachWithSetter(parseInt(translate.y), function (value) {\n setTranslate(undefined, value);\n });\n }\n }\n }); // #####\n sectionPanel.registerArea('list_items', {\n\n itemsListControlTemplate: '' +\n '<div class=\"section-list-item\">' +\n ' <div class=\"handle reorder-handler\"></div>' +\n ' <div class=\"text\">' +\n ' <span title=\"color item\" class=\"featured-item color\"></span>' +\n ' <span><%= text %></span>' +\n ' </div>' +\n '</div>' +\n '',\n\n init: function ($container) {\n this.controls = [];\n\n var itemOptionsControl = CP_Customizer.createControl.sectionSeparator(\n this.getPrefixed('title_separator'),\n $container,\n window.CP_Customizer.translateCompanionString('Items Options')\n );\n\n this.addToControlsList(itemOptionsControl);\n\n var itemsAlign = CP_Customizer.createControl.select(\n this.getPrefixed('items_align'),\n $container,\n {\n value: '',\n label: window.CP_Customizer.translateCompanionString('Items align'),\n choices: {\n 'items-align-default': window.CP_Customizer.translateCompanionString('Default'),\n 'start-sm': window.CP_Customizer.translateCompanionString('Left'),\n 'center-sm': window.CP_Customizer.translateCompanionString('Center'),\n 'end-sm': window.CP_Customizer.translateCompanionString('Right')\n }\n });\n this.addToControlsList(itemsAlign);\n\n var textAlign = CP_Customizer.createControl.select(\n this.getPrefixed('text_align'),\n $container,\n {\n value: '',\n label: window.CP_Customizer.translateCompanionString('Item content align'),\n choices: {\n 'content-align-default': window.CP_Customizer.translateCompanionString('Default'),\n 'content-left-sm': window.CP_Customizer.translateCompanionString('Left'),\n 'content-center-sm': window.CP_Customizer.translateCompanionString('Center'),\n 'content-right-sm': window.CP_Customizer.translateCompanionString('Right')\n }\n });\n\n this.addToControlsList(textAlign);\n\n listItemsOrder = CP_Customizer.createControl.sortable(\n this.getPrefixed('order'),\n $container,\n _.template(this.itemsListControlTemplate),\n window.CP_Customizer.translateCompanionString('Items position')\n );\n\n listItemsOrder.control.container.append('<a class=\"add-item button-primary\">' + window.CP_Customizer.translateCompanionString(\"Add Item\") + '</a>');\n\n this.addToControlsList(listItemsOrder);\n },\n\n update: function (data) {\n var section = data.section;\n var row = section.find('[data-type=\"row\"]');\n\n if (!row.length || row.is('[data-content-shortcode]')) {\n this.disable();\n return;\n }\n\n this.enable();\n\n\n var textAlign = this.getControl('text_align'),\n textAlignClasses = ['content-left-sm', 'content-center-sm', 'content-right-sm'],\n currentTextAlign = CP_Customizer.utils.nodeMatchingClasses(row, textAlignClasses, true),\n\n itemsAlign = this.getControl('items_align'),\n itemsAlignClasses = ['start-sm', 'center-sm', 'end-sm'],\n currentItemsAlign = CP_Customizer.utils.nodeMatchingClasses(row, itemsAlignClasses, true);\n\n var sectionExports = CP_Customizer.getSectionExports(section);\n var canAlignItems = _.isUndefined(sectionExports.canAlignRowItemsContent) || sectionExports.canAlignRowItemsContent;\n\n if (canAlignItems) {\n textAlign.show();\n itemsAlign.show();\n } else {\n textAlign.hide();\n itemsAlign.hide();\n }\n\n textAlign.attachWithSetter(\n currentTextAlign || 'content-align-default',\n function (value, oldValue) {\n if (oldValue.trim()) {\n row.removeClass(oldValue);\n }\n if (value.trim() && value !== 'content-align-default') {\n row.addClass(value);\n }\n }\n );\n\n itemsAlign.attachWithSetter(\n currentItemsAlign || 'items-align-default',\n function (value, oldValue) {\n if (oldValue.trim()) {\n row.removeClass(oldValue);\n }\n if (value.trim() && value !== 'items-align-default') {\n row.addClass(value);\n }\n }\n );\n\n\n this.setItems(section, row);\n\n var listItemsOrder = this.getControl('order');\n\n listItemsOrder.control.onStop = function (event, ui) {\n var index = ui.item.index();\n var node = jQuery(ui.item).data().original;\n root.CP_Customizer.preview.insertNode(node, node.parent(), index);\n };\n\n var self = this;\n listItemsOrder.control.container.find('.add-item').unbind('click').click(function () {\n var $content = row.children('div').first().clone(false, false);\n\n $content = root.CP_Customizer.preview.cleanNode($content);\n root.CP_Customizer.preview.insertNode($content, row);\n\n self.setItems(section, row);\n });\n\n\n root.CP_Customizer.hooks.removeAction('section_list_item_refresh', function () {\n self.setItems(section, row);\n });\n\n root.CP_Customizer.hooks.addAction('section_list_item_refresh', function () {\n self.setItems(section, row);\n });\n },\n\n\n getItemOptions: function (section, item) {\n\n return {};\n },\n\n afterItemCreation: function (sortableItem, data) {\n sortableItem.data('original', data.original);\n },\n\n setItems: function (section, row) {\n var listItemsOrder = this.getControl('order');\n listItemsOrder.control.free();\n\n var items = row.children();\n var self = this;\n\n items = items.map(function () {\n var item = $(this);\n var title = $(this).text().replace(/\\s\\s+/g, \" \").trim();\n\n var headingText = $(this).find('h1,h2,h3,h4,h4,h6').eq(0);\n\n if (headingText.length) {\n title = headingText.text().replace(/\\s\\s+/g, \" \").trim();\n }\n\n title = title.trim().length ? title : \"\";\n\n if (!title && item.find('img').length) {\n title = CP_Customizer.utils.getFileInfo(item.find('img').eq(0).attr('src')).filename;\n }\n\n if (!title) {\n title = '[ ITEM ]';\n }\n\n title = title.replace(/(^.{1,15})(.*)$/, function (matches, firstMatch, secondMatch) {\n return (firstMatch || \"\").trim() + (secondMatch && secondMatch.length ? \"[...]\" : \"\");\n });\n\n return {\n text: title,\n original: $(this),\n options: self.getItemOptions(section, item)\n };\n\n }).toArray();\n\n listItemsOrder.control.setItems(items, function () {\n self.afterItemCreation.apply(self, arguments);\n });\n\n }\n });\n\n sectionPanel.registerArea('contact_form_options', {\n init: function ($container) {\n var separator = CP_Customizer.createControl.sectionSeparator(\n this.getPrefixed('separator'),\n $container,\n window.CP_Customizer.translateCompanionString('Contact Form 7 Options')\n );\n\n this.addToControlsList(separator);\n\n var showInfosInOneColumn = CP_Customizer.createControl.checkbox(\n this.getPrefixed('show-inline-info'),\n $container,\n window.CP_Customizer.translateCompanionString('Show form controls on one column')\n );\n\n this.addToControlsList(showInfosInOneColumn);\n\n },\n\n update: function (data) {\n var section = data.section;\n\n if (section.attr('data-export-id').match(/contact/) && section.find('[data-content-shortcode*=\"contact-form-7\"]').length > 0) {\n this.enable();\n } else {\n this.disable();\n return;\n }\n\n var showInfosInOneColumn = this.getControl('show-inline-info');\n var contactFormWrapper = section.find('.contact-form-wrapper');\n var hasInlineInfo = contactFormWrapper.is('.inline-info');\n\n showInfosInOneColumn.attachWithSetter(!hasInlineInfo, function (value) {\n if (value) {\n contactFormWrapper.removeClass('inline-info');\n } else {\n contactFormWrapper.addClass('inline-info');\n }\n CP_Customizer.updateState();\n })\n\n }\n })\n\n });\n\n})(window, CP_Customizer, jQuery);\n","(function (root, CP_Customizer, $) {\n CP_Customizer.addModule(function (CP_Customizer) {\n var popup = CP_Customizer.options('featuresPopup', null);\n var containerID = \"cp_feauture_popups_\" + Math.round(Math.random() * 10000);\n var $container = $(\"<div/>\", {\n id: containerID,\n style: \"display:none\"\n });\n\n if (popup) {\n $container.append(popup.content);\n CP_Customizer.one(CP_Customizer.events.PREVIEW_LOADED, function () {\n $('body').append($container);\n var $tbWindow = CP_Customizer.popUp(popup.title || 'New Feature', containerID, popup.data || {\n class: \"ocdie-tbWindow\"\n });\n $tbWindow.find('[id=TB_closeWindowButton]').off('click.feature_popup').on('click.feature_popup', function (event) {\n jQuery.post(\n ajaxurl,\n {\n value: '1',\n action: \"companion_disable_popup\",\n option: 'feature_popup_' + popup.id + '_disabled',\n companion_disable_popup_wpnonce: popup.nonce\n }\n );\n });\n });\n }\n\n });\n\n})(window, CP_Customizer, jQuery);","(function ($) {\n\n var listItemTemplate = _.template(\n '<li class=\"full_row item\" data-id=\"<%= sectionID %>\">' +\n ' <div class=\"reorder-handler\"></div>' +\n ' <div class=\"label-wrapper\">' +\n ' <input class=\"item-label\" value=\"<%= label %>\" />' +\n ' <div class=\"anchor-info\">' +\n ' #<%= id.replace(/#/,\\'\\') %>' +\n ' </div>' +\n ' </div>' +\n ' <div class=\"item-hover\">' +\n ' <% if(setting) { %>' +\n ' <span title=\"' + window.CP_Customizer.translateCompanionString(\"Edit section settings\") + '\" data-setting=\"<%= setting %>\" class=\"item-settings\"></span>' +\n ' <% } %>' +\n ' <span title=\"' + window.CP_Customizer.translateCompanionString(\"Toggle visibility in primary menu\") + '\" class=\"item-menu-visible <%= (inMenu?\\'active\\':\\'\\') %>\"></span>' +\n ' <span title=\"' + window.CP_Customizer.translateCompanionString(\"Delete section from page\") + '\" class=\"item-remove\"></span>' +\n ' </div>' +\n ' </li>'\n );\n\n window.CP_Customizer.addModule(function (CP_Customizer) {\n var control = wp.customize.panel('page_content_panel');\n\n if (!control) {\n return;\n }\n\n var $contentLi = control.container.eq(0);\n // remove default events\n $contentLi.children('h3').addBack().off();\n\n $sectionsSidebarTogglers = $contentLi.find('.add-section-plus').add($contentLi.find('.cp-add-section'));\n\n CP_Customizer.one(CP_Customizer.events.PREVIEW_LOADED, function () {\n if (CP_Customizer.preview.data(\"can:change_page_settings\")) {\n $contentLi.find('span.section-icon.setting').removeClass('hidden').click(function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n var sectionID = \"cp-current-page-settings\";\n\n if (CP_Customizer.isRightSidebarVisible(sectionID)) {\n CP_Customizer.hideRightSidebar();\n } else {\n CP_Customizer.openRightSidebar(sectionID);\n }\n });\n }\n });\n var sectionID = 'page_content_section';\n $sectionsSidebarTogglers.click(function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n\n if (CP_Customizer.isRightSidebarVisible(sectionID)) {\n CP_Customizer.hideRightSidebar();\n $sectionsSidebarTogglers.removeClass('active');\n } else {\n CP_Customizer.openRightSidebar(sectionID);\n $sectionsSidebarTogglers.addClass('active');\n }\n });\n\n CP_Customizer.focusContentSection = function (toFocus) {\n CP_Customizer.openRightSidebar(\"page_content_section\", {\n focus: '[data-category=' + toFocus + ']'\n })\n };\n\n function getNextInArray(data, start, separator) {\n var increments = data.filter(function (item) {\n return item.replace(start, '').length;\n }).map(function (item) {\n return parseInt(item.replace(start + (separator || '--'), '')) || 0;\n });\n\n return increments.length ? Math.max.apply(Math, increments) + 1 : 1;\n }\n\n function getNextId(start) {\n var ids = CP_Customizer.preview.getContentNodes().filter(function (item) {\n return (item.tagName && item.tagName !== 'undefined' && item.tagName.toLowerCase() === 'div' && item.id.indexOf(start) === 0)\n }).map(function (item) {\n return item.id\n });\n return start + \"-\" + getNextInArray(ids, start, '-');\n }\n\n function getNextDataId(start) {\n var dataIds = CP_Customizer.preview.getContentNodes().filter(function (item) {\n return (item.tagName && item.tagName !== 'undefined' && item.tagName.toLowerCase() === 'div' && item.getAttribute('data-id') && (item.getAttribute('data-id') || \"\").indexOf(start) === 0)\n }).map(function (item) {\n return item.getAttribute('data-id')\n });\n\n return start + \"--\" + getNextInArray(dataIds, start);\n }\n\n\n CP_Customizer.preview.insertSectionFromData = function (data, skipEvent) {\n if (data) {\n var $content = $(data.content),\n dataId = getNextDataId(data.category || data.elementId);\n\n $content.attr('id', getNextId(data.category || data.elementId));\n $content.attr('data-id', dataId);\n\n var index;\n\n if (data.prepend === true || parseInt(data.prepend) === 1) {\n index = 0;\n }\n\n CP_Customizer.preview.insertContentSection($content, index);\n\n var sectionStyle = CP_Customizer.getSectionExports(data.id).sectionStyle;\n if (sectionStyle) {\n _.each(sectionStyle, function (selectors, media) {\n _.each(selectors, function (props, selector) {\n CP_Customizer.contentStyle.setProps('[data-id=\"' + dataId + '\"] ' + selector, \"\", props, media);\n });\n });\n }\n\n if (skipEvent !== true) {\n CP_Customizer.trigger('UPDATE_SECTIONS_LIST');\n }\n }\n\n return {\n index: index,\n $content: $content\n };\n };\n\n var $sectionsList = $(\"#page_full_rows\");\n\n $sectionsList.sortable({\n scroll: true,\n appendTo: \"body\",\n axis: 'y',\n handle: '.reorder-handler',\n start: function (event, ui) {\n ui.placeholder.width(ui.item[0].offsetWidth);\n ui.placeholder.height(ui.item[0].offsetHeight);\n startPosition = ui.item.index();\n },\n sort: function (event, ui) {\n ui.helper.css({\n 'left': '18px',\n 'position': 'fixed',\n 'top': event.clientY\n });\n\n },\n stop: function (event, ui) {\n var node = CP_Customizer.preview.getRootNode().children('[data-id=\"' + ui.item.data('id') + '\"]');\n var nodes = CP_Customizer.preview.getRootNode().children('[data-id]').not(node);\n var prevNode;\n var newPos = ui.item.index();\n //get dropped node gutenberg comments\n var startCommentNode = CP_Customizer.preview.getGutenbergBlockCommentStart(node.get(0));\n var endCommentNode = CP_Customizer.preview.getGutenbergBlockCommentEnd(node.get(0));\n \n //get dropped node sibling \n if (newPos < nodes.length) {\n prevNode = nodes.eq(newPos);\n } else {\n prevNode = nodes.last();\n }\n\n //get dropped node sibling gutenberg comments\n var prevNodeCommentNode = CP_Customizer.preview.getGutenbergBlockCommentStart(prevNode.get(0));\n var prevNodeEndCommentNode = CP_Customizer.preview.getGutenbergBlockCommentEnd(prevNode.get(0));\n\n\n if (newPos < nodes.length) {\n nodes.eq(newPos).before(node);\n } else {\n nodes.last().after(node);\n }\n\n //reorder gutenberg comments to not break gutenberg sections\n $(startCommentNode).insertBefore(node);\n $(endCommentNode).insertAfter(node);\n\n $(prevNodeCommentNode).insertBefore(prevNode);\n $(prevNodeEndCommentNode).insertAfter(prevNode);\n\n CP_Customizer.setContent();\n }\n });\n\n $sectionsList.on('click', '.full_row .item-remove', function (event) {\n event.preventDefault();\n var sectionID = $(this).parents('.item').data('id');\n var node = CP_Customizer.preview.getSectionByDataId(sectionID);\n var exportID = CP_Customizer.preview.getNodeExportId(node);\n var anchor = node.attr('id');\n\n $(this).parents('.item').fadeOut(200);\n CP_Customizer.hooks.doAction('before_section_remove', $(node));\n $(node).remove();\n $(this).parents('.item').remove();\n\n $('[data-type=\"row-list-control\"] [data-name=\"page_content\"] [data-id=\"' + exportID + '\"]').removeClass('already-in-page');\n CP_Customizer.updateState(false, false);\n CP_Customizer.overlays.hideMovableOverlays();\n\n if (CP_Customizer.menu.anchorExistsInPrimaryMenu(anchor)) {\n CP_Customizer.menu.removeAnchorFromPrimaryMenu(anchor);\n }\n });\n\n\n var labelChange = _.debounce(function () {\n var $item = $(this).closest('.full_row');\n var node = CP_Customizer.preview.getSectionByDataId($item.data('id'));\n var oldValue = node.attr('data-label');\n var value = this.value.trim();\n\n if (value === oldValue) {\n return;\n }\n\n if (value.length === 0) {\n value = oldValue;\n this.value = oldValue;\n }\n\n node.attr('data-label', value);\n node.data('label', value);\n\n var slug = CP_Customizer.getSlug(value);\n\n if (!slug) {\n return;\n }\n\n if (CP_Customizer.preview.getRootNode().find('[id=\"' + slug + '\"]').length) {\n var found = false,\n index = 1;\n while (!found) {\n if (CP_Customizer.preview.getRootNode().find('[id=\"' + slug + '-' + index + '\"]').length === 0) {\n slug += '-' + index;\n found = true;\n } else {\n index++;\n }\n }\n }\n var oldId = node.attr('id');\n node.attr('id', slug);\n $(this).siblings('.anchor-info').text('#' + slug);\n\n if (CP_Customizer.menu.anchorExistsInPrimaryMenu(oldId)) {\n CP_Customizer.menu.updatePrimaryMenuAnchor(oldId, {\n anchor: slug,\n title: value\n });\n }\n\n CP_Customizer.setContent();\n }, 500);\n\n\n $sectionsList.on('keyup', '.full_row input', labelChange);\n\n $sectionsList.on('dblclick', '.anchor-info', function () {\n this.contentEditable = true;\n });\n\n $sectionsList.on('keypress', '.anchor-info', function (event) {\n\n if (event.which === 13) {\n event.preventDefault();\n event.stopPropagation();\n this.contentEditable = false;\n }\n\n });\n\n $sectionsList.on('focusout', '.anchor-info', function () {\n var slug = $(this).text();\n slug = CP_Customizer.getSlug(slug);\n $(this).text('#' + slug);\n\n var $item = $(this).closest('.full_row');\n var node = CP_Customizer.preview.getSectionByDataId($item.data('id'));\n var oldId = node.attr('id');\n node.attr('id', slug);\n node.attr('id', slug);\n if (CP_Customizer.menu.anchorExistsInPrimaryMenu(oldId)) {\n CP_Customizer.menu.updatePrimaryMenuAnchor(oldId, {\n anchor: \"#\" + slug,\n title: $item.find('input.item-label').val()\n });\n }\n\n this.contentEditable = false;\n CP_Customizer.setContent();\n });\n\n\n $sectionsList.on('click', '.full_row .item-menu-visible', function (event) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n\n var $item = $(this).closest('.full_row'),\n $node = CP_Customizer.preview.getSectionByDataId($item.data('id'));\n\n if (false === CP_Customizer.menu.getPrimaryMenuID()) {\n CP_Customizer.menu.createPrimaryMenu();\n }\n\n var anchor = $node.attr('id');\n var label = $node.attr('data-label');\n\n if (CP_Customizer.menu.anchorExistsInPrimaryMenu(anchor)) {\n CP_Customizer.menu.removeAnchorFromPrimaryMenu(anchor);\n $(this).removeClass('active');\n } else {\n CP_Customizer.menu.addAnchorToPrimaryMenu(anchor, label);\n $(this).addClass('active');\n }\n });\n\n function focusSection(item) {\n\n var section = CP_Customizer.preview.getSectionByDataId($(item).data('id'));\n\n CP_Customizer.preview.find('html,body').animate({\n scrollTop: section.offset().top\n }, 500);\n\n $(item).addClass('focused').siblings().removeClass('focused');\n\n CP_Customizer.trigger('section_focused', section);\n }\n\n $sectionsList.on('click', '.full_row .item-settings', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var customizerSection = $(this).attr('data-setting');\n\n var section = CP_Customizer.preview.getSectionByDataId($(this).closest('.full_row').data('id'));\n\n if (CP_Customizer.isRightSidebarVisible(customizerSection)) {\n CP_Customizer.hideRightSidebar();\n }\n\n CP_Customizer.openRightSidebar(customizerSection, {\n floating: CP_Customizer.hooks.applyFilters('content_section_setting_float', true),\n y: $(this).offset().top,\n section: section\n });\n\n focusSection($(this).closest('.full_row'));\n\n });\n\n\n $sectionsList.on('click', '.full_row', function () {\n\n var section = CP_Customizer.preview.getSectionByDataId($(this).data('id'));\n\n if (!section.length) {\n return;\n }\n\n focusSection($(this));\n\n CP_Customizer.hideRightSidebar();\n\n\n });\n\n var skipableKeyCodes = [8, 46, 16, 17, 18];\n var labelValidaton = function (event) {\n\n if (skipableKeyCodes.indexOf(event.keyCode) === -1 && event.key.length === 1) {\n if (!event.key.match(/[A-Za-z0-9\\s]/)) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n $sectionsList.on('keydown', '.full_row input', labelValidaton);\n \n var gutenbergCounter = 1;\n var isGutenbergSection = false;\n function getListModel(elem) {\n var $node = $(elem);\n \n //add gutenberg sections to list\n isGutenbergSection = false;\n if ($node.attr(\"class\") && $node.attr(\"class\").indexOf(\"wp-block\") !== -1 || elem.tagName == \"P\")\n {\n var gutenbergId = \"gutenberg-section-\" + gutenbergCounter++;\n $node.attr({\"id\": gutenbergId, \"data-id\": gutenbergId, \"data-export-id\": gutenbergId, \"data-label\" :\"Gutenberg\"});\n isGutenbergSection = true;\n }\n\n var \n label = $node.attr('data-label') || $node.attr('id'),\n id = $node.attr('id') || \"\",\n sectionID = $node.attr('data-id'),\n exportID = $node.attr('data-export-id'),\n inMenu = CP_Customizer.menu.anchorExistsInPrimaryMenu(id),\n setting = $node.attr('data-setting') ? $node.attr('data-setting') : false;\n setting = CP_Customizer.hooks.applyFilters('content_section_setting', setting);\n\n return {\n label: label,\n id: id,\n setting: (isGutenbergSection? false : setting),\n sectionID: sectionID,\n exportID: exportID,\n inMenu: inMenu\n };\n }\n\n var openedSectionsCategories = {};\n\n function updateSectionsList() {\n var data = CP_Customizer.preview.getRootNode().children().map(function (index, elem) {\n return getListModel(elem);\n });\n\n $sectionsList.children('.item.full_row').remove();\n\n var availableRowsList = $('[data-type=\"row-list-control\"] [data-name=\"page_content\"]');\n var $controlItems = availableRowsList.find('li.available-item');\n\n var allowMultiple = (availableRowsList.closest('[data-selection=\"multiple\"]').length > 0);\n\n\n function openCategory($category) {\n var $this = $($category);\n\n var $items = $this.data('items');\n\n if (!$items || $items.length === 0) {\n $items = $this.nextUntil('li.category-title', 'li.available-item');\n $this.data('items', $items);\n }\n\n $items.fadeIn(50);\n $this.attr('data-item-open', 1);\n $this.removeAttr('data-item-closed');\n openedSectionsCategories[$this.attr('data-category')] = true;\n }\n\n function closeCategory($category) {\n var $this = $($category);\n\n var $items = $this.data('items');\n\n if (!$items || $items.length === 0) {\n $items = $this.nextUntil('li.category-title', 'li.available-item');\n $this.data('items', $items);\n }\n\n $items.fadeOut(50);\n $this.removeAttr('data-item-open');\n $this.attr('data-item-closed', 1);\n openedSectionsCategories[$this.attr('data-category')] = false;\n }\n\n\n var $categoryTitles = availableRowsList.find('li.category-title');\n $categoryTitles.addClass('closeable');\n $categoryTitles.each(function (index) {\n if (!$(this).attr('data-item-closed')) {\n $(this).attr('data-item-open', 1);\n }\n\n if (index > 1 && !openedSectionsCategories[$(this).attr('data-category')]) {\n closeCategory($(this));\n }\n }\n );\n\n $categoryTitles.off('click').on('click', function () {\n\n\n if ($(this).attr('data-item-open')) {\n closeCategory($(this));\n } else {\n openCategory($(this));\n }\n });\n\n\n data.each(function (index, _data) {\n\n // ignore elements injected by plugins and that do not match the companion structure\n if (!_data.exportID) {\n return;\n }\n\n $sectionsList.children('.empty').before(listItemTemplate(_data));\n\n\n if (allowMultiple && !data.once) {\n return;\n }\n\n $controlItems.filter('[data-id=\"' + _data.exportID + '\"]').addClass('already-in-page');\n });\n\n\n availableRowsList.parent().off('cp.item.click').on('cp.item.click', function (event, itemID, enabled) {\n var $ = CP_Customizer.preview.jQuery();\n var data = CP_Customizer.pluginOptions.contentSections[itemID];\n\n if (data['pro-only']) {\n\n CP_Customizer.popUpInfo(window.CP_Customizer.translateCompanionString('This item requires PRO theme'),\n '<div class=\"pro-popup-preview-container\">' +\n ' <img class=\"pro-popup-preview-image\" src=\"' + data.preview + '\">' +\n ' <h3>' + window.CP_Customizer.translateCompanionString('This item is available only in the PRO version') + '</h3>' +\n ' <p>' + window.CP_Customizer.translateCompanionString('Please upgrade to the PRO version to use this item and many others.') + '</p>' +\n ' <br/>' +\n ' <a href=\"https://extendthemes.com/go/materialis-upgrade\" class=\"button button-orange\" target=\"_blank\">' +\n window.CP_Customizer.translateCompanionString('Upgrade to PRO') + '</a> ' +\n '</div>'\n );\n\n return;\n }\n\n var response = CP_Customizer.preview.insertSectionFromData(data, true);\n\n var _data = getListModel(response.$content);\n\n var $listChildren = $sectionsList.children().not('.empty')\n if (!_.isUndefined(response.index) && $listChildren.length) {\n $listChildren.eq(response.index).before(listItemTemplate(_data));\n } else {\n $sectionsList.children('.empty').before(listItemTemplate(_data));\n }\n });\n }\n\n CP_Customizer.bind('PREVIEW_LOADED', updateSectionsList);\n CP_Customizer.bind('UPDATE_SECTIONS_LIST', updateSectionsList);\n\n CP_Customizer.bind(CP_Customizer.events.RIGHT_SECTION_CLOSED, function (ev, sidebar) {\n $contentLi.find('.cp-add-section.active').removeClass('active');\n });\n\n CP_Customizer.bind('content.section.hovered', function (event, $el) {\n var sectionId = $el.attr('data-id');\n var $item = $sectionsList.find('[data-id=\"' + sectionId + '\"]');\n $item.addClass('focused').siblings().removeClass('focused');\n\n if (!$item.length) {\n return;\n }\n\n $item[0].scrollIntoViewIfNeeded();\n });\n\n });\n})(jQuery, window);\n","(function () {\n var __templates = {};\n\n var templateOptions = {\n evaluate: /<#([\\s\\S]+?)#>/g,\n interpolate: /\\{\\{\\{([\\s\\S]+?)\\}\\}\\}/g,\n escape: /\\{\\{([^\\}]+?)\\}\\}(?!\\})/g\n // variable: 'data'\n };\n\n function template(text) {\n text = text.split('<inline-script').join('<script');\n text = text.split('</inline-script').join('</script');\n\n return _.template(text, templateOptions);\n }\n\n function getCPTemplate(id) {\n var text = jQuery(\"#cp-content-templates-\" + id)[0].innerHTML;\n\n return template(text);\n }\n\n window.CP_Customizer.addModule(function (CP_Customizer) {\n var contentTemplates = {\n text: getCPTemplate(\"text\"),\n 'text-with-checkbox': getCPTemplate(\"text-with-checkbox\"),\n link: getCPTemplate(\"link\"),\n image: getCPTemplate(\"image\"),\n icon: getCPTemplate(\"icon\"),\n list: getCPTemplate(\"list\"),\n 'linked-icon': getCPTemplate(\"linked-icon\"),\n getCPScriptTemplate: getCPTemplate\n };\n\n CP_Customizer.jsTPL = _.extend(CP_Customizer.jsTPL, contentTemplates);\n\n CP_Customizer.jsTPL['select'] = template('' +\n '<li class=\"customize-control customize-control-text\">' +\n ' <label>' +\n ' <span class=\"customize-control-title\">{{{ label }}}</span>' +\n ' <select type=\"text\" id=\"{{{ id }}}\">' +\n ' <# jQuery.each(choices,function(index,value){ #>' +\n ' <option value=\"{{{ value }}}\" ><# print(CP_Customizer.translateCompanionString(index)) #></option>' +\n ' <# }) #>' +\n ' </select>' +\n ' <script>' +\n ' jQuery(\"#{{ id }}\").val(\"{{{ value }}}\") ' +\n ' </script>' +\n ' </label>' +\n '</li>' +\n '');\n\n\n CP_Customizer.jsTPL['selectize'] = template('' +\n ' <li class=\"customize-control customize-control-text\">' +\n ' <label>' +\n ' <span class=\"customize-control-title\">{{{ label }}}</span>' +\n ' <select {{ (data.multiple ? \\'multiple\\' : \\'\\') }} id=\"{{{ id }}}\">' +\n ' <# var choices = _.isFunction(data.choices) ? data.choices() : data.choices #>' +\n ' <# _.each(choices, function(label, _v) { ' +\n ' var Vs = _.isArray(value) ? value: value.split(\\',\\').map(function(item){return item.trim()});' +\n ' var isSelected = (Vs.indexOf(_v) !== -1)' +\n ' #>' +\n ' <option {{ ( isSelected ? \"selected=\\'true\\' \": \"\" ) }} value=\"{{{ _v }}}\">' +\n ' {{{ label }}}' +\n ' </option>' +\n ' <# }); #>' +\n ' </select>' +\n ' </label>' +\n ' <script>' +\n ' jQuery(\"#{{ id }}\").selectize({' +\n ' maxItems: {{ (data.multiple ? \"null\" : \"1\") }},' +\n ' plugins: {{{ (data.multiple ? \"[\\'remove_button\\']\" : \"[]\") }}}' +\n ' })' +\n ' </script>' +\n '</li>' +\n '');\n\n CP_Customizer.jsTPL['selectize-remote'] = template('' +\n '<li class=\"customize-control customize-control-selectize-remote\">' +\n ' <label>' +\n ' <span class=\"customize-control-title\">{{{ label }}}</span>' +\n ' <select id=\"{{{ id }}}\"></select>' +\n ' </label>' +\n '</li>' +\n '');\n\n\n CP_Customizer.jsTPL['checkbox'] = template('' +\n '<li class=\"customize-control customize-control-checkbox\">' +\n ' <span class=\"customize-control-title\">{{{ label }}}</span>' +\n ' <div style=\"clear: both\">' +\n ' <label for=\"{{{ id }}}\">\\n' +\n ' <input {{ (value?\"checked=\\'true\\'\":\"\") }} id=\"{{{ id }}}\" type=\"checkbox\">{{ text }}' +\n ' </label>' +\n ' </div>' +\n '</li>' +\n '');\n\n CP_Customizer.jsTPL.compile = template;\n });\n})();","(function () {\n window.CP_Customizer.addModule(function (CP_Customizer) {\n\n var iconStyles = [\n {\n value: 'normal',\n label: window.CP_Customizer.translateCompanionString('Normal'),\n classes: 'normal-shape'\n },\n {\n value: 'round-bg',\n label: window.CP_Customizer.translateCompanionString('Rounded background'),\n classes: 'reverse round'\n },\n {\n value: 'bordered',\n label: window.CP_Customizer.translateCompanionString('Bordered'),\n classes: 'bordered round'\n }\n ];\n\n\n var iconSizes = [\n {\n value: 'small',\n label: window.CP_Customizer.translateCompanionString('Small'),\n classes: 'small'\n },\n {\n value: 'normal',\n label: window.CP_Customizer.translateCompanionString('Normal'),\n classes: 'normal-size'\n },\n {\n value: 'big',\n label: window.CP_Customizer.translateCompanionString('Large'),\n classes: 'big'\n },\n {\n value: 'large',\n label: window.CP_Customizer.translateCompanionString('Extra Large'),\n classes: 'large'\n }\n ];\n\n function setIconStyle(style, $icon) {\n var toRemove = iconStyles.map(function (style) {\n return style.classes;\n });\n\n var toAdd = \"\";\n\n iconStyles.forEach(function (iconStyle) {\n if (iconStyle.value === style) {\n toAdd = iconStyle.classes\n }\n });\n\n $icon.removeClass(toRemove.join(' ')).addClass(toAdd);\n\n }\n\n function getIconStyle($icon) {\n var result = 'normal';\n\n iconStyles.forEach(function (style) {\n if (style.classes.trim()) {\n var selector = CP_Customizer.utils.normalizeClassAttr(style.classes, true);\n if ($icon.is(selector)) {\n result = style.value;\n }\n }\n });\n return result;\n }\n\n\n function setIconSize(size, $icon) {\n var toRemove = iconSizes.map(function (size) {\n return size.classes;\n });\n\n var toAdd = \"\";\n\n iconSizes.forEach(function (iconSize) {\n if (iconSize.value === size) {\n toAdd = iconSize.classes\n }\n });\n\n $icon.removeClass(toRemove.join(' ')).addClass(toAdd);\n\n }\n\n function getIconSize($icon) {\n var result = 'normal';\n\n iconSizes.forEach(function (size) {\n if (size.classes.trim()) {\n var selector = CP_Customizer.utils.normalizeClassAttr(size.classes, true);\n if ($icon.is(selector)) {\n result = size.value;\n }\n }\n });\n return result;\n }\n\n\n // normal texts panel\n CP_Customizer.addContainerDataHandler(CP_Customizer.TEXT_ELEMENTS, function ($el) {\n var label = window.CP_Customizer.translateCompanionString($el.attr('data-popup-label') || \"\");\n var result = [\n\n {\n label: label || window.CP_Customizer.translateCompanionString(\"Text\"),\n type: \"text\",\n value: $el.text().trim()\n }\n ];\n\n if ($el.parent().is('a') || $el.is('.mdi')) {\n return [];\n }\n\n return result;\n\n }, function ($el, value, type, field) {\n switch (type) {\n case \"text\":\n var html = CP_Customizer.utils.htmlDecode($el.html()).replace(field.value, value);\n $el.html(html);\n break;\n }\n });\n\n // containers selector\n CP_Customizer.preview.addDataContainerSelector('[data-hover-fx]');\n\n // link panel;\n CP_Customizer.addContainerDataHandler('a', function ($el) {\n var linkIsShortcode = $el.is('[data-attr-shortcode^=\"href:\"]');\n\n var hasClass = ($el.attr('class') || \"\").trim().length > 0;\n\n var result = [\n\n {\n label: (hasClass ? window.CP_Customizer.translateCompanionString(\"Button\") : window.CP_Customizer.translateCompanionString(\"Link\"))\n + \" \" + window.CP_Customizer.translateCompanionString(\"Text\"),\n type: \"text\",\n value: $el.text().trim()\n }\n ];\n\n if (!linkIsShortcode) {\n result.push({\n label: window.CP_Customizer.translateCompanionString(\"Link\"),\n type: \"link\",\n value: {\n link: CP_Customizer.preview.cleanURL($el.attr('href') || \"\"),\n target: $el.attr('target') || \"_self\"\n }\n });\n }\n\n return result;\n\n }, function ($el, value, type, field) {\n switch (type) {\n case \"link\":\n $el.attr('href', value.link);\n $el.attr('target', value.target);\n\n $el.attr('data-cp-link', 1);\n\n break;\n case \"text\":\n if (!field.name) {\n var html = CP_Customizer.utils.htmlDecode($el.html()).replace(field.value, value);\n $el.html(html);\n }\n break;\n }\n });\n\n\n // list panel;\n CP_Customizer.addContainerDataHandler('ul', function ($el) {\n var items = $el.children('li');\n\n items = items.map(function (index, item) {\n return {\n \"label\": window.CP_Customizer.translateCompanionString(\"Item\") + \" \" + index,\n \"value\": jQuery(item).html(),\n \"id\": \"item_\" + index\n }\n })\n\n var result = {\n label: window.CP_Customizer.translateCompanionString(\"List items\"),\n type: \"list\",\n value: items,\n getValue: function ($control) {\n var items = [];\n $control.children().each(function () {\n items.push(jQuery(this).find('.item-editor').val());\n })\n return items;\n }\n }\n\n return result;\n\n }, function ($el, items, type) {\n\n var orig = $el.children().eq(0).clone();\n $el.empty();\n\n for (var i = 0; i < items.length; i++) {\n var $item = orig.clone();\n $item.html(items[i]);\n $el.append($item);\n }\n });\n\n // image link panel\n CP_Customizer.addContainerDataFilter(function ($el) {\n return !($el.is('a') && $el.children().is('img'));\n });\n\n CP_Customizer.addContainerDataHandler('img', function ($el) {\n\n var mediaType = \"image\",\n mediaData = false;\n\n if ($el.attr('data-size')) {\n mediaType = \"cropable\";\n var size = $el.attr('data-size').split('x');\n\n var section = CP_Customizer.preview.getNodeSection($el);\n var sectionExports = CP_Customizer.getSectionExports(section);\n\n var flexible = _.isUndefined(sectionExports.maintainCropPropotion) ? true : sectionExports.maintainCropPropotion;\n\n if ($el.is('[data-size-flexible=false]')) {\n flexible = false;\n }\n\n mediaData = {\n width: size[0],\n height: size[1],\n flexible: flexible\n };\n }\n\n\n var image = [{\n label: window.CP_Customizer.translateCompanionString(\"Image\"),\n mediaType: mediaType,\n mediaData: mediaData,\n type: \"image\",\n value: ($el[0].currentSrc || $el.attr('src'))\n }];\n\n if ($el.parent().is('a')) {\n image.push({\n label: window.CP_Customizer.translateCompanionString(\"Link\"),\n type: \"link\",\n value: {\n link: CP_Customizer.preview.cleanURL($el.parent().attr('href') || \"\"),\n target: $el.parent().attr('target') || \"_self\"\n }\n });\n }\n return image;\n\n }, function ($el, value, type) {\n switch (type) {\n case 'image':\n $el.attr(\"src\", value);\n $el.removeAttr('srcset');\n $el.removeAttr('src-orig');\n $el.removeAttr('width');\n $el.removeAttr('height');\n break;\n case 'link':\n $el.parent().attr('href', value.link);\n $el.parent().attr('target', value.target);\n break;\n }\n });\n\n // data-bg=[image]\n\n function getLinkFromBgImageValue(value) {\n value = value.replace(/url\\((.*)\\)/, \"$1\");\n return CP_Customizer.utils.phpTrim(value, \"\\\"'\");\n }\n\n CP_Customizer.addContainerDataHandler('[data-bg=image]', function ($el) {\n\n var mediaType = \"image\",\n mediaData = false;\n\n if ($el.attr('data-size')) {\n mediaType = \"cropable\";\n var size = $el.attr('data-size').split('x');\n mediaData = {\n width: size[0],\n height: size[1]\n };\n }\n\n\n return [{\n label: window.CP_Customizer.translateCompanionString(\"Background Image\"),\n mediaType: mediaType,\n mediaData: mediaData,\n type: \"image\",\n value: getLinkFromBgImageValue($el.css('background-image'))\n }];\n\n }, function ($el, value, type) {\n switch (type) {\n case 'image':\n $el.css(\"background-image\", 'url(\"' + value + '\")');\n break;\n }\n });\n\n\n // material icons icon with link\n\n CP_Customizer.addContainerDataFilter(function ($el) {\n return !($el.children().is('i.mdi') && $el.is('a'));\n });\n\n var mdiIconRegexp = /mdi\\-[a-z\\-]+/ig;\n\n CP_Customizer.addContainerDataHandler('a i.mdi', function ($el) {\n\n var mediaType = \"icon\",\n mediaData = false;\n\n var result = [{\n label: window.CP_Customizer.translateCompanionString(\"Material Icon\"),\n mediaType: mediaType,\n mediaData: mediaData,\n canHide: true,\n type: \"linked-icon\",\n value: {\n icon: $el.attr('class').match(mdiIconRegexp).pop(),\n link: CP_Customizer.preview.cleanURL($el.parent().attr('href') || \"\"),\n target: $el.parent().attr('target') || \"_self\",\n visible: CP_Customizer.preview.isNodeVisible($el.parent())\n }\n }];\n\n if ($el.parent().is('.read-more')) {\n result = [{\n label: window.CP_Customizer.translateCompanionString(\"Text\"),\n type: \"text\",\n value: $el.parent().text().trim()\n }, {\n label: window.CP_Customizer.translateCompanionString(\"Link\"),\n type: \"link\",\n value: {\n link: CP_Customizer.preview.cleanURL($el.parent().attr('href') || \"\"),\n target: $el.parent().attr('target') || \"_self\"\n }\n }]\n\n }\n\n return result;\n\n\n }, function ($el, value, type, field) {\n\n if (type === \"linked-icon\") {\n var classValue = $el.attr('class');\n classValue = classValue.replace(/mdi\\-[a-z\\-]+/ig, \"\") + \" \" + value.icon;\n $el.attr('class', classValue);\n\n $el.parent().attr('href', value.link);\n $el.parent().attr('target', value.target);\n\n value.visible = _.isUndefined(value.visible) ? true : value.visible;\n\n if (value.visible) {\n CP_Customizer.preview.showNode($el.parent());\n } else {\n CP_Customizer.preview.hideNode($el.parent());\n }\n }\n\n if (type === \"link\") {\n $el.parent().attr('href', value.link);\n $el.parent().attr('target', value.target);\n $el.parent().attr('data-cp-link', 1);\n }\n if (type === \"text\") {\n $el.parent().html(value).append($el);\n }\n });\n\n\n CP_Customizer.addContainerDataHandler('i.mdi', function ($el) {\n\n var mediaType = \"icon\",\n mediaData = false;\n\n return [{\n label: window.CP_Customizer.translateCompanionString(\"Material Icon\"),\n mediaType: mediaType,\n mediaData: mediaData,\n canHide: $el.closest('[data-type=group]').length > 0,\n type: \"icon\",\n styles: iconStyles,\n sizes: iconSizes,\n value: {\n icon: $el.attr('class').match(mdiIconRegexp).pop(),\n style: getIconStyle($el),\n size: getIconSize($el),\n visible: CP_Customizer.preview.isNodeVisible($el)\n }\n }];\n\n\n }, function ($el, value, type, prop) {\n if (type === \"icon\") {\n var classValue = $el.attr('class');\n classValue = classValue.replace(/mdi\\-[a-z\\-]+/ig, \"\") + \" \" + value.icon;\n $el.attr('class', classValue);\n\n value.visible = _.isUndefined(value.visible) ? true : value.visible;\n\n if (value.visible) {\n // $el.removeAttr('data-reiki-hidden');\n CP_Customizer.preview.showNode($el);\n } else {\n CP_Customizer.preview.hideNode($el);\n }\n\n setIconStyle(value.style, $el);\n setIconSize(value.size, $el);\n }\n\n });\n\n\n });\n})();\n","/* global top */\n\n(function (root, CP_Customizer, $) {\n\n function newColumnContent() {\n /*\n <div data-cpid=\"new\" class=\"column_28\" reveal-fx=\"RevealFX115\" data-scrollreveal=\"RevealFX115\">\n <img width=\"184\" height=\"174\" src=\"@@ROOT@@/wp-content/themes/reiki-dragdrop/images/icon1.png\" data-content-code-editable=\"true\" data-content-editable=\"true\" contenteditable=\"true\">\n <h4 data-content-code-editable=\"true\" data-content-editable=\"true\" contenteditable=\"true\">ON CANVAS TEXT EDITING</h4>\n <p class=\"small_text1\" data-content-code-editable=\"true\" data-content-editable=\"true\" contenteditable=\"true\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n </div>\n */\n }\n\n var unwrapComment = /\\/\\*!?(?:\\@preserve)?[ \\t]*(?:\\r\\n|\\n)([\\s\\S]*?)(?:\\r\\n|\\n)\\s*\\*\\//;\n\n function getFunctionCommentTemplate(fn) {\n //return typeof fn === 'function' ? unwrapComment.exec(fn.toString())[1] : fn;\n if (typeof fn === 'function')\n {\n var exec = unwrapComment.exec(fn.toString());\n if (exec) return exec[1];\n } \n return fn;\n }\n\n CP_Customizer.addModule(function (CP_Customizer) {\n var $ = jQuery; // use global jquery until preview is ready\n\n CP_Customizer.bind(CP_Customizer.events.PREVIEW_LOADED, function () {\n // add preview jquery spectrum plugin\n // use preview jQuery as the $ for the next elements\n $ = CP_Customizer.preview.jQuery();\n $.fn.spectrum = root.jQuery.fn.spectrum;\n });\n\n function getColorComponent() {\n if ($('#cp-spectrum-keeper').length) {\n return $('#cp-spectrum-keeper');\n }\n\n var $template = $(\n ' <div id=\"cp-spectrum-picker\" class=\"picker\">' +\n ' <div class=\"bg-picker\">' +\n ' <h5 class=\"legend\">' + window.CP_Customizer.translateCompanionString('Background Color') + '</h5>' +\n ' <input name=\"color\" type=\"text\" />' +\n ' </div>');\n\n var colorPalette = root.CP_Customizer.data().bgColorPalette;\n $template.find('[name=color]').spectrum({\n flat: true,\n preferredFormat: \"hex\",\n showPaletteOnly: true,\n color: '#ffffff',\n palette: [colorPalette],\n move: function (color) {\n if (!color) {\n return;\n }\n var node = $(this).closest('.node-overlay').data().node;\n $(this).find('[name=color]').spectrum(\"set\", color.toString());\n $(node).css('background-color', color.toString());\n $(this).closest('.cog.active').removeClass('active');\n CP_Customizer.markSave();\n },\n change: function (color) {\n if (!color || !$(this).closest('.node-overlay').data()) {\n return;\n }\n $(this).find('[name=color]').spectrum(\"set\", color.toString());\n var node = $(this).closest('.node-overlay').data().node;\n $(node).css('background-color', color.toString());\n $(this).closest('.cog.active').removeClass('active');\n CP_Customizer.markSave();\n }\n });\n\n $template.find('[name=\"addImage\"]').click(function (event) {\n var node = $(this).closest('.node-overlay').data().node;\n CP_Customizer.openImageManager(function (image) {\n $(node).css('background-image', \"url(\" + image + \")\");\n CP_Customizer.markSave();\n });\n });\n\n\n $template.find('[name=\"removeImage\"]').click(function (event) {\n var node = $(this).closest('.node-overlay').data().node;\n $(node).css('background-image', \"none\");\n CP_Customizer.markSave();\n });\n\n\n $template.find('[name=\"coverImage\"]').click(function (event) {\n var node = $(this).closest('.node-overlay').data().node;\n\n if ($(this).hasClass('active')) {\n $(node).css('background-size', \"auto\");\n $(node).css('background-repeat', \"repeat\");\n } else {\n $(node).css('background-size', \"cover\");\n $(node).css('background-repeat', \"no-repeat\");\n }\n CP_Customizer.markSave();\n $(this).toggleClass('active');\n });\n\n function update() {\n\n var node = $(this).closest('.node-overlay').data().node;\n\n var backgroundColor = \"#\" + tinycolor($(node).css('background-color')).toHex();\n\n if (colorPalette.indexOf(backgroundColor) !== -1) {\n $(this).closest('.cog-subitems').removeClass('disabled');\n $(this).find('[name=color]').spectrum(\"set\", $(node).css('background-color'));\n\n } else {\n $(this).closest('.cog-subitems').addClass('disabled');\n var $reason = $(this).closest('.cog-subitems').children('p.disable-reason');\n\n if ($reason.length === 0) {\n $reason = $(\"<p class='disable-reason'> \" + window.CP_Customizer.translateCompanionString('This section has a custom background color') +\n \"<br/>\" + window.CP_Customizer.translateCompanionString('Background can be changed in PRO') + \"</p>\");\n $(this).closest('.cog-subitems').prepend($reason);\n }\n\n }\n\n // if ($(node).css('background-size') && $(node).css('background-size') === \"cover\") {\n // $template.find('[name=\"coverImage\"]').addClass('active');\n // } else {\n // $template.find('[name=\"coverImage\"]').removeClass('active');\n // }\n\n\n }\n\n $template.data('update', update.bind($template));\n return $template;\n }\n\n\n CP_Customizer.overlays.registerFixedOverlayOptions({\n 'section': {\n 'title': function (node) {\n var label = $(node).attr('data-label') ? $(node).attr('data-label') + \" [\" +\n window.CP_Customizer.translateCompanionString('Section') + \"]\" : window.CP_Customizer.translateCompanionString('SECTION');\n return label;\n },\n 'toolbarTitle': function (node) {\n var label = $(node).attr('data-label') ? $(node).attr('data-label') + \" [\" + window.CP_Customizer.translateCompanionString('Section') + \"]\" :\n window.CP_Customizer.translateCompanionString('SECTION');\n return label;\n },\n toolbar_binds: {\n hover: [\n function (event, overlay) {\n\n // layout toggle\n var $changerItem = overlay.find('[data-name=\"section_layout_width_changer\"]');\n\n if (!$(this).closest(CP_Customizer.preview.getPageContainerSelector()).length) {\n $changerItem.hide();\n } else {\n $changerItem.show();\n }\n\n if ($(this).children().is('.gridContainer')) {\n $changerItem.text( window.CP_Customizer.translateCompanionString('Make full width'));\n $changerItem.data('toMake', 'full');\n } else {\n $changerItem.text( window.CP_Customizer.translateCompanionString('Make Centered'));\n $changerItem.data('toMake', 'centered');\n }\n\n var $bgChanger = overlay.find('[data-name=\"page_background_image\"]');\n var $isTransparent = tinycolor(getComputedStyle($(this)[0]).backgroundColor).getAlpha() === 0;\n\n if ($isTransparent) {\n $bgChanger.show();\n } else {\n $bgChanger.hide();\n }\n },\n function () {\n }\n ]\n },\n 'items': [{\n 'name': 'section_layout_width_changer',\n 'title': window.CP_Customizer.translateCompanionString('Make full width'),\n 'on_click': function (node) {\n var toMake = $(this).data().toMake;\n switch (toMake) {\n case 'centered':\n $(node).children().not('[class*=\"section-separator\"]').addClass('gridContainer');\n break;\n case 'full':\n $(node).children().not('[class*=\"section-separator\"]').removeClass('gridContainer');\n break;\n }\n $(this).trigger('reiki.update_overlays');\n CP_Customizer.hooks.doAction('section_layout_changed', node, toMake);\n $(this).closest('.overlay-toolbar').trigger('mouseover');\n\n CP_Customizer.markSave();\n }\n }, {\n 'name': 'section_color_changer',\n 'title': window.CP_Customizer.translateCompanionString('Change background'),\n 'classes': 'subitems-arrow',\n 'on_hover': [function () {\n var $subitemsContainer = $(this).children('.cog-subitems').length ? $(this).children('.cog-subitems') : $(\"<div class='cog-subitems' />\");\n $brush = getColorComponent();\n\n $subitemsContainer.empty();\n $subitemsContainer.appendTo($(this));\n\n $subitemsContainer.append($brush);\n $brush.data('update')();\n }, function () {\n //console.log('hover out');\n }]\n\n }, {\n 'name': 'page_background_image',\n 'title': window.CP_Customizer.translateCompanionString('Change background Image'),\n 'on_click': function (event) {\n root.CP_Customizer.wpApi.control('background_image').focus();\n }\n }]\n },\n 'list': {\n 'nodeOverrider': function (node) {\n return $(node).is('[data-type=\"row\"]') ? $(node) : $(node).find('[data-type=\"row\"]').eq(0);\n },\n 'title': function (node) {\n var label = $(node).closest('[data-label]').length ? $(node).closest('[data-label]').attr('data-label') +\n \" [\" + window.CP_Customizer.translateCompanionString(\"List\") + \"]\" : window.CP_Customizer.translateCompanionString(\"List\");\n return label;\n },\n 'toolbarTitle': function (node) {\n var label = $(node).closest('[data-label]').length ? $(node).closest('[data-label]').attr('data-label') + \" [\" +\n window.CP_Customizer.translateCompanionString(\"List\") + \"]\" : window.CP_Customizer.translateCompanionString(\"List\");\n return label;\n },\n toolbar_binds: {\n hover: [\n function (event, overlay) {\n if ($(this).find('[data-type=\"row\"]').length || $(this).is('[data-type=\"row\"]')) {\n overlay.find('[data-category=\"list\"]').show();\n\n if ($(overlay.data('node')).find('[data-type=\"row\"]').is('[data-content-shortcode]')) {\n overlay.find('[data-name=\"row_add_item\"]').hide();\n overlay.find('[data-name=\"columns_reorder\"]').hide();\n } else {\n overlay.find('[data-name=\"row_add_item\"]').show();\n overlay.find('[data-name=\"columns_reorder\"]').show();\n\n }\n } else {\n overlay.find('[data-category=\"list\"]').hide();\n }\n },\n function (event, overlay) {\n }\n ]\n },\n 'items': [{\n 'name': 'row_add_item',\n 'title': window.CP_Customizer.translateCompanionString('Add item'),\n 'on_click': function (node) {\n var content = getFunctionCommentTemplate(newColumnContent);\n var $content;\n if (!$(node).children().length) {\n content = content.split(\"@@ROOT@@\").join(getWPLocation());\n $content = $(content);\n } else {\n $content = $(node).children('div').first().clone(false, false);\n }\n\n\n $content = root.CP_Customizer.preview.cleanNode($content);\n root.CP_Customizer.preview.insertNode($content, $(node));\n root.CP_Customizer.hooks.doAction('section_list_item_refresh');\n }\n }, {\n 'name': 'columns_per_row',\n 'title': window.CP_Customizer.translateCompanionString('Columns per row'),\n 'classes': 'subitems-arrow',\n 'on_hover': [function (node) {\n var $subitemsContainer = $(this).children('.cog-subitems').length ? $(this).children('.cog-subitems') : $(\"<div class='cog-subitems' />\");\n $subitemsContainer.empty();\n\n var cols = [1, 2, 3, 4, 6];\n\n if(node.is('[data-max-items]')) {\n var newCols = [];\n var maxCols = parseInt(node.attr('data-max-items'));\n for (var kc = 0; kc < cols.length; kc++) {\n if(cols[kc]<=maxCols) {\n newCols.push(cols[kc]);\n }\n }\n cols = newCols;\n }\n\n for (var i = 0; i < cols.length; i++) {\n var colNr = cols[i];\n var itemData = {\n 'title': colNr + (colNr > 1 ? \" \" +\n window.CP_Customizer.translateCompanionString(\"columns\") : \" \" +\n window.CP_Customizer.translateCompanionString(\"column\")),\n 'name': colNr + \"_columns\",\n 'on_click': function (node) {\n\n var columns = this.data('name').replace('_columns', '');\n var value = parseInt(columns);\n columns = parseInt(columns);\n columns = parseInt(12 / columns);\n\n\n if (node.is('[data-dynamic-columns]')) {\n var setting = node.attr('data-dynamic-columns');\n if (setting !== \"handled\") {\n\n root.CP_Customizer.setMod(setting, columns, \"refresh\");\n\n } else {\n\n CP_Customizer.hooks.doAction('dynamic_columns_handle', columns, node, value);\n\n }\n return;\n }\n\n root.CP_Customizer.markSave();\n var _class = 'col-md-' + columns,\n colsRegexp = /((cp[0-9]+cols)(\\s|$))|((col\\-md\\-[0-9]+)(\\s|$))/ig,\n currentDevice = root.CP_Customizer.preview.currentDevice();\n\n switch (currentDevice) {\n case \"tablet\":\n colsRegexp = /((cp[0-9]+cols\\-tablet)(\\s|$))|((col\\-sm\\-[0-9]+)(\\s|$))/ig;\n _class = 'col-sm-' + columns;\n break;\n\n case \"mobile\":\n colsRegexp = /((cp[0-9]+cols\\-mobile)(\\s|$))|((col\\-xs\\-[0-9]+)(\\s|$))/;\n _class = 'col-xs-' + columns;\n break;\n }\n\n $(node).children().each(function (index, el) {\n var $col = $(el),\n _classAttr = $col.attr('class');\n\n // remove existing cols:\n _classAttr = _classAttr.replace(colsRegexp, \"\");\n\n // add new class\n _classAttr += \" \" + _class + \" \";\n\n\n //remove not needed spaces in class attribute\n _classAttr = _classAttr.replace(/\\s\\s+/, \" \");\n $col.attr('class', _classAttr);\n\n\n });\n\n if (!$(node).hasClass('row')) {\n $(node).attr('class', 'row');\n }\n\n\n // wait for animations\n _.delay(root.CP_Customizer.overlays.updateAllOverlays, 600);\n }\n };\n\n var $button = root.CP_Customizer.overlays.getOverlayOptionButton(itemData, node);\n $subitemsContainer.append($button);\n }\n\n $subitemsContainer.appendTo($(this));\n }, function () {\n }]\n }, {\n 'name': 'columns_reorder',\n 'title': window.CP_Customizer.translateCompanionString('Reorder Items'),\n 'classes': 'subitems-arrow',\n 'on_hover': [function (node) {\n\n var $ = root.CP_Customizer.preview.jQuery();\n var $subitemsContainer = $(this).children('.cog-subitems').length ? $(this).children('.cog-subitems') : $(\"<div class='cog-subitems' />\");\n $subitemsContainer.empty();\n\n var itemsNo = $(node).children().length;\n for (var i = 0; i < itemsNo; i++) {\n var item = node.children().eq(i);\n var title = item.text().replace(/\\s\\s+/g, \" \").trim();\n\n\n title = title.trim().length ? title : \"\";\n\n if (!title && item.find('img').length) {\n title = CP_Customizer.utils.getFileInfo(item.find('img').eq(0).attr('src')).filename;\n }\n\n if (!title) {\n title = '[ ITEM ]';\n }\n\n title = title.replace(/(^.{1,10})(.*)$/, function (matches, firstMatch, secondMatch) {\n var result = (firstMatch || \"\").trim() + (secondMatch && secondMatch.length ? \"[...]\" : \"\");\n return result;\n });\n\n var itemData = {\n 'title': (i + 1) + ') ' + title,\n 'name': 'reorder_item_' + i,\n 'classes': 'sortable-item'\n };\n\n var $button = root.CP_Customizer.overlays.getOverlayOptionButton(itemData, item);\n $button.data('item', item);\n $subitemsContainer.append($button);\n }\n\n $subitemsContainer.appendTo($(this));\n $subitemsContainer.sortable({\n 'axis': 'y',\n 'start': function (event, ui) {\n ui.helper.css({\n 'position': 'fixed',\n 'transition': 'none',\n 'background-color': '#ffffff',\n 'left': ui.helper.offset().left + 'px'\n });\n\n ui.item.parent().addClass('big-heat-area');\n },\n sort: function (event, ui) {\n ui.helper.css('top', event.clientY);\n },\n 'stop': function (event, ui) {\n var index = ui.item.index();\n var node = jQuery(ui.item).data().item;\n root.CP_Customizer.preview.insertNode(node, node.parent(), index);\n ui.item.parent().removeClass('big-heat-area');\n }\n });\n }, function () {\n }]\n }]\n },\n 'column': {\n 'title': window.CP_Customizer.translateCompanionString('List item'),\n 'toolbarTitle': 'List item',\n 'node_binds': {\n 'hover': [function () {\n $(this).data().overlay.removeClass('hide');\n }, function () {\n $(this).data().overlay.addClass('hide');\n }]\n },\n 'items': [{\n 'name': 'row_remove_item',\n 'title': window.CP_Customizer.translateCompanionString('Remove Item'),\n 'on_click': function (node) {\n var $overlay = $($(node).data('overlay'));\n if ($overlay.data('node-observer')) {\n $overlay.data('node-observer').disconnect();\n }\n\n $overlay.remove();\n $(node).remove();\n $(this).trigger('reiki.update_overlays');\n root.CP_Customizer.markSave();\n }\n }]\n\n }\n });\n });\n\n function addSectionOverlay($nodes) {\n\n $nodes.addFixedOverlay({\n types: [\"section\", \"list\"],\n \"classes\": ['section-overlay']\n });\n\n }\n\n\n CP_Customizer.bind(CP_Customizer.events.ADD_FIXED_OVERLAYS, function (event, $startNode) {\n addSectionOverlay($startNode.find('[data-label]'));\n\n if ($startNode.is('[data-label]')) {\n _.delay(function () {\n addSectionOverlay($startNode);\n }, 0);\n }\n\n });\n})(window, CP_Customizer, jQuery);\n","(function (root, CP_Customizer, $) {\n\n CP_Customizer.addModule(function (CP_Customizer) {\n _.extend(CP_Customizer, {\n menu: {\n\n getGlobalOption: function(name, defaultValue){\n if (cpCustomizerGlobal && cpCustomizerGlobal.pluginOptions && cpCustomizerGlobal.pluginOptions.hasOwnProperty(name)) {\n return cpCustomizerGlobal.pluginOptions[name];\n }\n\n return defaultValue;\n },\n\n getPrimaryLocationModName: function() {\n var primaryLocation = this.getGlobalOption(\"primaryMenuLocation\", \"primary\");\n return 'nav_menu_locations[' + primaryLocation + ']';\n },\n\n getHomeUrl: function() {\n var primaryMenuHomeUrl = this.getGlobalOption(\"homeUrl\", CP_Customizer.preview.data().siteURL);\n return primaryMenuHomeUrl;\n },\n\n canSetPrimaryLocation: function() {\n var canSetPrimaryLocation = this.getGlobalOption(\"canSetPrimaryLocation\", true);\n return canSetPrimaryLocation;\n },\n\n getPrimaryLocationDefaultLanguageMenu: function() {\n var primaryLocationDefaultLanguageMenu = this.getGlobalOption(\"primaryLocationDefaultLanguageMenu\", -1);\n return primaryLocationDefaultLanguageMenu;\n },\n\n createPrimaryMenu: function () {\n var api = root.wp.customize;\n var customizeId,\n name = name || root.CP_Customizer.translateCompanionString(\"Main Menu\"),\n placeholderId = api.Menus.generatePlaceholderAutoIncrementId();\n\n customizeId = 'nav_menu[' + String(placeholderId) + ']';\n\n api.create(customizeId, customizeId, {}, {\n type: 'nav_menu',\n transport: api.Menus.data.settingTransport,\n previewer: api.previewer\n });\n\n api(customizeId).set($.extend({},\n api.Menus.data.defaultSettingValues.nav_menu, {\n name: name\n }\n ));\n\n\n menuSection = new api.Menus.MenuSection(customizeId, {\n params: {\n id: customizeId,\n panel: 'nav_menus',\n title: name,\n customizeAction: api.Menus.data.l10n.customizingMenus,\n type: 'nav_menu',\n priority: 10,\n menu_id: placeholderId\n }\n });\n api.section.add(customizeId, menuSection);\n\n if (this.canSetPrimaryLocation()) {\n // set location\n api(this.getPrimaryLocationModName()).set(placeholderId);\n }\n\n var defaultMenu = this.getPrimaryLocationDefaultLanguageMenu();\n\n if (defaultMenu !== -1) {\n wp.customize.bind(\"save-request-params\", function (query) {\n query.icl_translation_of = defaultMenu;\n return query;\n });\n }\n\n\n // create home page menu item;\n\n this.addAnchorToPrimaryMenu('#page-top', 'Home');\n },\n\n\n getPrimaryMenuID: function () {\n var menuId = wp.customize(this.getPrimaryLocationModName()).get();\n if (wp.customize('nav_menu[' + menuId + ']')) {\n return menuId;\n } else {\n return false;\n }\n },\n\n getPrimaryMenu: function () {\n var menuId = CP_Customizer.menu.getPrimaryMenuID();\n if (menuId !== false) {\n return wp.customize('nav_menu[' + menuId + ']').get();\n } else {\n return false;\n }\n },\n\n focusPrimaryMenuCustomize: function () {\n var menuId = CP_Customizer.menu.getPrimaryMenuID();\n if (menuId !== false) {\n wp.customize.section('nav_menu[' + menuId + ']').focus();\n return true;\n }\n\n return false;\n },\n\n getPrimaryMenuControl: function () {\n var api = root.wp.customize;\n var menuId = CP_Customizer.menu.getPrimaryMenuID();\n\n if (menuId) {\n return api.Menus.getMenuControl(menuId);\n } else {\n return false;\n }\n },\n\n addAnchorToPrimaryMenu: function (anchor, title) {\n var api = root.wp.customize;\n var customizeId, placeholderId, settingArgs, setting, menuItemControl, menuId, menuControl, position = 0,\n priority = 10;\n\n menuId = CP_Customizer.menu.getPrimaryMenuID();\n menuControl = CP_Customizer.menu.getPrimaryMenuControl();\n\n if (!menuId || !menuControl) {\n return;\n }\n\n _.each(menuControl.getMenuItemControls(), function (control) {\n if (false === control.setting()) {\n return;\n }\n priority = Math.max(priority, control.priority());\n if (0 === control.setting().menu_item_parent) {\n position = Math.max(position, control.setting().position);\n }\n });\n position += 1;\n priority += 1;\n\n var url = CP_Customizer.menu.getHomeUrl();\n if (anchor.replace(/#/, '').length) {\n url = CP_Customizer.preview.data().pageURL + \"#\" + anchor.replace(/#/, '');\n }\n\n var item = $.extend({},\n api.Menus.data.defaultSettingValues.nav_menu_item, {\n 'title': title,\n 'url': url,\n 'type': 'custom',\n 'type_label': api.Menus.data.l10n.custom_label,\n 'object': 'custom'\n }, {\n nav_menu_term_id: menuId,\n original_title: title,\n position: position\n });\n\n\n placeholderId = api.Menus.generatePlaceholderAutoIncrementId();\n customizeId = 'nav_menu_item[' + String(placeholderId) + ']';\n settingArgs = {\n type: 'nav_menu_item',\n transport: api.Menus.data.settingTransport,\n previewer: api.previewer\n };\n\n setting = api.create(customizeId, customizeId, {}, settingArgs);\n setting.set(item);\n\n menuItemControl = new api.controlConstructor.nav_menu_item(customizeId, {\n params: {\n type: 'nav_menu_item',\n content: '<li id=\"customize-control-nav_menu_item-' + String(placeholderId) + '\" class=\"customize-control customize-control-nav_menu_item\"></li>',\n section: menuControl.id,\n priority: priority,\n active: true,\n settings: {\n 'default': customizeId\n },\n menu_item_id: placeholderId\n },\n previewer: api.previewer\n });\n\n api.control.add(customizeId, menuItemControl);\n menuControl.debouncedReflowMenuItems();\n\n\n\n },\n\n anchorExistsInPrimaryMenu: function (anchor) {\n var menuControl = CP_Customizer.menu.getPrimaryMenuControl();\n\n if (!menuControl) {\n return false;\n }\n\n anchor = anchor.replace(/#/, '');\n\n var itemsControl = menuControl.getMenuItemControls();\n for (var i = 0; i < itemsControl.length; i++) {\n var itemControl = itemsControl[i];\n var url = (itemControl.setting.get().url || \"\").split(\"#\").pop().trim();\n if (url === anchor) {\n return true;\n }\n }\n\n return false;\n },\n\n\n updatePrimaryMenuAnchor: function (oldAnchor, options) {\n var menuControl = CP_Customizer.menu.getPrimaryMenuControl();\n\n if (!menuControl) {\n return false;\n }\n\n oldAnchor = oldAnchor.replace(/#/, '');\n var newAnchor = options.anchor.replace(/#/, '');\n var title = options.title;\n\n var itemsControl = menuControl.getMenuItemControls();\n for (var i = 0; i < itemsControl.length; i++) {\n var itemControl = itemsControl[i];\n var url = (itemControl.setting.get().url || \"\").split(\"#\").pop().trim();\n if (url === oldAnchor) {\n var itemData = itemControl.setting();\n if (itemData) {\n itemData = _.clone(itemData);\n itemData.title = title;\n itemData.url = CP_Customizer.preview.data().pageURL + \"#\" + newAnchor;\n itemControl.setting.set(itemData);\n return true;\n }\n }\n }\n\n return false;\n },\n\n removeAnchorFromPrimaryMenu: function (anchor) {\n var api = root.wp.customize;\n var menuControl = CP_Customizer.menu.getPrimaryMenuControl();\n\n if (!menuControl) {\n return false;\n }\n\n anchor = anchor.replace(/#/, '');\n\n var itemsControl = menuControl.getMenuItemControls();\n for (var i = 0; i < itemsControl.length; i++) {\n var itemControl = itemsControl[i];\n var url = (itemControl.setting.get().url || \"\").split(\"#\").pop();\n if (url === anchor) {\n itemControl.setting.set(false);\n api.control.remove(itemControl.id);\n return true;\n }\n }\n\n return false;\n }\n }\n });\n });\n\n})(window, CP_Customizer, jQuery);","(function (root, CP_Customizer, $) {\n CP_Customizer.addModule(function (CP_Customizer) {\n\n var panel = CP_Customizer.panels.pageContentPanel;\n\n\n $('body').on('click', '[data-name=\"page_content_panel\"] span.section-icon.setting.page-settings', function () {\n CP_Customizer.openRightSidebar('cp-current-page-settings');\n });\n\n function getRegisteredControls() {\n var controls_ids = $('[data-name=\"page_content_panel\"] .page-settings').attr('data-settings');\n var controls = [];\n controls_ids.split(',').forEach(function (id) {\n var _c = wp.customize.control(id);\n if (_c) {\n controls.push(_c);\n }\n });\n\n return controls;\n }\n\n\n panel.registerArea('general_page_settings', {\n\n $controlsHolder: null,\n\n refreshControls: function () {\n var controls = getRegisteredControls(),\n self = this;\n\n _.each(controls, function (c) {\n self.$controlsHolder.append(c.container);\n });\n },\n\n init: function ($container) {\n\n this.$controlsHolder = $(\"<ul/>\");\n $container.append($('<li/>').append(this.$controlsHolder));\n var self = this;\n\n self.refreshControls();\n\n wp.customize.bind('pane-contents-reflowed', function () {\n self.refreshControls();\n })\n }\n });\n });\n})(window, CP_Customizer, jQuery);\n"]}