diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index cf74562..2d611ee 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -12,7 +12,7 @@ jobs: run: npx eslint src - name: Run Mocha tests run: npx mocha - - name: Check if CookieMonster.js is built correctly + - name: Check if CookieMonster.js is built correctly run: | npx webpack -o ./tmp --env production if cmp <(head -n 2 dist/CookieMonster.js) <(head -n 2 tmp/CookieMonster.js); then diff --git a/.mocharc.json b/.mocharc.json index 8140681..91cead1 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -1,5 +1,5 @@ { - "recursive": true, - "require": ["esm", "ts-node/register"], - "reporter": "min" -} \ No newline at end of file + "recursive": true, + "require": ["esm", "ts-node/register"], + "reporter": "min" +} diff --git a/CookieMonster.user.js b/CookieMonster.user.js index a75d648..6734c35 100644 --- a/CookieMonster.user.js +++ b/CookieMonster.user.js @@ -4,16 +4,10 @@ // ==/UserScript== const readyCheck = setInterval(() => { - const Game = unsafeWindow.Game; + const Game = unsafeWindow.Game; - if ( - typeof Game !== "undefined" && - typeof Game.ready !== "undefined" && - Game.ready - ) { - Game.LoadMod( - "https://aktanusa.github.io/CookieMonster/CookieMonster.js" - ); - clearInterval(readyCheck); - } + if (typeof Game !== 'undefined' && typeof Game.ready !== 'undefined' && Game.ready) { + Game.LoadMod('https://aktanusa.github.io/CookieMonster/CookieMonster.js'); + clearInterval(readyCheck); + } }, 1000); diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index ab0c264..b34cb3f 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/./node_modules/@eastdesire/jscolor/jscolor.js","webpack://cookiemonster-mod/webpack/bootstrap","webpack://cookiemonster-mod/webpack/runtime/compat get default export","webpack://cookiemonster-mod/webpack/runtime/define property getters","webpack://cookiemonster-mod/webpack/runtime/hasOwnProperty shorthand","webpack://cookiemonster-mod/./src/Config/VariablesAndData.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleWrinklerButtons.js","webpack://cookiemonster-mod/./src/Data/Scales.ts","webpack://cookiemonster-mod/./src/Main/VariablesAndData.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/Beautify.js","webpack://cookiemonster-mod/./src/Cache/VariablesAndData.js","webpack://cookiemonster-mod/./src/Sim/VariablesAndData.js","webpack://cookiemonster-mod/./src/Disp/VariablesAndData.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimAuraMult.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimEff.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHas.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHasGod.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/SellBuilding.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/Buildings.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/UpdateUpgradeSectionsHeight.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/Upgrades.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/FormatTime.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/GetTimeColour.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetCPS.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetWrinkConfigBank.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/CreateDOMElements.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/BottomBar.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateBackground.js","webpack://cookiemonster-mod/./src/Config/SpecificToggles.js","webpack://cookiemonster-mod/./src/Cache/Dragon/CacheDragonAuras.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitAchievement.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitialBuildingData.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitUpgrade.js","webpack://cookiemonster-mod/./src/Sim/SimulationData/CopyData.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/CreateTooltip.js","webpack://cookiemonster-mod/./src/Cache/PP/ColourOfPP.js","webpack://cookiemonster-mod/./src/Cache/CPS/GetCPSBuffMult.js","webpack://cookiemonster-mod/./src/Sim/SimulationData/SimWin.js","webpack://cookiemonster-mod/./src/Sim/Calculations/CalculateGains.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js","webpack://cookiemonster-mod/./src/Data/Gamedata.ts","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHasAchiev.js","webpack://cookiemonster-mod/./src/Sim/Calculations/CheckOtherAchiev.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyBuildingBonusIncome.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleToolWarnPos.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/UpdateTooltips.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Building.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Upgrade.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/SugarLump.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetLumpColour.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Grimoire.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Warnings.js","webpack://cookiemonster-mod/./src/Disp/DrawHook.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/TimerBar.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/WrinklerTooltips.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Refreshmenu.js","webpack://cookiemonster-mod/./src/Main/ClickHook.js","webpack://cookiemonster-mod/./src/Cache/CPS/AverageQueue.js","webpack://cookiemonster-mod/./src/Cache/CPS/CPS.js","webpack://cookiemonster-mod/./src/Cache/PP/Building.js","webpack://cookiemonster-mod/./src/Cache/PP/PP.js","webpack://cookiemonster-mod/./src/Cache/PP/Upgrade.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyBuilding.js","webpack://cookiemonster-mod/./src/Cache/PriceAndIncome/PriceAndIncome.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyUpgrades.js","webpack://cookiemonster-mod/./src/Cache/Stats/ChainCookies.js","webpack://cookiemonster-mod/./src/Cache/Stats/HeavenlyChips.js","webpack://cookiemonster-mod/./src/Cache/Stats/MissingUpgrades.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateMissingUpgrades.js","webpack://cookiemonster-mod/./src/Cache/Stats/Reindeer.js","webpack://cookiemonster-mod/./src/Cache/Stats/Stats.js","webpack://cookiemonster-mod/./src/Cache/TillNextAchievement/AllAmountTillNextAchievement.js","webpack://cookiemonster-mod/./src/Cache/TillNextAchievement/IndividualAmountTillNextAchievement.js","webpack://cookiemonster-mod/./src/Cache/Wrinklers/Wrinklers.js","webpack://cookiemonster-mod/./src/Cache/CacheInit.js","webpack://cookiemonster-mod/./src/Data/SettingsDefault.ts","webpack://cookiemonster-mod/./src/Config/CheckNotificationPermissions.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleBotBar.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/RefreshScale.js","webpack://cookiemonster-mod/./src/Disp/TabTitle/FavIcon.js","webpack://cookiemonster-mod/./src/Data/SettingClasses/BaseSetting.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingColours.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingInputNumber.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingStandard.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingVolume.ts","webpack://cookiemonster-mod/./src/Data/SettingsData.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleDetailedTime.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleUpgradeBarAndColour.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleUpgradeBarFixedPos.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleGCTimer.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleSectionHideButtons.js","webpack://cookiemonster-mod/./src/InitSaveLoad/save.js","webpack://cookiemonster-mod/./src/Cache/Dragon/Dragon.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/GodChange.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitData.js","webpack://cookiemonster-mod/./src/InitSaveLoad/Variables.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Flash.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Sound.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Notification.js","webpack://cookiemonster-mod/./src/Main/LoopHook.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateAscendState.js","webpack://cookiemonster-mod/./src/Cache/CPS/NoGoldSwitchCPS.js","webpack://cookiemonster-mod/./src/Sim/Calculations/NoGoldenSwitchCalc.js","webpack://cookiemonster-mod/./src/Cache/PantheonGods/CacheGods.js","webpack://cookiemonster-mod/./src/Cache/CPS/SellChoEgg.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/SellBuildingForChoEgg.js","webpack://cookiemonster-mod/./src/Cache/CacheLoop.js","webpack://cookiemonster-mod/./src/Cache/CPS/CurrWrinklerCPS.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Ticker.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Season.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Garden.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Grimoire.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Wrinkler.js","webpack://cookiemonster-mod/./src/Main/CheckStates/GoldenCookie.js","webpack://cookiemonster-mod/./src/Disp/GoldenCookieTimers/GoldenCookieTimers.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateColours.js","webpack://cookiemonster-mod/./src/Config/SaveLoadReload/SaveLoadReloadSettings.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/PopWrinklers.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/Tooltip.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/TooltipGrimoire.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/NativeGrimoire.js","webpack://cookiemonster-mod/./src/Config/ToggleSetting.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateDOMElements.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/AddStatsPage.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateStatsSections.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/ResetAscension.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateMissingAchievements.js","webpack://cookiemonster-mod/./src/Data/Sectionheaders.ts","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/CreateHeader.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/CreateOption.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleFavourites.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Prompt.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameFunctions/FixMouse.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameFunctions/ReplaceNative.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/PositionLocation.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/TooltipUpgrades.js","webpack://cookiemonster-mod/./src/Disp/Dragon/Dragon.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/AuraChange.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/AddMenus.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/SettingsPage.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Info/InfoPage.js","webpack://cookiemonster-mod/./src/Data/Moddata.ts","webpack://cookiemonster-mod/./src/Disp/TabTitle/TabTitle.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/AscendButton.js","webpack://cookiemonster-mod/./src/Main/Initialization.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CssArea.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/UpgradeBar.js","webpack://cookiemonster-mod/./src/Disp/Initialization/FlashScreen.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CreateSectionHideButtons.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CreateWrinklerButton.js","webpack://cookiemonster-mod/./src/Disp/Initialization/UpdateBuildingUpgradeStyle.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/Tooltips.js","webpack://cookiemonster-mod/./src/Main/WrinklerArea/AddDetectArea.js","webpack://cookiemonster-mod/./src/CookieMonster.js","webpack://cookiemonster-mod/./src/InitSaveLoad/init.js","webpack://cookiemonster-mod/./src/InitSaveLoad/load.js"],"names":["global","factory","module","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","setBoxShadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","key","o","enumerable","CMOptions","ToggleWrinklerButtons","WrinklerButtons","Game","elderWrath","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","CycliusDateAtBeginLoop","Date","now","CenturyDateAtBeginLoop","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","CacheAverageCookiesFromClicks","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","DispCSS","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheObjectsNextAchievement","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","ColourTextPre","ColourBackPre","ColourBlue","ColourGreen","ColourYellow","ColourOrange","ColourRed","ColourPurple","ColourGray","ColourPink","ColourBrown","ColoursOrdering","TooltipText","SimpleTooltipElements","CMLastAscendState","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","CMSayTime","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColours","Frenzy","Clot","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","FavouriteSettings","UpdateBuildings","buyMode","BuildColour","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgradeSectionsHeight","values","getElementsByClassName","section","UpgradesNeverCollapse","minHeight","includes","UpdateUpgrades","UpBarColour","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColour","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColour","text","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColour","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","DrawBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","GetCPSBuffMult","buffs","multCpS","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","startDate","lumps","rawCookiesPs","CpsAchievements","threshold","shimmerTypes","golden","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","ObjectsTillNext","AmountNeeded","PPOfAmount","PPFrag","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColour","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColour","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","plantName","GardenPlots","totalGain","mortal","tile","immortal","matureBase","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CMDrawHook","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColour","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMClickHook","addLatest","computedMouseCps","CMAvgQueue","maxLength","queue","newValue","timePeriod","reduce","CacheAvgCPS","currDate","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","CacheColour","PPRigidelMode","getSumPrice","PPExcludeTop","CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","AllAmountTillNextAchievement","TotalNeeded","tillNext","AchievementsAtStart","index","IndividualAmountTillNextAchievement","CacheWrinklers","InitCache","DetailedTime","UpgradeBarFixedPos","DragonAuraInfo","GrimoireBar","GCTimer","Favicon","HideSectionsButtons","TooltipAmor","TooltipAscendButton","MissingUpgrades","MissingAchievements","HeavenlyChipsTarget","ShowMissedGC","GeneralSound","GCNotification","GCFlash","ColourGCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","ColourFortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","ColourSeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","ColourGardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","ColourMagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","ColourWrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","ColourWrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","BulkBuyBlock","Header","Favourite","Calculation","Notation","Colours","BarsDisplay","Tooltip","Statistics","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateFavicon","wrath","href","Setting","group","SettingColours","desc","super","SettingInputNumber","label","SettingStandard","toggle","SettingVolume","insertBefore","UpBarColor","save","stringify","favouriteSettings","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","replaceAll","cost","CalculateChangeGod","CurrentSlot","godsById","InitData","isInitializing","Flash","config","setTimeout","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoopHook","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","TickerEffect","shimmers","spawnLead","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","UpdateColours","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","Colors","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","luckyColour","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColourFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","chainColour","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColour","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColourFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColourFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","conjureColour","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColour","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","bakeberryColour","bakeberryFrag","chocorootColour","chocorootFrag","queenbeetColour","queenbeetFrag","duketaterColour","duketaterFrag","missingPlantDrops","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","centEgg","failRateHalloween","dropRateMult","obtainedCookiesChance","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","calcSum","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","achievs","parentElement","achievsCrate","AchievementsById","mouseDown","setOnCrate","tags","neuromancy","sesame","descFunc","tagsStr","CrateTooltipLockedAchievements","AddMissingAchievements","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","FavStar","ele","ToggleFavouriteSetting","FavouriteSettingPlaceholder","CreateFavouriteStar","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","content","promptWrapL","promptL","PlaySound","promptAnchorL","darkenL","focus","promptOn","UpdatePrompt","CookieMonsterPrompt","outerHTML","ClosePrompt","innerSpan","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateFlashScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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AE,4BAA4BhJ,MAAM2U,QAAU,QCT3C,MAAMmI,EAAmB,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAG1DC,EAAuB,CAClC,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIWC,EAAkC,CAC7C,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OC3IK,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAnBAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAalBC,EAAyBC,KAAKC,MAI9BC,EAAyBF,KAAKC,MCX1B,SAAS,EAASE,EAAKC,EAAQC,GAC5C,MAAMC,EAAWnC,EAAUoC,cAAgB,EAC3C,GAAIJ,IAAQK,IACV,MAAO,WAET,QAAmB,IAARL,EACT,MAAO,IAET,GAAwB,IAApBhC,EAAUsC,MACZ,OAAOX,EAAgBY,SAASP,EAAKC,GAEvC,GAAIO,OAAOC,SAAST,GAAM,CACxB,GAAIA,EAAM,EACR,MAAO,IAAI,EAASne,KAAKu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","file":"CookieMonster.js","sourcesContent":["/**\r\n * jscolor - JavaScript Color Picker\r\n *\r\n * @link http://jscolor.com\r\n * @license For open source use: GPLv3\r\n * For commercial use: JSColor Commercial License\r\n * @author Jan Odvarko - East Desire\r\n *\r\n * See usage examples at http://jscolor.com/examples/\r\n */\r\n\r\n\r\n(function (global, factory) {\r\n\r\n\t'use strict';\r\n\r\n\tif (typeof module === 'object' && typeof module.exports === 'object') {\r\n\t\t// Export jscolor as a module\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory (global) :\r\n\t\t\tfunction (win) {\r\n\t\t\t\tif (!win.document) {\r\n\t\t\t\t\tthrow new Error('jscolor needs a window with document');\r\n\t\t\t\t}\r\n\t\t\t\treturn factory(win);\r\n\t\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Default use (no module export)\r\n\tfactory(global);\r\n\r\n})(typeof window !== 'undefined' ? window : this, function (window) { // BEGIN factory\r\n\r\n// BEGIN jscolor code\r\n\r\n\r\n'use strict';\r\n\r\n\r\nvar jscolor = (function () { // BEGIN jscolor\r\n\r\nvar jsc = {\r\n\r\n\r\n\tinitialized : false,\r\n\r\n\tinstances : [], // created instances of jscolor\r\n\r\n\treadyQueue : [], // functions waiting to be called after init\r\n\r\n\r\n\tregister : function () {\r\n\t\tif (typeof window !== 'undefined' && window.document) {\r\n\t\t\twindow.document.addEventListener('DOMContentLoaded', jsc.pub.init, false);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tinstallBySelector : function (selector, rootNode) {\r\n\t\trootNode = rootNode ? jsc.node(rootNode) : window.document;\r\n\t\tif (!rootNode) {\r\n\t\t\tthrow new Error('Missing root node');\r\n\t\t}\r\n\r\n\t\tvar elms = rootNode.querySelectorAll(selector);\r\n\r\n\t\t// for backward compatibility with DEPRECATED installation/configuration using className\r\n\t\tvar matchClass = new RegExp('(^|\\\\s)(' + jsc.pub.lookupClass + ')(\\\\s*(\\\\{[^}]*\\\\})|\\\\s|$)', 'i');\r\n\r\n\t\tfor (var i = 0; i < elms.length; i += 1) {\r\n\r\n\t\t\tif (elms[i].jscolor && elms[i].jscolor instanceof jsc.pub) {\r\n\t\t\t\tcontinue; // jscolor already installed on this element\r\n\t\t\t}\r\n\r\n\t\t\tif (elms[i].type !== undefined && elms[i].type.toLowerCase() == 'color' && jsc.isColorAttrSupported) {\r\n\t\t\t\tcontinue; // skips inputs of type 'color' if supported by the browser\r\n\t\t\t}\r\n\r\n\t\t\tvar dataOpts, m;\r\n\r\n\t\t\tif (\r\n\t\t\t\t(dataOpts = jsc.getDataAttr(elms[i], 'jscolor')) !== null ||\r\n\t\t\t\t(elms[i].className && (m = elms[i].className.match(matchClass))) // installation using className (DEPRECATED)\r\n\t\t\t) {\r\n\t\t\t\tvar targetElm = elms[i];\r\n\r\n\t\t\t\tvar optsStr = '';\r\n\t\t\t\tif (dataOpts !== null) {\r\n\t\t\t\t\toptsStr = dataOpts;\r\n\r\n\t\t\t\t} else if (m) { // installation using className (DEPRECATED)\r\n\t\t\t\t\tconsole.warn('Installation using class name is DEPRECATED. Use data-jscolor=\"\" attribute instead.' + jsc.docsRef);\r\n\t\t\t\t\tif (m[4]) {\r\n\t\t\t\t\t\toptsStr = m[4];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar opts = null;\r\n\t\t\t\tif (optsStr.trim()) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts = jsc.parseOptionsStr(optsStr);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e + '\\n' + optsStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tnew jsc.pub(targetElm, opts);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseOptionsStr : function (str) {\r\n\t\tvar opts = null;\r\n\r\n\t\ttry {\r\n\t\t\topts = JSON.parse(str);\r\n\r\n\t\t} catch (eParse) {\r\n\t\t\tif (!jsc.pub.looseJSON) {\r\n\t\t\t\tthrow new Error('Could not parse jscolor options as JSON: ' + eParse);\r\n\t\t\t} else {\r\n\t\t\t\t// loose JSON syntax is enabled -> try to evaluate the options string as JavaScript object\r\n\t\t\t\ttry {\r\n\t\t\t\t\topts = (new Function ('var opts = (' + str + '); return typeof opts === \"object\" ? opts : {};'))();\r\n\t\t\t\t} catch (eEval) {\r\n\t\t\t\t\tthrow new Error('Could not evaluate jscolor options: ' + eEval);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn opts;\r\n\t},\r\n\r\n\r\n\tgetInstances : function () {\r\n\t\tvar inst = [];\r\n\t\tfor (var i = 0; i < jsc.instances.length; i += 1) {\r\n\t\t\t// if the targetElement still exists, the instance is considered \"alive\"\r\n\t\t\tif (jsc.instances[i] && jsc.instances[i].targetElement) {\r\n\t\t\t\tinst.push(jsc.instances[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn inst;\r\n\t},\r\n\r\n\r\n\tcreateEl : function (tagName) {\r\n\t\tvar el = window.document.createElement(tagName);\r\n\t\tjsc.setData(el, 'gui', true);\r\n\t\treturn el;\r\n\t},\r\n\r\n\r\n\tnode : function (nodeOrSelector) {\r\n\t\tif (!nodeOrSelector) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (typeof nodeOrSelector === 'string') {\r\n\t\t\t// query selector\r\n\t\t\tvar sel = nodeOrSelector;\r\n\t\t\tvar el = null;\r\n\t\t\ttry {\r\n\t\t\t\tel = window.document.querySelector(sel);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.warn(e);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tif (!el) {\r\n\t\t\t\tconsole.warn('No element matches the selector: %s', sel);\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t}\r\n\r\n\t\tif (jsc.isNode(nodeOrSelector)) {\r\n\t\t\t// DOM node\r\n\t\t\treturn nodeOrSelector;\r\n\t\t}\r\n\r\n\t\tconsole.warn('Invalid node of type %s: %s', typeof nodeOrSelector, nodeOrSelector);\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// See https://stackoverflow.com/questions/384286/\r\n\tisNode : function (val) {\r\n\t\tif (typeof Node === 'object') {\r\n\t\t\treturn val instanceof Node;\r\n\t\t}\r\n\t\treturn val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.nodeName === 'string';\r\n\t},\r\n\r\n\r\n\tnodeName : function (node) {\r\n\t\tif (node && node.nodeName) {\r\n\t\t\treturn node.nodeName.toLowerCase();\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tremoveChildren : function (node) {\r\n\t\twhile (node.firstChild) {\r\n\t\t\tnode.removeChild(node.firstChild);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tisTextInput : function (el) {\r\n\t\treturn el && jsc.nodeName(el) === 'input' && el.type.toLowerCase() === 'text';\r\n\t},\r\n\r\n\r\n\tisButton : function (el) {\r\n\t\tif (!el) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar n = jsc.nodeName(el);\r\n\t\treturn (\r\n\t\t\t(n === 'button') ||\r\n\t\t\t(n === 'input' && ['button', 'submit', 'reset'].indexOf(el.type.toLowerCase()) > -1)\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tisButtonEmpty : function (el) {\r\n\t\tswitch (jsc.nodeName(el)) {\r\n\t\t\tcase 'input': return (!el.value || el.value.trim() === '');\r\n\t\t\tcase 'button': return (el.textContent.trim() === '');\r\n\t\t}\r\n\t\treturn null; // could not determine element's text\r\n\t},\r\n\r\n\r\n\t// See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\r\n\tisPassiveEventSupported : (function () {\r\n\t\tvar supported = false;\r\n\r\n\t\ttry {\r\n\t\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\t\tget: function () { supported = true; }\r\n\t\t\t});\r\n\t\t\twindow.addEventListener('testPassive', null, opts);\r\n\t\t\twindow.removeEventListener('testPassive', null, opts);\r\n\t\t} catch (e) {}\r\n\r\n\t\treturn supported;\r\n\t})(),\r\n\r\n\r\n\tisColorAttrSupported : (function () {\r\n\t\tvar elm = window.document.createElement('input');\r\n\t\tif (elm.setAttribute) {\r\n\t\t\telm.setAttribute('type', 'color');\r\n\t\t\tif (elm.type.toLowerCase() == 'color') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t})(),\r\n\r\n\r\n\tdataProp : '_data_jscolor',\r\n\r\n\r\n\t// usage:\r\n\t// setData(obj, prop, value)\r\n\t// setData(obj, {prop:value, ...})\r\n\t//\r\n\tsetData : function () {\r\n\t\tvar obj = arguments[0];\r\n\r\n\t\tif (arguments.length === 3) {\r\n\t\t\t// setting a single property\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar prop = arguments[1];\r\n\t\t\tvar value = arguments[2];\r\n\r\n\t\t\tdata[prop] = value;\r\n\t\t\treturn true;\r\n\r\n\t\t} else if (arguments.length === 2 && typeof arguments[1] === 'object') {\r\n\t\t\t// setting multiple properties\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar map = arguments[1];\r\n\r\n\t\t\tfor (var prop in map) {\r\n\t\t\t\tif (map.hasOwnProperty(prop)) {\r\n\t\t\t\t\tdata[prop] = map[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthrow new Error('Invalid arguments');\r\n\t},\r\n\r\n\r\n\t// usage:\r\n\t// removeData(obj, prop, [prop...])\r\n\t//\r\n\tremoveData : function () {\r\n\t\tvar obj = arguments[0];\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\treturn true; // data object does not exist\r\n\t\t}\r\n\t\tfor (var i = 1; i < arguments.length; i += 1) {\r\n\t\t\tvar prop = arguments[i];\r\n\t\t\tdelete obj[jsc.dataProp][prop];\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\tgetData : function (obj, prop, setDefault) {\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\t// data object does not exist\r\n\t\t\tif (setDefault !== undefined) {\r\n\t\t\t\tobj[jsc.dataProp] = {}; // create data object\r\n\t\t\t} else {\r\n\t\t\t\treturn undefined; // no value to return\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar data = obj[jsc.dataProp];\r\n\r\n\t\tif (!data.hasOwnProperty(prop) && setDefault !== undefined) {\r\n\t\t\tdata[prop] = setDefault;\r\n\t\t}\r\n\t\treturn data[prop];\r\n\t},\r\n\r\n\r\n\tgetDataAttr : function (el, name) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tvar attrValue = el.getAttribute(attrName);\r\n\t\treturn attrValue;\r\n\t},\r\n\r\n\r\n\tsetDataAttr : function (el, name, value) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tel.setAttribute(attrName, value);\r\n\t},\r\n\r\n\r\n\t_attachedGroupEvents : {},\r\n\r\n\r\n\tattachGroupEvent : function (groupName, el, evnt, func) {\r\n\t\tif (!jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tjsc._attachedGroupEvents[groupName] = [];\r\n\t\t}\r\n\t\tjsc._attachedGroupEvents[groupName].push([el, evnt, func]);\r\n\t\tel.addEventListener(evnt, func, false);\r\n\t},\r\n\r\n\r\n\tdetachGroupEvents : function (groupName) {\r\n\t\tif (jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tfor (var i = 0; i < jsc._attachedGroupEvents[groupName].length; i += 1) {\r\n\t\t\t\tvar evt = jsc._attachedGroupEvents[groupName][i];\r\n\t\t\t\tevt[0].removeEventListener(evt[1], evt[2], false);\r\n\t\t\t}\r\n\t\t\tdelete jsc._attachedGroupEvents[groupName];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tpreventDefault : function (e) {\r\n\t\tif (e.preventDefault) { e.preventDefault(); }\r\n\t\te.returnValue = false;\r\n\t},\r\n\r\n\r\n\tcaptureTarget : function (target) {\r\n\t\t// IE\r\n\t\tif (target.setCapture) {\r\n\t\t\tjsc._capturedTarget = target;\r\n\t\t\tjsc._capturedTarget.setCapture();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\treleaseTarget : function () {\r\n\t\t// IE\r\n\t\tif (jsc._capturedTarget) {\r\n\t\t\tjsc._capturedTarget.releaseCapture();\r\n\t\t\tjsc._capturedTarget = null;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\ttriggerEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar ev = null;\r\n\r\n\t\tif (typeof Event === 'function') {\r\n\t\t\tev = new Event(eventName, {\r\n\t\t\t\tbubbles: bubbles,\r\n\t\t\t\tcancelable: cancelable\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// IE\r\n\t\t\tev = window.document.createEvent('Event');\r\n\t\t\tev.initEvent(eventName, bubbles, cancelable);\r\n\t\t}\r\n\r\n\t\tif (!ev) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// so that we know that the event was triggered internally\r\n\t\tjsc.setData(ev, 'internal', true);\r\n\r\n\t\tel.dispatchEvent(ev);\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\ttriggerInputEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (jsc.isTextInput(el)) {\r\n\t\t\tjsc.triggerEvent(el, eventName, bubbles, cancelable);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\teventKey : function (ev) {\r\n\t\tvar keys = {\r\n\t\t\t9: 'Tab',\r\n\t\t\t13: 'Enter',\r\n\t\t\t27: 'Escape',\r\n\t\t};\r\n\t\tif (typeof ev.code === 'string') {\r\n\t\t\treturn ev.code;\r\n\t\t} else if (ev.keyCode !== undefined && keys.hasOwnProperty(ev.keyCode)) {\r\n\t\t\treturn keys[ev.keyCode];\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\tstrList : function (str) {\r\n\t\tif (!str) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn str.replace(/^\\s+|\\s+$/g, '').split(/\\s+/);\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can only contain a single class name\r\n\thasClass : function (elm, className) {\r\n\t\tif (!className) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\treturn elm.classList.contains(className);\r\n\t\t}\r\n\t\t// polyfill\r\n\t\treturn -1 != (' ' + elm.className.replace(/\\s+/g, ' ') + ' ').indexOf(' ' + className + ' ');\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\taddClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.add(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tif (!jsc.hasClass(elm, classNames[i])) {\r\n\t\t\t\telm.className += (elm.className ? ' ' : '') + classNames[i];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\tremoveClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.remove(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tvar repl = new RegExp(\r\n\t\t\t\t'^\\\\s*' + classNames[i] + '\\\\s*|' +\r\n\t\t\t\t'\\\\s*' + classNames[i] + '\\\\s*$|' +\r\n\t\t\t\t'\\\\s+' + classNames[i] + '(\\\\s+)',\r\n\t\t\t\t'g'\r\n\t\t\t);\r\n\t\t\telm.className = elm.className.replace(repl, '$1');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tgetCompStyle : function (elm) {\r\n\t\tvar compStyle = window.getComputedStyle ? window.getComputedStyle(elm) : elm.currentStyle;\r\n\r\n\t\t// Note: In Firefox, getComputedStyle returns null in a hidden iframe,\r\n\t\t// that's why we need to check if the returned value is non-empty\r\n\t\tif (!compStyle) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\treturn compStyle;\r\n\t},\r\n\r\n\r\n\t// Note:\r\n\t// Setting a property to NULL reverts it to the state before it was first set\r\n\t// with the 'reversible' flag enabled\r\n\t//\r\n\tsetStyle : function (elm, styles, important, reversible) {\r\n\t\t// using '' for standard priority (IE10 apparently doesn't like value undefined)\r\n\t\tvar priority = important ? 'important' : '';\r\n\t\tvar origStyle = null;\r\n\r\n\t\tfor (var prop in styles) {\r\n\t\t\tif (styles.hasOwnProperty(prop)) {\r\n\t\t\t\tvar setVal = null;\r\n\r\n\t\t\t\tif (styles[prop] === null) {\r\n\t\t\t\t\t// reverting a property value\r\n\r\n\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t// get the original style object, but dont't try to create it if it doesn't exist\r\n\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (origStyle && origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t// we have property's original value -> use it\r\n\t\t\t\t\t\tsetVal = origStyle[prop];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// setting a property value\r\n\r\n\t\t\t\t\tif (reversible) {\r\n\t\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t\t// get the original style object and if it doesn't exist, create it\r\n\t\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle', {});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t\t// original property value not yet stored -> store it\r\n\t\t\t\t\t\t\torigStyle[prop] = elm.style[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetVal = styles[prop];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (setVal !== null) {\r\n\t\t\t\t\telm.style.setProperty(prop, setVal, priority);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\thexColor : function (r, g, b) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\thexaColor : function (r, g, b, a) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(a * 255).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\trgbColor : function (r, g, b) {\r\n\t\treturn 'rgb(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\trgbaColor : function (r, g, b, a) {\r\n\t\treturn 'rgba(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) + ',' +\r\n\t\t\t(Math.round((a===undefined || a===null ? 1 : a) * 100) / 100) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\tlinearGradient : (function () {\r\n\r\n\t\tfunction getFuncName () {\r\n\t\t\tvar stdName = 'linear-gradient';\r\n\t\t\tvar prefixes = ['', '-webkit-', '-moz-', '-o-', '-ms-'];\r\n\t\t\tvar helper = window.document.createElement('div');\r\n\r\n\t\t\tfor (var i = 0; i < prefixes.length; i += 1) {\r\n\t\t\t\tvar tryFunc = prefixes[i] + stdName;\r\n\t\t\t\tvar tryVal = tryFunc + '(to right, rgba(0,0,0,0), rgba(0,0,0,0))';\r\n\r\n\t\t\t\thelper.style.background = tryVal;\r\n\t\t\t\tif (helper.style.background) { // CSS background successfully set -> function name is supported\r\n\t\t\t\t\treturn tryFunc;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn stdName; // fallback to standard 'linear-gradient' without vendor prefix\r\n\t\t}\r\n\r\n\t\tvar funcName = getFuncName();\r\n\r\n\t\treturn function () {\r\n\t\t\treturn funcName + '(' + Array.prototype.join.call(arguments, ', ') + ')';\r\n\t\t};\r\n\r\n\t})(),\r\n\r\n\r\n\tsetBorderRadius : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'border-radius' : value || '0'});\r\n\t},\r\n\r\n\r\n\tsetBoxShadow : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'box-shadow': value || 'none'});\r\n\t},\r\n\r\n\r\n\tgetElementPos : function (e, relativeToViewport) {\r\n\t\tvar x=0, y=0;\r\n\t\tvar rect = e.getBoundingClientRect();\r\n\t\tx = rect.left;\r\n\t\ty = rect.top;\r\n\t\tif (!relativeToViewport) {\r\n\t\t\tvar viewPos = jsc.getViewPos();\r\n\t\t\tx += viewPos[0];\r\n\t\t\ty += viewPos[1];\r\n\t\t}\r\n\t\treturn [x, y];\r\n\t},\r\n\r\n\r\n\tgetElementSize : function (e) {\r\n\t\treturn [e.offsetWidth, e.offsetHeight];\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to viewport\r\n\tgetAbsPointerPos : function (e) {\r\n\t\tvar x = 0, y = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tx = e.changedTouches[0].clientX;\r\n\t\t\ty = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tx = e.clientX;\r\n\t\t\ty = e.clientY;\r\n\t\t}\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to target element\r\n\tgetRelPointerPos : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\t\tvar targetRect = target.getBoundingClientRect();\r\n\r\n\t\tvar x = 0, y = 0;\r\n\r\n\t\tvar clientX = 0, clientY = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tclientX = e.changedTouches[0].clientX;\r\n\t\t\tclientY = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tclientX = e.clientX;\r\n\t\t\tclientY = e.clientY;\r\n\t\t}\r\n\r\n\t\tx = clientX - targetRect.left;\r\n\t\ty = clientY - targetRect.top;\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\tgetViewPos : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),\r\n\t\t\t(window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\r\n\t\t];\r\n\t},\r\n\r\n\r\n\tgetViewSize : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.innerWidth || doc.clientWidth),\r\n\t\t\t(window.innerHeight || doc.clientHeight),\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// r: 0-255\r\n\t// g: 0-255\r\n\t// b: 0-255\r\n\t//\r\n\t// returns: [ 0-360, 0-100, 0-100 ]\r\n\t//\r\n\tRGB_HSV : function (r, g, b) {\r\n\t\tr /= 255;\r\n\t\tg /= 255;\r\n\t\tb /= 255;\r\n\t\tvar n = Math.min(Math.min(r,g),b);\r\n\t\tvar v = Math.max(Math.max(r,g),b);\r\n\t\tvar m = v - n;\r\n\t\tif (m === 0) { return [ null, 0, 100 * v ]; }\r\n\t\tvar h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);\r\n\t\treturn [\r\n\t\t\t60 * (h===6?0:h),\r\n\t\t\t100 * (m/v),\r\n\t\t\t100 * v\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// h: 0-360\r\n\t// s: 0-100\r\n\t// v: 0-100\r\n\t//\r\n\t// returns: [ 0-255, 0-255, 0-255 ]\r\n\t//\r\n\tHSV_RGB : function (h, s, v) {\r\n\t\tvar u = 255 * (v / 100);\r\n\r\n\t\tif (h === null) {\r\n\t\t\treturn [ u, u, u ];\r\n\t\t}\r\n\r\n\t\th /= 60;\r\n\t\ts /= 100;\r\n\r\n\t\tvar i = Math.floor(h);\r\n\t\tvar f = i%2 ? h-i : 1-(h-i);\r\n\t\tvar m = u * (1 - s);\r\n\t\tvar n = u * (1 - s * f);\r\n\t\tswitch (i) {\r\n\t\t\tcase 6:\r\n\t\t\tcase 0: return [u,n,m];\r\n\t\t\tcase 1: return [n,u,m];\r\n\t\t\tcase 2: return [m,u,n];\r\n\t\t\tcase 3: return [m,n,u];\r\n\t\t\tcase 4: return [n,m,u];\r\n\t\t\tcase 5: return [u,m,n];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseColorString : function (str) {\r\n\t\tvar ret = {\r\n\t\t\trgba: null,\r\n\t\t\tformat: null // 'hex' | 'hexa' | 'rgb' | 'rgba'\r\n\t\t};\r\n\r\n\t\tvar m;\r\n\r\n\t\tif (m = str.match(/^\\W*([0-9A-F]{3,8})\\W*$/i)) {\r\n\t\t\t// HEX notation\r\n\r\n\t\t\tif (m[1].length === 8) {\r\n\t\t\t\t// 8-char notation (= with alpha)\r\n\t\t\t\tret.format = 'hexa';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(6,2),16) / 255\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 6) {\r\n\t\t\t\t// 6-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 3) {\r\n\t\t\t\t// 3-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].charAt(0) + m[1].charAt(0),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(1) + m[1].charAt(1),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(2) + m[1].charAt(2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (m = str.match(/^\\W*rgba?\\(([^)]*)\\)\\W*$/i)) {\r\n\t\t\t// rgb(...) or rgba(...) notation\r\n\r\n\t\t\tvar par = m[1].split(',');\r\n\t\t\tvar re = /^\\s*(\\d+|\\d*\\.\\d+|\\d+\\.\\d*)\\s*$/;\r\n\t\t\tvar mR, mG, mB, mA;\r\n\t\t\tif (\r\n\t\t\t\tpar.length >= 3 &&\r\n\t\t\t\t(mR = par[0].match(re)) &&\r\n\t\t\t\t(mG = par[1].match(re)) &&\r\n\t\t\t\t(mB = par[2].match(re))\r\n\t\t\t) {\r\n\t\t\t\tret.format = 'rgb';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseFloat(mR[1]) || 0,\r\n\t\t\t\t\tparseFloat(mG[1]) || 0,\r\n\t\t\t\t\tparseFloat(mB[1]) || 0,\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tpar.length >= 4 &&\r\n\t\t\t\t\t(mA = par[3].match(re))\r\n\t\t\t\t) {\r\n\t\t\t\t\tret.format = 'rgba';\r\n\t\t\t\t\tret.rgba[3] = parseFloat(mA[1]) || 0;\r\n\t\t\t\t}\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tparsePaletteValue : function (mixed) {\r\n\t\tvar vals = [];\r\n\r\n\t\tif (typeof mixed === 'string') { // input is a string of space separated color values\r\n\t\t\t// rgb() and rgba() may contain spaces too, so let's find all color values by regex\r\n\t\t\tmixed.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\\(([^)]*)\\)/ig, function (val) {\r\n\t\t\t\tvals.push(val);\r\n\t\t\t});\r\n\t\t} else if (Array.isArray(mixed)) { // input is an array of color values\r\n\t\t\tvals = mixed;\r\n\t\t}\r\n\r\n\t\t// convert all values into uniform color format\r\n\r\n\t\tvar colors = [];\r\n\r\n\t\tfor (var i = 0; i < vals.length; i++) {\r\n\t\t\tvar color = jsc.parseColorString(vals[i]);\r\n\t\t\tif (color) {\r\n\t\t\t\tcolors.push(color);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn colors;\r\n\t},\r\n\r\n\r\n\tcontainsTranparentColor : function (colors) {\r\n\t\tfor (var i = 0; i < colors.length; i++) {\r\n\t\t\tvar a = colors[i].rgba[3];\r\n\t\t\tif (a !== null && a < 1.0) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tisAlphaFormat : function (format) {\r\n\t\tswitch (format.toLowerCase()) {\r\n\t\tcase 'hexa':\r\n\t\tcase 'rgba':\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\t// Canvas scaling for retina displays\r\n\t//\r\n\t// adapted from https://www.html5rocks.com/en/tutorials/canvas/hidpi/\r\n\t//\r\n\tscaleCanvasForHighDPR : function (canvas) {\r\n\t\tvar dpr = window.devicePixelRatio || 1;\r\n\t\tcanvas.width *= dpr;\r\n\t\tcanvas.height *= dpr;\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\t\tctx.scale(dpr, dpr);\r\n\t},\r\n\r\n\r\n\tgenColorPreviewCanvas : function (color, separatorPos, specWidth, scaleForHighDPR) {\r\n\r\n\t\tvar sepW = Math.round(jsc.pub.previewSeparator.length);\r\n\t\tvar sqSize = jsc.pub.chessboardSize;\r\n\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\tvar cWidth = specWidth ? specWidth : sqSize * 2;\r\n\t\tvar cHeight = sqSize * 2;\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tcanvas.width = cWidth;\r\n\t\tcanvas.height = cHeight;\r\n\t\tif (scaleForHighDPR) {\r\n\t\t\tjsc.scaleCanvasForHighDPR(canvas);\r\n\t\t}\r\n\r\n\t\t// transparency chessboard - background\r\n\t\tctx.fillStyle = sqColor1;\r\n\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\r\n\t\t// transparency chessboard - squares\r\n\t\tctx.fillStyle = sqColor2;\r\n\t\tfor (var x = 0; x < cWidth; x += sqSize * 2) {\r\n\t\t\tctx.fillRect(x, 0, sqSize, sqSize);\r\n\t\t\tctx.fillRect(x + sqSize, sqSize, sqSize, sqSize);\r\n\t\t}\r\n\r\n\t\tif (color) {\r\n\t\t\t// actual color in foreground\r\n\t\t\tctx.fillStyle = color;\r\n\t\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\t\t}\r\n\r\n\t\tvar start = null;\r\n\t\tswitch (separatorPos) {\r\n\t\t\tcase 'left':\r\n\t\t\t\tstart = 0;\r\n\t\t\t\tctx.clearRect(0, 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'right':\r\n\t\t\t\tstart = cWidth - sepW;\r\n\t\t\t\tctx.clearRect(cWidth - (sepW/2), 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (start !== null) {\r\n\t\t\tctx.lineWidth = 1;\r\n\t\t\tfor (var i = 0; i < jsc.pub.previewSeparator.length; i += 1) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.strokeStyle = jsc.pub.previewSeparator[i];\r\n\t\t\t\tctx.moveTo(0.5 + start + i, 0);\r\n\t\t\t\tctx.lineTo(0.5 + start + i, cHeight);\r\n\t\t\t\tctx.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcanvas: canvas,\r\n\t\t\twidth: cWidth,\r\n\t\t\theight: cHeight,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\t// if position or width is not set => fill the entire element (0%-100%)\r\n\tgenColorPreviewGradient : function (color, position, width) {\r\n\t\tvar params = [];\r\n\r\n\t\tif (position && width) {\r\n\t\t\tparams = [\r\n\t\t\t\t'to ' + {'left':'right', 'right':'left'}[position],\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' ' + width + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) ' + (width + 1) + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) 100%',\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tparams = [\r\n\t\t\t\t'to right',\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' 100%',\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\treturn jsc.linearGradient.apply(this, params);\r\n\t},\r\n\r\n\r\n\tredrawPosition : function () {\r\n\r\n\t\tif (!jsc.picker || !jsc.picker.owner) {\r\n\t\t\treturn; // picker is not shown\r\n\t\t}\r\n\r\n\t\tvar thisObj = jsc.picker.owner;\r\n\r\n\t\tvar tp, vp;\r\n\r\n\t\tif (thisObj.fixed) {\r\n\t\t\t// Fixed elements are positioned relative to viewport,\r\n\t\t\t// therefore we can ignore the scroll offset\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement, true); // target pos\r\n\t\t\tvp = [0, 0]; // view pos\r\n\t\t} else {\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement); // target pos\r\n\t\t\tvp = jsc.getViewPos(); // view pos\r\n\t\t}\r\n\r\n\t\tvar ts = jsc.getElementSize(thisObj.targetElement); // target size\r\n\t\tvar vs = jsc.getViewSize(); // view size\r\n\t\tvar pd = jsc.getPickerDims(thisObj);\r\n\t\tvar ps = [pd.borderW, pd.borderH]; // picker outer size\r\n\t\tvar a, b, c;\r\n\t\tswitch (thisObj.position.toLowerCase()) {\r\n\t\t\tcase 'left': a=1; b=0; c=-1; break;\r\n\t\t\tcase 'right':a=1; b=0; c=1; break;\r\n\t\t\tcase 'top': a=0; b=1; c=-1; break;\r\n\t\t\tdefault: a=0; b=1; c=1; break;\r\n\t\t}\r\n\t\tvar l = (ts[b]+ps[b])/2;\r\n\r\n\t\t// compute picker position\r\n\t\tif (!thisObj.smartPosition) {\r\n\t\t\tvar pp = [\r\n\t\t\t\ttp[a],\r\n\t\t\t\ttp[b]+ts[b]-l+l*c\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tvar pp = [\r\n\t\t\t\t-vp[a]+tp[a]+ps[a] > vs[a] ?\r\n\t\t\t\t\t(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :\r\n\t\t\t\t\ttp[a],\r\n\t\t\t\t-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?\r\n\t\t\t\t\t(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :\r\n\t\t\t\t\t(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tvar x = pp[a];\r\n\t\tvar y = pp[b];\r\n\t\tvar positionValue = thisObj.fixed ? 'fixed' : 'absolute';\r\n\t\tvar contractShadow =\r\n\t\t\t(pp[0] + ps[0] > tp[0] || pp[0] < tp[0] + ts[0]) &&\r\n\t\t\t(pp[1] + ps[1] < tp[1] + ts[1]);\r\n\r\n\t\tjsc._drawPosition(thisObj, x, y, positionValue, contractShadow);\r\n\t},\r\n\r\n\r\n\t_drawPosition : function (thisObj, x, y, positionValue, contractShadow) {\r\n\t\tvar vShadow = contractShadow ? 0 : thisObj.shadowBlur; // px\r\n\r\n\t\tjsc.picker.wrap.style.position = positionValue;\r\n\t\tjsc.picker.wrap.style.left = x + 'px';\r\n\t\tjsc.picker.wrap.style.top = y + 'px';\r\n\r\n\t\tjsc.setBoxShadow(\r\n\t\t\tjsc.picker.boxS,\r\n\t\t\tthisObj.shadow ?\r\n\t\t\t\tnew jsc.BoxShadow(0, vShadow, thisObj.shadowBlur, 0, thisObj.shadowColor) :\r\n\t\t\t\tnull);\r\n\t},\r\n\r\n\r\n\tgetPickerDims : function (thisObj) {\r\n\t\tvar w = 2 * thisObj.controlBorderWidth + thisObj.width;\r\n\t\tvar h = 2 * thisObj.controlBorderWidth + thisObj.height;\r\n\r\n\t\tvar sliderSpace = 2 * thisObj.controlBorderWidth + 2 * jsc.getControlPadding(thisObj) + thisObj.sliderSize;\r\n\r\n\t\tif (jsc.getSliderChannel(thisObj)) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\t\tif (thisObj.hasAlphaChannel()) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\r\n\t\tvar pal = jsc.getPaletteDims(thisObj, w);\r\n\r\n\t\tif (pal.height) {\r\n\t\t\th += pal.height + thisObj.padding;\r\n\t\t}\r\n\t\tif (thisObj.closeButton) {\r\n\t\t\th += 2 * thisObj.controlBorderWidth + thisObj.padding + thisObj.buttonHeight;\r\n\t\t}\r\n\r\n\t\tvar pW = w + (2 * thisObj.padding);\r\n\t\tvar pH = h + (2 * thisObj.padding);\r\n\r\n\t\treturn {\r\n\t\t\tcontentW: w,\r\n\t\t\tcontentH: h,\r\n\t\t\tpaddedW: pW,\r\n\t\t\tpaddedH: pH,\r\n\t\t\tborderW: pW + (2 * thisObj.borderWidth),\r\n\t\t\tborderH: pH + (2 * thisObj.borderWidth),\r\n\t\t\tpalette: pal,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetPaletteDims : function (thisObj, width) {\r\n\t\tvar cols = 0, rows = 0, cellW = 0, cellH = 0, height = 0;\r\n\t\tvar sampleCount = thisObj._palette ? thisObj._palette.length : 0;\r\n\r\n\t\tif (sampleCount) {\r\n\t\t\tcols = thisObj.paletteCols;\r\n\t\t\trows = cols > 0 ? Math.ceil(sampleCount / cols) : 0;\r\n\r\n\t\t\t// color sample's dimensions (includes border)\r\n\t\t\tcellW = Math.max(1, Math.floor((width - ((cols - 1) * thisObj.paletteSpacing)) / cols));\r\n\t\t\tcellH = thisObj.paletteHeight ? Math.min(thisObj.paletteHeight, cellW) : cellW;\r\n\t\t}\r\n\r\n\t\tif (rows) {\r\n\t\t\theight =\r\n\t\t\t\trows * cellH +\r\n\t\t\t\t(rows - 1) * thisObj.paletteSpacing;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcols: cols,\r\n\t\t\trows: rows,\r\n\t\t\tcellW: cellW,\r\n\t\t\tcellH: cellH,\r\n\t\t\twidth: width,\r\n\t\t\theight: height,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetControlPadding : function (thisObj) {\r\n\t\treturn Math.max(\r\n\t\t\tthisObj.padding / 2,\r\n\t\t\t(2 * thisObj.pointerBorderWidth + thisObj.pointerThickness) - thisObj.controlBorderWidth\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tgetPadYChannel : function (thisObj) {\r\n\t\tswitch (thisObj.mode.charAt(1).toLowerCase()) {\r\n\t\t\tcase 'v': return 'v'; break;\r\n\t\t}\r\n\t\treturn 's';\r\n\t},\r\n\r\n\r\n\tgetSliderChannel : function (thisObj) {\r\n\t\tif (thisObj.mode.length > 2) {\r\n\t\t\tswitch (thisObj.mode.charAt(2).toLowerCase()) {\r\n\t\t\t\tcase 's': return 's'; break;\r\n\t\t\t\tcase 'v': return 'v'; break;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// calls function specified in picker's property\r\n\ttriggerCallback : function (thisObj, prop) {\r\n\t\tif (!thisObj[prop]) {\r\n\t\t\treturn; // callback func not specified\r\n\t\t}\r\n\t\tvar callback = null;\r\n\r\n\t\tif (typeof thisObj[prop] === 'string') {\r\n\t\t\t// string with code\r\n\t\t\ttry {\r\n\t\t\t\tcallback = new Function (thisObj[prop]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// function\r\n\t\t\tcallback = thisObj[prop];\r\n\t\t}\r\n\r\n\t\tif (callback) {\r\n\t\t\tcallback.call(thisObj);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// Triggers a color change related event(s) on all picker instances.\r\n\t// It is possible to specify multiple events separated with a space.\r\n\ttriggerGlobal : function (eventNames) {\r\n\t\tvar inst = jsc.getInstances();\r\n\t\tfor (var i = 0; i < inst.length; i += 1) {\r\n\t\t\tinst[i].trigger(eventNames);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t_pointerMoveEvent : {\r\n\t\tmouse: 'mousemove',\r\n\t\ttouch: 'touchmove'\r\n\t},\r\n\t_pointerEndEvent : {\r\n\t\tmouse: 'mouseup',\r\n\t\ttouch: 'touchend'\r\n\t},\r\n\r\n\r\n\t_pointerOrigin : null,\r\n\t_capturedTarget : null,\r\n\r\n\r\n\tonDocumentKeyUp : function (e) {\r\n\t\tif (['Tab', 'Escape'].indexOf(jsc.eventKey(e)) !== -1) {\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonWindowResize : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonWindowScroll : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonParentScroll : function (e) {\r\n\t\t// hide the picker when one of the parent elements is scrolled\r\n\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\tjsc.picker.owner.tryHide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentMouseDown : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (target.jscolor && target.jscolor instanceof jsc.pub) { // clicked targetElement -> show picker\r\n\t\t\tif (target.jscolor.showOnClick && !target.disabled) {\r\n\t\t\t\ttarget.jscolor.show();\r\n\t\t\t}\r\n\t\t} else if (jsc.getData(target, 'gui')) { // clicked jscolor's GUI element\r\n\t\t\tvar control = jsc.getData(target, 'control');\r\n\t\t\tif (control) {\r\n\t\t\t\t// jscolor's control\r\n\t\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'mouse');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// mouse is outside the picker's controls -> hide the color picker!\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonPickerTouchStart : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (jsc.getData(target, 'control')) {\r\n\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'touch');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonControlPointerStart : function (e, target, controlName, pointerType) {\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\r\n\t\tjsc.preventDefault(e);\r\n\t\tjsc.captureTarget(target);\r\n\r\n\t\tvar registerDragEvents = function (doc, offset) {\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerMoveEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerMove(e, target, controlName, pointerType, offset));\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerEndEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerEnd(e, target, controlName, pointerType));\r\n\t\t};\r\n\r\n\t\tregisterDragEvents(window.document, [0, 0]);\r\n\r\n\t\tif (window.parent && window.frameElement) {\r\n\t\t\tvar rect = window.frameElement.getBoundingClientRect();\r\n\t\t\tvar ofs = [-rect.left, -rect.top];\r\n\t\t\tregisterDragEvents(window.parent.window.document, ofs);\r\n\t\t}\r\n\r\n\t\tvar abs = jsc.getAbsPointerPos(e);\r\n\t\tvar rel = jsc.getRelPointerPos(e);\r\n\t\tjsc._pointerOrigin = {\r\n\t\t\tx: abs.x - rel.x,\r\n\t\t\ty: abs.y - rel.y\r\n\t\t};\r\n\r\n\t\tswitch (controlName) {\r\n\t\tcase 'pad':\r\n\t\t\t// if the value slider is at the bottom, move it up\r\n\t\t\tif (jsc.getSliderChannel(thisObj) === 'v' && thisObj.channels.v === 0) {\r\n\t\t\t\tthisObj.fromHSVA(null, null, 100, null);\r\n\t\t\t}\r\n\t\t\tjsc.setPad(thisObj, e, 0, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'sld':\r\n\t\t\tjsc.setSld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'asld':\r\n\t\t\tjsc.setASld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tthisObj.trigger('input');\r\n\t},\r\n\r\n\r\n\tonDocumentPointerMove : function (e, target, controlName, pointerType, offset) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tswitch (controlName) {\r\n\t\t\tcase 'pad':\r\n\t\t\t\tjsc.setPad(thisObj, e, offset[0], offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'sld':\r\n\t\t\t\tjsc.setSld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'asld':\r\n\t\t\t\tjsc.setASld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthisObj.trigger('input');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentPointerEnd : function (e, target, controlName, pointerType) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tjsc.detachGroupEvents('drag');\r\n\t\t\tjsc.releaseTarget();\r\n\r\n\t\t\t// Always trigger changes AFTER detaching outstanding mouse handlers,\r\n\t\t\t// in case some color change that occured in user-defined onChange/onInput handler\r\n\t\t\t// intruded into current mouse events\r\n\t\t\tthisObj.trigger('input');\r\n\t\t\tthisObj.trigger('change');\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tonPaletteSampleClick : function (e) {\r\n\t\tvar target = e.currentTarget;\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\tvar color = jsc.getData(target, 'color');\r\n\r\n\t\t// when format is flexible, use the original format of this color sample\r\n\t\tif (thisObj.format.toLowerCase() === 'any') {\r\n\t\t\tthisObj._setFormat(color.format); // adapt format\r\n\t\t\tif (!jsc.isAlphaFormat(thisObj.getFormat())) {\r\n\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if this color doesn't specify alpha, use alpha of 1.0 (if applicable)\r\n\t\tif (color.rgba[3] === null) {\r\n\t\t\tif (thisObj.paletteSetsAlpha === true || (thisObj.paletteSetsAlpha === 'auto' && thisObj._paletteHasTransparency)) {\r\n\t\t\t\tcolor.rgba[3] = 1.0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromRGBA.apply(thisObj, color.rgba);\r\n\r\n\t\tthisObj.trigger('input');\r\n\t\tthisObj.trigger('change');\r\n\r\n\t\tif (thisObj.hideOnPaletteClick) {\r\n\t\t\tthisObj.hide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetPad : function (thisObj, e, ofsX, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar x = ofsX + pointerAbs.x - jsc._pointerOrigin.x - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\r\n\t\tvar xVal = x * (360 / (thisObj.width - 1));\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getPadYChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(xVal, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(xVal, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetSld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getSliderChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(null, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(null, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetASld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 1.0 - (y * (1.0 / (thisObj.height - 1)));\r\n\r\n\t\tif (yVal < 1.0) {\r\n\t\t\t// if format is flexible and the current format doesn't support alpha, switch to a suitable one\r\n\t\t\tvar fmt = thisObj.getFormat();\r\n\t\t\tif (thisObj.format.toLowerCase() === 'any' && !jsc.isAlphaFormat(fmt)) {\r\n\t\t\t\tthisObj._setFormat(fmt === 'hex' ? 'hexa' : 'rgba');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromHSVA(null, null, null, yVal);\r\n\t},\r\n\r\n\r\n\tcreatePadCanvas : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, type) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar hGrad = ctx.createLinearGradient(0, 0, canvas.width, 0);\r\n\t\t\thGrad.addColorStop(0 / 6, '#F00');\r\n\t\t\thGrad.addColorStop(1 / 6, '#FF0');\r\n\t\t\thGrad.addColorStop(2 / 6, '#0F0');\r\n\t\t\thGrad.addColorStop(3 / 6, '#0FF');\r\n\t\t\thGrad.addColorStop(4 / 6, '#00F');\r\n\t\t\thGrad.addColorStop(5 / 6, '#F0F');\r\n\t\t\thGrad.addColorStop(6 / 6, '#F00');\r\n\r\n\t\t\tctx.fillStyle = hGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar vGrad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tswitch (type.toLowerCase()) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(255,255,255,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(255,255,255,1)');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(0,0,0,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(0,0,0,1)');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tctx.fillStyle = vGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateSliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color1, color2) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color1);\r\n\t\t\tgrad.addColorStop(1, color2);\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateASliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar sqSize = canvas.width / 2;\r\n\t\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\t\t// dark gray background\r\n\t\t\tctx.fillStyle = sqColor1;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tif (sqSize > 0) { // to avoid infinite loop\r\n\t\t\t\tfor (var y = 0; y < canvas.height; y += sqSize * 2) {\r\n\t\t\t\t\t// light gray squares\r\n\t\t\t\t\tctx.fillStyle = sqColor2;\r\n\t\t\t\t\tctx.fillRect(0, y, sqSize, sqSize);\r\n\t\t\t\t\tctx.fillRect(sqSize, y + sqSize, sqSize, sqSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color);\r\n\t\t\tgrad.addColorStop(1, 'rgba(0,0,0,0)');\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tBoxShadow : (function () {\r\n\t\tvar BoxShadow = function (hShadow, vShadow, blur, spread, color, inset) {\r\n\t\t\tthis.hShadow = hShadow;\r\n\t\t\tthis.vShadow = vShadow;\r\n\t\t\tthis.blur = blur;\r\n\t\t\tthis.spread = spread;\r\n\t\t\tthis.color = color;\r\n\t\t\tthis.inset = !!inset;\r\n\t\t};\r\n\r\n\t\tBoxShadow.prototype.toString = function () {\r\n\t\t\tvar vals = [\r\n\t\t\t\tMath.round(this.hShadow) + 'px',\r\n\t\t\t\tMath.round(this.vShadow) + 'px',\r\n\t\t\t\tMath.round(this.blur) + 'px',\r\n\t\t\t\tMath.round(this.spread) + 'px',\r\n\t\t\t\tthis.color\r\n\t\t\t];\r\n\t\t\tif (this.inset) {\r\n\t\t\t\tvals.push('inset');\r\n\t\t\t}\r\n\t\t\treturn vals.join(' ');\r\n\t\t};\r\n\r\n\t\treturn BoxShadow;\r\n\t})(),\r\n\r\n\r\n\tflags : {\r\n\t\tleaveValue : 1 << 0,\r\n\t\tleaveAlpha : 1 << 1,\r\n\t\tleavePreview : 1 << 2,\r\n\t},\r\n\r\n\r\n\tenumOpts : {\r\n\t\tformat: ['auto', 'any', 'hex', 'hexa', 'rgb', 'rgba'],\r\n\t\tpreviewPosition: ['left', 'right'],\r\n\t\tmode: ['hsv', 'hvs', 'hs', 'hv'],\r\n\t\tposition: ['left', 'right', 'top', 'bottom'],\r\n\t\talphaChannel: ['auto', true, false],\r\n\t\tpaletteSetsAlpha: ['auto', true, false],\r\n\t},\r\n\r\n\r\n\tdeprecatedOpts : {\r\n\t\t// : ( can be null)\r\n\t\t'styleElement': 'previewElement',\r\n\t\t'onFineChange': 'onInput',\r\n\t\t'overwriteImportant': 'forceStyle',\r\n\t\t'closable': 'closeButton',\r\n\t\t'insetWidth': 'controlBorderWidth',\r\n\t\t'insetColor': 'controlBorderColor',\r\n\t\t'refine': null,\r\n\t},\r\n\r\n\r\n\tdocsRef : ' ' + 'See https://jscolor.com/docs/',\r\n\r\n\r\n\t//\r\n\t// Usage:\r\n\t// var myPicker = new JSColor( [, ])\r\n\t//\r\n\t// (constructor is accessible via both 'jscolor' and 'JSColor' name)\r\n\t//\r\n\r\n\tpub : function (targetElement, opts) {\r\n\r\n\t\tvar THIS = this;\r\n\r\n\t\tif (!opts) {\r\n\t\t\topts = {};\r\n\t\t}\r\n\r\n\t\tthis.channels = {\r\n\t\t\tr: 255, // red [0-255]\r\n\t\t\tg: 255, // green [0-255]\r\n\t\t\tb: 255, // blue [0-255]\r\n\t\t\th: 0, // hue [0-360]\r\n\t\t\ts: 0, // saturation [0-100]\r\n\t\t\tv: 100, // value (brightness) [0-100]\r\n\t\t\ta: 1.0, // alpha (opacity) [0.0 - 1.0]\r\n\t\t};\r\n\r\n\t\t// General options\r\n\t\t//\r\n\t\tthis.format = 'auto'; // 'auto' | 'any' | 'hex' | 'hexa' | 'rgb' | 'rgba' - Format of the input/output value\r\n\t\tthis.value = undefined; // INITIAL color value in any supported format. To change it later, use method fromString(), fromHSVA(), fromRGBA() or channel()\r\n\t\tthis.alpha = undefined; // INITIAL alpha value. To change it later, call method channel('A', )\r\n\t\tthis.onChange = undefined; // called when color changes. Value can be either a function or a string with JS code.\r\n\t\tthis.onInput = undefined; // called repeatedly as the color is being changed, e.g. while dragging a slider. Value can be either a function or a string with JS code.\r\n\t\tthis.valueElement = undefined; // element that will be used to display and input the color value\r\n\t\tthis.alphaElement = undefined; // element that will be used to display and input the alpha (opacity) value\r\n\t\tthis.previewElement = undefined; // element that will preview the picked color using CSS background\r\n\t\tthis.previewPosition = 'left'; // 'left' | 'right' - position of the color preview in previewElement\r\n\t\tthis.previewSize = 32; // (px) width of the color preview displayed in previewElement\r\n\t\tthis.previewPadding = 8; // (px) space between color preview and content of the previewElement\r\n\t\tthis.required = true; // whether the associated text input must always contain a color value. If false, the input can be left empty.\r\n\t\tthis.hash = true; // whether to prefix the HEX color code with # symbol (only applicable for HEX format)\r\n\t\tthis.uppercase = true; // whether to show the HEX color code in upper case (only applicable for HEX format)\r\n\t\tthis.forceStyle = true; // whether to overwrite CSS style of the previewElement using !important flag\r\n\r\n\t\t// Color Picker options\r\n\t\t//\r\n\t\tthis.width = 181; // width of the color spectrum (in px)\r\n\t\tthis.height = 101; // height of the color spectrum (in px)\r\n\t\tthis.mode = 'HSV'; // 'HSV' | 'HVS' | 'HS' | 'HV' - layout of the color picker controls\r\n\t\tthis.alphaChannel = 'auto'; // 'auto' | true | false - if alpha channel is enabled, the alpha slider will be visible. If 'auto', it will be determined according to color format\r\n\t\tthis.position = 'bottom'; // 'left' | 'right' | 'top' | 'bottom' - position relative to the target element\r\n\t\tthis.smartPosition = true; // automatically change picker position when there is not enough space for it\r\n\t\tthis.showOnClick = true; // whether to show the picker when user clicks its target element\r\n\t\tthis.hideOnLeave = true; // whether to automatically hide the picker when user leaves its target element (e.g. upon clicking the document)\r\n\t\tthis.palette = []; // colors to be displayed in the palette, specified as an array or a string of space separated color values (in any supported format)\r\n\t\tthis.paletteCols = 10; // number of columns in the palette\r\n\t\tthis.paletteSetsAlpha = 'auto'; // 'auto' | true | false - if true, palette colors that don't specify alpha will set alpha to 1.0\r\n\t\tthis.paletteHeight = 16; // maximum height (px) of a row in the palette\r\n\t\tthis.paletteSpacing = 4; // distance (px) between color samples in the palette\r\n\t\tthis.hideOnPaletteClick = false; // when set to true, clicking the palette will also hide the color picker\r\n\t\tthis.sliderSize = 16; // px\r\n\t\tthis.crossSize = 8; // px\r\n\t\tthis.closeButton = false; // whether to display the Close button\r\n\t\tthis.closeText = 'Close';\r\n\t\tthis.buttonColor = 'rgba(0,0,0,1)'; // CSS color\r\n\t\tthis.buttonHeight = 18; // px\r\n\t\tthis.padding = 12; // px\r\n\t\tthis.backgroundColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.borderWidth = 1; // px\r\n\t\tthis.borderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.borderRadius = 8; // px\r\n\t\tthis.controlBorderWidth = 1; // px\r\n\t\tthis.controlBorderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.shadow = true; // whether to display a shadow\r\n\t\tthis.shadowBlur = 15; // px\r\n\t\tthis.shadowColor = 'rgba(0,0,0,0.2)'; // CSS color\r\n\t\tthis.pointerColor = 'rgba(76,76,76,1)'; // CSS color\r\n\t\tthis.pointerBorderWidth = 1; // px\r\n\t\tthis.pointerBorderColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.pointerThickness = 2; // px\r\n\t\tthis.zIndex = 5000;\r\n\t\tthis.container = undefined; // where to append the color picker (BODY element by default)\r\n\r\n\t\t// Experimental\r\n\t\t//\r\n\t\tthis.minS = 0; // min allowed saturation (0 - 100)\r\n\t\tthis.maxS = 100; // max allowed saturation (0 - 100)\r\n\t\tthis.minV = 0; // min allowed value (brightness) (0 - 100)\r\n\t\tthis.maxV = 100; // max allowed value (brightness) (0 - 100)\r\n\t\tthis.minA = 0.0; // min allowed alpha (opacity) (0.0 - 1.0)\r\n\t\tthis.maxA = 1.0; // max allowed alpha (opacity) (0.0 - 1.0)\r\n\r\n\r\n\t\t// Getter: option(name)\r\n\t\t// Setter: option(name, value)\r\n\t\t// option({name:value, ...})\r\n\t\t//\r\n\t\tthis.option = function () {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\tthrow new Error('No option specified');\r\n\t\t\t}\r\n\r\n\t\t\tif (arguments.length === 1 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// getting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn getOption(arguments[0]);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t} else if (arguments.length >= 2 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// setting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (!setOption(arguments[0], arguments[1])) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (arguments.length === 1 && typeof arguments[0] === 'object') {\r\n\t\t\t\t// setting multiple options\r\n\t\t\t\tvar opts = arguments[0];\r\n\t\t\t\tvar success = true;\r\n\t\t\t\tfor (var opt in opts) {\r\n\t\t\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tif (!setOption(opt, opts[opt])) {\r\n\t\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn success;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Invalid arguments');\r\n\t\t}\r\n\r\n\r\n\t\t// Getter: channel(name)\r\n\t\t// Setter: channel(name, value)\r\n\t\t//\r\n\t\tthis.channel = function (name, value) {\r\n\t\t\tif (typeof name !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for channel name: ' + name);\r\n\t\t\t}\r\n\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\t// getting channel value\r\n\t\t\t\tif (!this.channels.hasOwnProperty(name.toLowerCase())) {\r\n\t\t\t\t\tconsole.warn('Getting unknown channel: ' + name);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.channels[name.toLowerCase()];\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// setting channel value\r\n\t\t\t\tvar res = false;\r\n\t\t\t\tswitch (name.toLowerCase()) {\r\n\t\t\t\t\tcase 'r': res = this.fromRGBA(value, null, null, null); break;\r\n\t\t\t\t\tcase 'g': res = this.fromRGBA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'b': res = this.fromRGBA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'h': res = this.fromHSVA(value, null, null, null); break;\r\n\t\t\t\t\tcase 's': res = this.fromHSVA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'v': res = this.fromHSVA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'a': res = this.fromHSVA(null, null, null, value); break;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tconsole.warn('Setting unknown channel: ' + name);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (res) {\r\n\t\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\t// Triggers given input event(s) by:\r\n\t\t// - executing on callback specified as picker's option\r\n\t\t// - triggering standard DOM event listeners attached to the value element\r\n\t\t//\r\n\t\t// It is possible to specify multiple events separated with a space.\r\n\t\t//\r\n\t\tthis.trigger = function (eventNames) {\r\n\t\t\tvar evs = jsc.strList(eventNames);\r\n\t\t\tfor (var i = 0; i < evs.length; i += 1) {\r\n\t\t\t\tvar ev = evs[i].toLowerCase();\r\n\r\n\t\t\t\t// trigger a callback\r\n\t\t\t\tvar callbackProp = null;\r\n\t\t\t\tswitch (ev) {\r\n\t\t\t\t\tcase 'input': callbackProp = 'onInput'; break;\r\n\t\t\t\t\tcase 'change': callbackProp = 'onChange'; break;\r\n\t\t\t\t}\r\n\t\t\t\tif (callbackProp) {\r\n\t\t\t\t\tjsc.triggerCallback(this, callbackProp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// trigger standard DOM event listeners on the value element\r\n\t\t\t\tjsc.triggerInputEvent(this.valueElement, ev, true, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t// h: 0-360\r\n\t\t// s: 0-100\r\n\t\t// v: 0-100\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromHSVA = function (h, s, v, a, flags) { // null = don't change\r\n\t\t\tif (h === undefined) { h = null; }\r\n\t\t\tif (s === undefined) { s = null; }\r\n\t\t\tif (v === undefined) { v = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (h !== null) {\r\n\t\t\t\tif (isNaN(h)) { return false; }\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, h));\r\n\t\t\t}\r\n\t\t\tif (s !== null) {\r\n\t\t\t\tif (isNaN(s)) { return false; }\r\n\t\t\t\tthis.channels.s = Math.max(0, Math.min(100, this.maxS, s), this.minS);\r\n\t\t\t}\r\n\t\t\tif (v !== null) {\r\n\t\t\t\tif (isNaN(v)) { return false; }\r\n\t\t\t\tthis.channels.v = Math.max(0, Math.min(100, this.maxV, v), this.minV);\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar rgb = jsc.HSV_RGB(\r\n\t\t\t\tthis.channels.h,\r\n\t\t\t\tthis.channels.s,\r\n\t\t\t\tthis.channels.v\r\n\t\t\t);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// r: 0-255\r\n\t\t// g: 0-255\r\n\t\t// b: 0-255\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromRGBA = function (r, g, b, a, flags) { // null = don't change\r\n\t\t\tif (r === undefined) { r = null; }\r\n\t\t\tif (g === undefined) { g = null; }\r\n\t\t\tif (b === undefined) { b = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (r !== null) {\r\n\t\t\t\tif (isNaN(r)) { return false; }\r\n\t\t\t\tr = Math.max(0, Math.min(255, r));\r\n\t\t\t}\r\n\t\t\tif (g !== null) {\r\n\t\t\t\tif (isNaN(g)) { return false; }\r\n\t\t\t\tg = Math.max(0, Math.min(255, g));\r\n\t\t\t}\r\n\t\t\tif (b !== null) {\r\n\t\t\t\tif (isNaN(b)) { return false; }\r\n\t\t\t\tb = Math.max(0, Math.min(255, b));\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar hsv = jsc.RGB_HSV(\r\n\t\t\t\tr===null ? this.channels.r : r,\r\n\t\t\t\tg===null ? this.channels.g : g,\r\n\t\t\t\tb===null ? this.channels.b : b\r\n\t\t\t);\r\n\t\t\tif (hsv[0] !== null) {\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, hsv[0]));\r\n\t\t\t}\r\n\t\t\tif (hsv[2] !== 0) { // fully black color stays black through entire saturation range, so let's not change saturation\r\n\t\t\t\tthis.channels.s = Math.max(0, this.minS, Math.min(100, this.maxS, hsv[1]));\r\n\t\t\t}\r\n\t\t\tthis.channels.v = Math.max(0, this.minV, Math.min(100, this.maxV, hsv[2]));\r\n\r\n\t\t\t// update RGB according to final HSV, as some values might be trimmed\r\n\t\t\tvar rgb = jsc.HSV_RGB(this.channels.h, this.channels.s, this.channels.v);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromHSVA() instead\r\n\t\t//\r\n\t\tthis.fromHSV = function (h, s, v, flags) {\r\n\t\t\tconsole.warn('fromHSV() method is DEPRECATED. Using fromHSVA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromHSVA(h, s, v, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromRGBA() instead\r\n\t\t//\r\n\t\tthis.fromRGB = function (r, g, b, flags) {\r\n\t\t\tconsole.warn('fromRGB() method is DEPRECATED. Using fromRGBA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromRGBA(r, g, b, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\tthis.fromString = function (str, flags) {\r\n\t\t\tif (!this.required && str.trim() === '') {\r\n\t\t\t\t// setting empty string to an optional color input\r\n\t\t\t\tthis.setPreviewElementBg(null);\r\n\t\t\t\tthis.setValueElementValue('');\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar color = jsc.parseColorString(str);\r\n\t\t\tif (!color) {\r\n\t\t\t\treturn false; // could not parse\r\n\t\t\t}\r\n\t\t\tif (this.format.toLowerCase() === 'any') {\r\n\t\t\t\tthis._setFormat(color.format); // adapt format\r\n\t\t\t\tif (!jsc.isAlphaFormat(this.getFormat())) {\r\n\t\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.fromRGBA(\r\n\t\t\t\tcolor.rgba[0],\r\n\t\t\t\tcolor.rgba[1],\r\n\t\t\t\tcolor.rgba[2],\r\n\t\t\t\tcolor.rgba[3],\r\n\t\t\t\tflags\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toString = function (format) {\r\n\t\t\tif (format === undefined) {\r\n\t\t\t\tformat = this.getFormat(); // format not specified -> use the current format\r\n\t\t\t}\r\n\t\t\tswitch (format.toLowerCase()) {\r\n\t\t\t\tcase 'hex': return this.toHEXString(); break;\r\n\t\t\t\tcase 'hexa': return this.toHEXAString(); break;\r\n\t\t\t\tcase 'rgb': return this.toRGBString(); break;\r\n\t\t\t\tcase 'rgba': return this.toRGBAString(); break;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXString = function () {\r\n\t\t\treturn jsc.hexColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXAString = function () {\r\n\t\t\treturn jsc.hexaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBString = function () {\r\n\t\t\treturn jsc.rgbColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBAString = function () {\r\n\t\t\treturn jsc.rgbaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toGrayscale = function () {\r\n\t\t\treturn (\r\n\t\t\t\t0.213 * this.channels.r +\r\n\t\t\t\t0.715 * this.channels.g +\r\n\t\t\t\t0.072 * this.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toCanvas = function () {\r\n\t\t\treturn jsc.genColorPreviewCanvas(this.toRGBAString()).canvas;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toDataURL = function () {\r\n\t\t\treturn this.toCanvas().toDataURL();\r\n\t\t};\r\n\r\n\r\n\t\tthis.toBackground = function () {\r\n\t\t\treturn jsc.pub.background(this.toRGBAString());\r\n\t\t};\r\n\r\n\r\n\t\tthis.isLight = function () {\r\n\t\t\treturn this.toGrayscale() > 255 / 2;\r\n\t\t};\r\n\r\n\r\n\t\tthis.hide = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdetachPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.show = function () {\r\n\t\t\tdrawPicker();\r\n\t\t};\r\n\r\n\r\n\t\tthis.redraw = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdrawPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.getFormat = function () {\r\n\t\t\treturn this._currentFormat;\r\n\t\t};\r\n\r\n\r\n\t\tthis._setFormat = function (format) {\r\n\t\t\tthis._currentFormat = format.toLowerCase();\r\n\t\t};\r\n\r\n\r\n\t\tthis.hasAlphaChannel = function () {\r\n\t\t\tif (this.alphaChannel === 'auto') {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tthis.format.toLowerCase() === 'any' || // format can change on the fly (e.g. from hex to rgba), so let's consider the alpha channel enabled\r\n\t\t\t\t\tjsc.isAlphaFormat(this.getFormat()) || // the current format supports alpha channel\r\n\t\t\t\t\tthis.alpha !== undefined || // initial alpha value is set, so we're working with alpha channel\r\n\t\t\t\t\tthis.alphaElement !== undefined // the alpha value is redirected, so we're working with alpha channel\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.alphaChannel; // the alpha channel is explicitly set\r\n\t\t};\r\n\r\n\r\n\t\tthis.processValueInput = function (str) {\r\n\t\t\tif (!this.fromString(str)) {\r\n\t\t\t\t// could not parse the color value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.processAlphaInput = function (str) {\r\n\t\t\tif (!this.fromHSVA(null, null, null, parseFloat(str))) {\r\n\t\t\t\t// could not parse the alpha value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.exposeColor = function (flags) {\r\n\t\t\tvar colorStr = this.toString();\r\n\t\t\tvar fmt = this.getFormat();\r\n\r\n\t\t\t// reflect current color in data- attribute\r\n\t\t\tjsc.setDataAttr(this.targetElement, 'current-color', colorStr);\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveValue) && this.valueElement) {\r\n\t\t\t\tif (fmt === 'hex' || fmt === 'hexa') {\r\n\t\t\t\t\tif (!this.uppercase) { colorStr = colorStr.toLowerCase(); }\r\n\t\t\t\t\tif (!this.hash) { colorStr = colorStr.replace(/^#/, ''); }\r\n\t\t\t\t}\r\n\t\t\t\tthis.setValueElementValue(colorStr);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveAlpha) && this.alphaElement) {\r\n\t\t\t\tvar alphaVal = Math.round(this.channels.a * 100) / 100;\r\n\t\t\t\tthis.setAlphaElementValue(alphaVal);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leavePreview) && this.previewElement) {\r\n\t\t\t\tvar previewPos = null; // 'left' | 'right' (null -> fill the entire element)\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t\t) {\r\n\t\t\t\t\tpreviewPos = this.previewPosition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.setPreviewElementBg(this.toRGBAString());\r\n\t\t\t}\r\n\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tredrawPad();\r\n\t\t\t\tredrawSld();\r\n\t\t\t\tredrawASld();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setPreviewElementBg = function (color) {\r\n\t\t\tif (!this.previewElement) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar position = null; // color preview position: null | 'left' | 'right'\r\n\t\t\tvar width = null; // color preview width: px | null = fill the entire element\r\n\t\t\tif (\r\n\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t) {\r\n\t\t\t\tposition = this.previewPosition;\r\n\t\t\t\twidth = this.previewSize;\r\n\t\t\t}\r\n\r\n\t\t\tvar backgrounds = [];\r\n\r\n\t\t\tif (!color) {\r\n\t\t\t\t// there is no color preview to display -> let's remove any previous background image\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'none',\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: 'no-repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// CSS gradient for background color preview\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: jsc.genColorPreviewGradient(\r\n\t\t\t\t\t\tcolor,\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\twidth ? width - jsc.pub.previewSeparator.length : null\r\n\t\t\t\t\t),\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// data URL of generated PNG image with a gray transparency chessboard\r\n\t\t\t\tvar preview = jsc.genColorPreviewCanvas(\r\n\t\t\t\t\t'rgba(0,0,0,0)',\r\n\t\t\t\t\tposition ? {'left':'right', 'right':'left'}[position] : null,\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\ttrue\r\n\t\t\t\t);\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'url(\\'' + preview.canvas.toDataURL() + '\\')',\r\n\t\t\t\t\tposition: (position || 'left') + ' top',\r\n\t\t\t\t\tsize: preview.width + 'px ' + preview.height + 'px',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar bg = {\r\n\t\t\t\timage: [],\r\n\t\t\t\tposition: [],\r\n\t\t\t\tsize: [],\r\n\t\t\t\trepeat: [],\r\n\t\t\t\torigin: [],\r\n\t\t\t};\r\n\t\t\tfor (var i = 0; i < backgrounds.length; i += 1) {\r\n\t\t\t\tbg.image.push(backgrounds[i].image);\r\n\t\t\t\tbg.position.push(backgrounds[i].position);\r\n\t\t\t\tbg.size.push(backgrounds[i].size);\r\n\t\t\t\tbg.repeat.push(backgrounds[i].repeat);\r\n\t\t\t\tbg.origin.push(backgrounds[i].origin);\r\n\t\t\t}\r\n\r\n\t\t\t// set previewElement's background-images\r\n\t\t\tvar sty = {\r\n\t\t\t\t'background-image': bg.image.join(', '),\r\n\t\t\t\t'background-position': bg.position.join(', '),\r\n\t\t\t\t'background-size': bg.size.join(', '),\r\n\t\t\t\t'background-repeat': bg.repeat.join(', '),\r\n\t\t\t\t'background-origin': bg.origin.join(', '),\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle);\r\n\r\n\r\n\t\t\t// set/restore previewElement's padding\r\n\t\t\tvar padding = {\r\n\t\t\t\tleft: null,\r\n\t\t\t\tright: null,\r\n\t\t\t};\r\n\t\t\tif (position) {\r\n\t\t\t\tpadding[position] = (this.previewSize + this.previewPadding) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\tvar sty = {\r\n\t\t\t\t'padding-left': padding.left,\r\n\t\t\t\t'padding-right': padding.right,\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle, true);\r\n\t\t};\r\n\r\n\r\n\t\tthis.setValueElementValue = function (str) {\r\n\t\t\tif (this.valueElement) {\r\n\t\t\t\tif (jsc.nodeName(this.valueElement) === 'input') {\r\n\t\t\t\t\tthis.valueElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.valueElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setAlphaElementValue = function (str) {\r\n\t\t\tif (this.alphaElement) {\r\n\t\t\t\tif (jsc.nodeName(this.alphaElement) === 'input') {\r\n\t\t\t\t\tthis.alphaElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.alphaElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis._processParentElementsInDOM = function () {\r\n\t\t\tif (this._parentElementsProcessed) { return; }\r\n\t\t\tthis._parentElementsProcessed = true;\r\n\r\n\t\t\tvar elm = this.targetElement;\r\n\t\t\tdo {\r\n\t\t\t\t// If the target element or one of its parent nodes has fixed position,\r\n\t\t\t\t// then use fixed positioning instead\r\n\t\t\t\tvar compStyle = jsc.getCompStyle(elm);\r\n\t\t\t\tif (compStyle.position && compStyle.position.toLowerCase() === 'fixed') {\r\n\t\t\t\t\tthis.fixed = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (elm !== this.targetElement) {\r\n\t\t\t\t\t// Ensure to attach onParentScroll only once to each parent element\r\n\t\t\t\t\t// (multiple targetElements can share the same parent nodes)\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Note: It's not just offsetParents that can be scrollable,\r\n\t\t\t\t\t// that's why we loop through all parent nodes\r\n\t\t\t\t\tif (!jsc.getData(elm, 'hasScrollListener')) {\r\n\t\t\t\t\t\telm.addEventListener('scroll', jsc.onParentScroll, false);\r\n\t\t\t\t\t\tjsc.setData(elm, 'hasScrollListener', true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} while ((elm = elm.parentNode) && jsc.nodeName(elm) !== 'body');\r\n\t\t};\r\n\r\n\r\n\t\tthis.tryHide = function () {\r\n\t\t\tif (this.hideOnLeave) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.set__palette = function (val) {\r\n\t\t\tthis.palette = val;\r\n\t\t\tthis._palette = jsc.parsePaletteValue(val);\r\n\t\t\tthis._paletteHasTransparency = jsc.containsTranparentColor(this._palette);\r\n\t\t};\r\n\r\n\r\n\t\tfunction setOption (option, value) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// enum option\r\n\t\t\tif (jsc.enumOpts.hasOwnProperty(option)) {\r\n\t\t\t\tif (typeof value === 'string') { // enum string values are case insensitive\r\n\t\t\t\t\tvalue = value.toLowerCase();\r\n\t\t\t\t}\r\n\t\t\t\tif (jsc.enumOpts[option].indexOf(value) === -1) {\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' has invalid value: ' + value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar setter = 'set__' + option;\r\n\r\n\t\t\tif (typeof THIS[setter] === 'function') { // a setter exists for this option\r\n\t\t\t\tTHIS[setter](value);\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\tTHIS[option] = value;\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction getOption (option) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar getter = 'get__' + option;\r\n\r\n\t\t\tif (typeof THIS[getter] === 'function') { // a getter exists for this option\r\n\t\t\t\treturn THIS[getter](value);\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\treturn THIS[option];\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction detachPicker () {\r\n\t\t\tjsc.removeClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t\tjsc.picker.wrap.parentNode.removeChild(jsc.picker.wrap);\r\n\t\t\tdelete jsc.picker.owner;\r\n\t\t}\r\n\r\n\r\n\t\tfunction drawPicker () {\r\n\r\n\t\t\t// At this point, when drawing the picker, we know what the parent elements are\r\n\t\t\t// and we can do all related DOM operations, such as registering events on them\r\n\t\t\t// or checking their positioning\r\n\t\t\tTHIS._processParentElementsInDOM();\r\n\r\n\t\t\tif (!jsc.picker) {\r\n\t\t\t\tjsc.picker = {\r\n\t\t\t\t\towner: null, // owner picker instance\r\n\t\t\t\t\twrap : jsc.createEl('div'),\r\n\t\t\t\t\tbox : jsc.createEl('div'),\r\n\t\t\t\t\tboxS : jsc.createEl('div'), // shadow area\r\n\t\t\t\t\tboxB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpad : jsc.createEl('div'),\r\n\t\t\t\t\tpadB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpadM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tpadCanvas : jsc.createPadCanvas(),\r\n\t\t\t\t\tcross : jsc.createEl('div'),\r\n\t\t\t\t\tcrossBY : jsc.createEl('div'), // border Y\r\n\t\t\t\t\tcrossBX : jsc.createEl('div'), // border X\r\n\t\t\t\t\tcrossLY : jsc.createEl('div'), // line Y\r\n\t\t\t\t\tcrossLX : jsc.createEl('div'), // line X\r\n\t\t\t\t\tsld : jsc.createEl('div'), // slider\r\n\t\t\t\t\tsldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tsldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tsldGrad : jsc.createSliderGradient(),\r\n\t\t\t\t\tsldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tsldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tsldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tsldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tasld : jsc.createEl('div'), // alpha slider\r\n\t\t\t\t\tasldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tasldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tasldGrad : jsc.createASliderGradient(),\r\n\t\t\t\t\tasldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tasldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tasldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tasldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tpal : jsc.createEl('div'), // palette\r\n\t\t\t\t\tbtn : jsc.createEl('div'),\r\n\t\t\t\t\tbtnT : jsc.createEl('span'), // text\r\n\t\t\t\t};\r\n\r\n\t\t\t\tjsc.picker.pad.appendChild(jsc.picker.padCanvas.elm);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.pad);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBX);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLX);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.cross);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padM);\r\n\r\n\t\t\t\tjsc.picker.sld.appendChild(jsc.picker.sldGrad.elm);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sld);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sldPtrOB);\r\n\t\t\t\tjsc.picker.sldPtrOB.appendChild(jsc.picker.sldPtrMB);\r\n\t\t\t\tjsc.picker.sldPtrMB.appendChild(jsc.picker.sldPtrIB);\r\n\t\t\t\tjsc.picker.sldPtrIB.appendChild(jsc.picker.sldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldM);\r\n\r\n\t\t\t\tjsc.picker.asld.appendChild(jsc.picker.asldGrad.elm);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asld);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asldPtrOB);\r\n\t\t\t\tjsc.picker.asldPtrOB.appendChild(jsc.picker.asldPtrMB);\r\n\t\t\t\tjsc.picker.asldPtrMB.appendChild(jsc.picker.asldPtrIB);\r\n\t\t\t\tjsc.picker.asldPtrIB.appendChild(jsc.picker.asldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldM);\r\n\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.pal);\r\n\r\n\t\t\t\tjsc.picker.btn.appendChild(jsc.picker.btnT);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.btn);\r\n\r\n\t\t\t\tjsc.picker.boxB.appendChild(jsc.picker.box);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxS);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxB);\r\n\r\n\t\t\t\tjsc.picker.wrap.addEventListener('touchstart', jsc.onPickerTouchStart,\r\n\t\t\t\t\tjsc.isPassiveEventSupported ? {passive: false} : false);\r\n\t\t\t}\r\n\r\n\t\t\tvar p = jsc.picker;\r\n\r\n\t\t\tvar displaySlider = !!jsc.getSliderChannel(THIS);\r\n\t\t\tvar displayAlphaSlider = THIS.hasAlphaChannel();\r\n\t\t\tvar pickerDims = jsc.getPickerDims(THIS);\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar controlPadding = jsc.getControlPadding(THIS);\r\n\t\t\tvar borderRadius = Math.min(\r\n\t\t\t\tTHIS.borderRadius,\r\n\t\t\t\tMath.round(THIS.padding * Math.PI)); // px\r\n\t\t\tvar padCursor = 'crosshair';\r\n\r\n\t\t\t// wrap\r\n\t\t\tp.wrap.className = 'jscolor-picker-wrap';\r\n\t\t\tp.wrap.style.clear = 'both';\r\n\t\t\tp.wrap.style.width = pickerDims.borderW + 'px';\r\n\t\t\tp.wrap.style.height = pickerDims.borderH + 'px';\r\n\t\t\tp.wrap.style.zIndex = THIS.zIndex;\r\n\r\n\t\t\t// picker\r\n\t\t\tp.box.className = 'jscolor-picker';\r\n\t\t\tp.box.style.width = pickerDims.paddedW + 'px';\r\n\t\t\tp.box.style.height = pickerDims.paddedH + 'px';\r\n\t\t\tp.box.style.position = 'relative';\r\n\r\n\t\t\t// picker shadow\r\n\t\t\tp.boxS.className = 'jscolor-picker-shadow';\r\n\t\t\tp.boxS.style.position = 'absolute';\r\n\t\t\tp.boxS.style.left = '0';\r\n\t\t\tp.boxS.style.top = '0';\r\n\t\t\tp.boxS.style.width = '100%';\r\n\t\t\tp.boxS.style.height = '100%';\r\n\t\t\tjsc.setBorderRadius(p.boxS, borderRadius + 'px');\r\n\r\n\t\t\t// picker border\r\n\t\t\tp.boxB.className = 'jscolor-picker-border';\r\n\t\t\tp.boxB.style.position = 'relative';\r\n\t\t\tp.boxB.style.border = THIS.borderWidth + 'px solid';\r\n\t\t\tp.boxB.style.borderColor = THIS.borderColor;\r\n\t\t\tp.boxB.style.background = THIS.backgroundColor;\r\n\t\t\tjsc.setBorderRadius(p.boxB, borderRadius + 'px');\r\n\r\n\t\t\t// IE hack:\r\n\t\t\t// If the element is transparent, IE will trigger the event on the elements under it,\r\n\t\t\t// e.g. on Canvas or on elements with border\r\n\t\t\tp.padM.style.background = 'rgba(255,0,0,.2)';\r\n\t\t\tp.sldM.style.background = 'rgba(0,255,0,.2)';\r\n\t\t\tp.asldM.style.background = 'rgba(0,0,255,.2)';\r\n\r\n\t\t\tp.padM.style.opacity =\r\n\t\t\tp.sldM.style.opacity =\r\n\t\t\tp.asldM.style.opacity =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad\r\n\t\t\tp.pad.style.position = 'relative';\r\n\t\t\tp.pad.style.width = THIS.width + 'px';\r\n\t\t\tp.pad.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// pad - color spectrum (HSV and HVS)\r\n\t\t\tp.padCanvas.draw(THIS.width, THIS.height, jsc.getPadYChannel(THIS));\r\n\r\n\t\t\t// pad border\r\n\t\t\tp.padB.style.position = 'absolute';\r\n\t\t\tp.padB.style.left = THIS.padding + 'px';\r\n\t\t\tp.padB.style.top = THIS.padding + 'px';\r\n\t\t\tp.padB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.padB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// pad mouse area\r\n\t\t\tp.padM.style.position = 'absolute';\r\n\t\t\tp.padM.style.left = 0 + 'px';\r\n\t\t\tp.padM.style.top = 0 + 'px';\r\n\t\t\tp.padM.style.width = (THIS.padding + 2 * THIS.controlBorderWidth + THIS.width + controlPadding) + 'px';\r\n\t\t\tp.padM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.padM.style.cursor = padCursor;\r\n\t\t\tjsc.setData(p.padM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'pad',\r\n\t\t\t})\r\n\r\n\t\t\t// pad cross\r\n\t\t\tp.cross.style.position = 'absolute';\r\n\t\t\tp.cross.style.left =\r\n\t\t\tp.cross.style.top =\r\n\t\t\t\t'0';\r\n\t\t\tp.cross.style.width =\r\n\t\t\tp.cross.style.height =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\r\n\t\t\t// pad cross border Y and X\r\n\t\t\tp.crossBY.style.position =\r\n\t\t\tp.crossBX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossBY.style.background =\r\n\t\t\tp.crossBX.style.background =\r\n\t\t\t\tTHIS.pointerBorderColor;\r\n\t\t\tp.crossBY.style.width =\r\n\t\t\tp.crossBX.style.height =\r\n\t\t\t\t(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.crossBY.style.height =\r\n\t\t\tp.crossBX.style.width =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\t\t\tp.crossBY.style.left =\r\n\t\t\tp.crossBX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2) - THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossBY.style.top =\r\n\t\t\tp.crossBX.style.left =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad cross line Y and X\r\n\t\t\tp.crossLY.style.position =\r\n\t\t\tp.crossLX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossLY.style.background =\r\n\t\t\tp.crossLX.style.background =\r\n\t\t\t\tTHIS.pointerColor;\r\n\t\t\tp.crossLY.style.height =\r\n\t\t\tp.crossLX.style.width =\r\n\t\t\t\t(crossOuterSize - 2 * THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossLY.style.width =\r\n\t\t\tp.crossLX.style.height =\r\n\t\t\t\tTHIS.pointerThickness + 'px';\r\n\t\t\tp.crossLY.style.left =\r\n\t\t\tp.crossLX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2)) + 'px';\r\n\t\t\tp.crossLY.style.top =\r\n\t\t\tp.crossLX.style.left =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px';\r\n\r\n\r\n\t\t\t// slider\r\n\t\t\tp.sld.style.overflow = 'hidden';\r\n\t\t\tp.sld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// slider gradient\r\n\t\t\tp.sldGrad.draw(THIS.sliderSize, THIS.height, '#000', '#000');\r\n\r\n\t\t\t// slider border\r\n\t\t\tp.sldB.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldB.style.position = 'absolute';\r\n\t\t\tp.sldB.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + 2 * controlPadding) + 'px';\r\n\t\t\tp.sldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.sldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.sldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// slider mouse area\r\n\t\t\tp.sldM.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldM.style.position = 'absolute';\r\n\t\t\tp.sldM.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) + 'px';\r\n\t\t\tp.sldM.style.top = 0 + 'px';\r\n\t\t\tp.sldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\t(displayAlphaSlider ? 0 : Math.max(0, THIS.padding - controlPadding)) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.sldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.sldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.sldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'sld',\r\n\t\t\t});\r\n\r\n\t\t\t// slider pointer inner and outer border\r\n\t\t\tp.sldPtrIB.style.border =\r\n\t\t\tp.sldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// slider pointer outer border\r\n\t\t\tp.sldPtrOB.style.position = 'absolute';\r\n\t\t\tp.sldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.sldPtrOB.style.top = '0';\r\n\r\n\t\t\t// slider pointer middle border\r\n\t\t\tp.sldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// slider pointer spacer\r\n\t\t\tp.sldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// alpha slider\r\n\t\t\tp.asld.style.overflow = 'hidden';\r\n\t\t\tp.asld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// alpha slider gradient\r\n\t\t\tp.asldGrad.draw(THIS.sliderSize, THIS.height, '#000');\r\n\r\n\t\t\t// alpha slider border\r\n\t\t\tp.asldB.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldB.style.position = 'absolute';\r\n\t\t\tp.asldB.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 3 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.asldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.asldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// alpha slider mouse area\r\n\t\t\tp.asldM.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldM.style.position = 'absolute';\r\n\t\t\tp.asldM.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.top = 0 + 'px';\r\n\t\t\tp.asldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\tMath.max(0, THIS.padding - controlPadding) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.asldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.asldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'asld',\r\n\t\t\t})\r\n\r\n\t\t\t// alpha slider pointer inner and outer border\r\n\t\t\tp.asldPtrIB.style.border =\r\n\t\t\tp.asldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// alpha slider pointer outer border\r\n\t\t\tp.asldPtrOB.style.position = 'absolute';\r\n\t\t\tp.asldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.asldPtrOB.style.top = '0';\r\n\r\n\t\t\t// alpha slider pointer middle border\r\n\t\t\tp.asldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// alpha slider pointer spacer\r\n\t\t\tp.asldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// palette\r\n\t\t\tp.pal.className = 'jscolor-palette';\r\n\t\t\tp.pal.style.display = pickerDims.palette.rows ? 'block' : 'none';\r\n\t\t\tp.pal.style.position = 'absolute';\r\n\t\t\tp.pal.style.left = THIS.padding + 'px';\r\n\t\t\tp.pal.style.top = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\r\n\t\t\t// palette's color samples\r\n\r\n\t\t\tp.pal.innerHTML = '';\r\n\r\n\t\t\tvar chessboard = jsc.genColorPreviewCanvas('rgba(0,0,0,0)');\r\n\r\n\t\t\tvar si = 0; // color sample's index\r\n\t\t\tfor (var r = 0; r < pickerDims.palette.rows; r++) {\r\n\t\t\t\tfor (var c = 0; c < pickerDims.palette.cols && si < THIS._palette.length; c++, si++) {\r\n\t\t\t\t\tvar sampleColor = THIS._palette[si];\r\n\t\t\t\t\tvar sampleCssColor = jsc.rgbaColor.apply(null, sampleColor.rgba);\r\n\r\n\t\t\t\t\tvar sc = jsc.createEl('div'); // color sample's color\r\n\t\t\t\t\tsc.style.width = (pickerDims.palette.cellW - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.height = (pickerDims.palette.cellH - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.backgroundColor = sampleCssColor;\r\n\r\n\t\t\t\t\tvar sw = jsc.createEl('div'); // color sample's wrap\r\n\t\t\t\t\tsw.className = 'jscolor-palette-sample';\r\n\t\t\t\t\tsw.style.display = 'block';\r\n\t\t\t\t\tsw.style.position = 'absolute';\r\n\t\t\t\t\tsw.style.left = (\r\n\t\t\t\t\t\t\tpickerDims.palette.cols <= 1 ? 0 :\r\n\t\t\t\t\t\t\tMath.round(10 * (c * ((pickerDims.contentW - pickerDims.palette.cellW) / (pickerDims.palette.cols - 1)))) / 10\r\n\t\t\t\t\t\t) + 'px';\r\n\t\t\t\t\tsw.style.top = (r * (pickerDims.palette.cellH + THIS.paletteSpacing)) + 'px';\r\n\t\t\t\t\tsw.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\t\t\tsw.style.borderColor = THIS.controlBorderColor;\r\n\t\t\t\t\tsw.style.cursor = 'pointer';\r\n\t\t\t\t\tif (sampleColor.rgba[3] !== null && sampleColor.rgba[3] < 1.0) { // only create chessboard background if the sample has transparency\r\n\t\t\t\t\t\tsw.style.backgroundImage = 'url(\\'' + chessboard.canvas.toDataURL() + '\\')';\r\n\t\t\t\t\t\tsw.style.backgroundRepeat = 'repeat';\r\n\t\t\t\t\t\tsw.style.backgroundPosition = 'center center';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tjsc.setData(sw, {\r\n\t\t\t\t\t\tinstance: THIS,\r\n\t\t\t\t\t\tcontrol: 'palette-sample',\r\n\t\t\t\t\t\tcolor: sampleColor,\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsw.addEventListener('click', jsc.onPaletteSampleClick, false);\r\n\t\t\t\t\tsw.appendChild(sc);\r\n\t\t\t\t\tp.pal.appendChild(sw);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// the Close button\r\n\t\t\tfunction setBtnBorder () {\r\n\t\t\t\tvar insetColors = THIS.controlBorderColor.split(/\\s+/);\r\n\t\t\t\tvar outsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];\r\n\t\t\t\tp.btn.style.borderColor = outsetColor;\r\n\t\t\t}\r\n\t\t\tvar btnPadding = 15; // px\r\n\t\t\tp.btn.className = 'jscolor-btn-close';\r\n\t\t\tp.btn.style.display = THIS.closeButton ? 'block' : 'none';\r\n\t\t\tp.btn.style.position = 'absolute';\r\n\t\t\tp.btn.style.left = THIS.padding + 'px';\r\n\t\t\tp.btn.style.bottom = THIS.padding + 'px';\r\n\t\t\tp.btn.style.padding = '0 ' + btnPadding + 'px';\r\n\t\t\tp.btn.style.maxWidth = (pickerDims.contentW - 2 * THIS.controlBorderWidth - 2 * btnPadding) + 'px';\r\n\t\t\tp.btn.style.overflow = 'hidden';\r\n\t\t\tp.btn.style.height = THIS.buttonHeight + 'px';\r\n\t\t\tp.btn.style.whiteSpace = 'nowrap';\r\n\t\t\tp.btn.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tsetBtnBorder();\r\n\t\t\tp.btn.style.color = THIS.buttonColor;\r\n\t\t\tp.btn.style.font = '12px sans-serif';\r\n\t\t\tp.btn.style.textAlign = 'center';\r\n\t\t\tp.btn.style.cursor = 'pointer';\r\n\t\t\tp.btn.onmousedown = function () {\r\n\t\t\t\tTHIS.hide();\r\n\t\t\t};\r\n\t\t\tp.btnT.style.lineHeight = THIS.buttonHeight + 'px';\r\n\t\t\tp.btnT.innerHTML = '';\r\n\t\t\tp.btnT.appendChild(window.document.createTextNode(THIS.closeText));\r\n\r\n\t\t\t// reposition the pointers\r\n\t\t\tredrawPad();\r\n\t\t\tredrawSld();\r\n\t\t\tredrawASld();\r\n\r\n\t\t\t// If we are changing the owner without first closing the picker,\r\n\t\t\t// make sure to first deal with the old owner\r\n\t\t\tif (jsc.picker.owner && jsc.picker.owner !== THIS) {\r\n\t\t\t\tjsc.removeClass(jsc.picker.owner.targetElement, jsc.pub.activeClassName);\r\n\t\t\t}\r\n\r\n\t\t\t// Set a new picker owner\r\n\t\t\tjsc.picker.owner = THIS;\r\n\r\n\t\t\t// The redrawPosition() method needs picker.owner to be set, that's why we call it here,\r\n\t\t\t// after setting the owner\r\n\t\t\tif (THIS.container === window.document.body) {\r\n\t\t\t\tjsc.redrawPosition();\r\n\t\t\t} else {\r\n\t\t\t\tjsc._drawPosition(THIS, 0, 0, 'relative', false);\r\n\t\t\t}\r\n\r\n\t\t\tif (p.wrap.parentNode !== THIS.container) {\r\n\t\t\t\tTHIS.container.appendChild(p.wrap);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.addClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawPad () {\r\n\t\t\t// redraw the pad pointer\r\n\t\t\tvar yChannel = jsc.getPadYChannel(THIS);\r\n\t\t\tvar x = Math.round((THIS.channels.h / 360) * (THIS.width - 1));\r\n\t\t\tvar y = Math.round((1 - THIS.channels[yChannel] / 100) * (THIS.height - 1));\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar ofs = -Math.floor(crossOuterSize / 2);\r\n\t\t\tjsc.picker.cross.style.left = (x + ofs) + 'px';\r\n\t\t\tjsc.picker.cross.style.top = (y + ofs) + 'px';\r\n\r\n\t\t\t// redraw the slider\r\n\t\t\tswitch (jsc.getSliderChannel(THIS)) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvar rgb1 = jsc.HSV_RGB(THIS.channels.h, 100, THIS.channels.v);\r\n\t\t\t\tvar rgb2 = jsc.HSV_RGB(THIS.channels.h, 0, THIS.channels.v);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb1[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[2]) + ')';\r\n\t\t\t\tvar color2 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb2[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[2]) + ')';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvar rgb = jsc.HSV_RGB(THIS.channels.h, THIS.channels.s, 100);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[2]) + ')';\r\n\t\t\t\tvar color2 = '#000';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawSld () {\r\n\t\t\tvar sldChannel = jsc.getSliderChannel(THIS);\r\n\t\t\tif (sldChannel) {\r\n\t\t\t\t// redraw the slider pointer\r\n\t\t\t\tvar y = Math.round((1 - THIS.channels[sldChannel] / 100) * (THIS.height - 1));\r\n\t\t\t\tjsc.picker.sldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawASld () {\r\n\t\t\tvar y = Math.round((1 - THIS.channels.a) * (THIS.height - 1));\r\n\t\t\tjsc.picker.asldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t}\r\n\r\n\r\n\t\tfunction isPickerOwner () {\r\n\t\t\treturn jsc.picker && jsc.picker.owner === THIS;\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.valueElement) {\r\n\t\t\t\t\tTHIS.processValueInput(THIS.valueElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.valueElement.value;\r\n\r\n\t\t\tTHIS.processValueInput(THIS.valueElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\tif (THIS.valueElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.alphaElement.value;\r\n\r\n\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\t// triggering valueElement's onChange (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\r\n\t\t\tif (THIS.alphaElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.alphaElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.valueElement) {\r\n\t\t\t\tTHIS.fromString(THIS.valueElement.value, jsc.flags.leaveValue);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput\r\n\t\t\t// (not needed, it was dispatched normally by the browser)\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\tTHIS.fromHSVA(null, null, null, parseFloat(THIS.alphaElement.value), jsc.flags.leaveAlpha);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'input', true, true);\r\n\t\t}\r\n\r\n\r\n\t\t// let's process the DEPRECATED 'options' property (this will be later removed)\r\n\t\tif (jsc.pub.options) {\r\n\t\t\t// let's set custom default options, if specified\r\n\t\t\tfor (var opt in jsc.pub.options) {\r\n\t\t\t\tif (jsc.pub.options.hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.options[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's apply configuration presets\r\n\t\t//\r\n\t\tvar presetsArr = [];\r\n\r\n\t\tif (opts.preset) {\r\n\t\t\tif (typeof opts.preset === 'string') {\r\n\t\t\t\tpresetsArr = opts.preset.split(/\\s+/);\r\n\t\t\t} else if (Array.isArray(opts.preset)) {\r\n\t\t\t\tpresetsArr = opts.preset.slice(); // slice() to clone\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('Unrecognized preset value');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// always use the 'default' preset. If it's not listed, append it to the end.\r\n\t\tif (presetsArr.indexOf('default') === -1) {\r\n\t\t\tpresetsArr.push('default');\r\n\t\t}\r\n\r\n\t\t// let's apply the presets in reverse order, so that should there be any overlapping options,\r\n\t\t// the formerly listed preset will override the latter\r\n\t\tfor (var i = presetsArr.length - 1; i >= 0; i -= 1) {\r\n\t\t\tvar pres = presetsArr[i];\r\n\t\t\tif (!pres) {\r\n\t\t\t\tcontinue; // preset is empty string\r\n\t\t\t}\r\n\t\t\tif (!jsc.pub.presets.hasOwnProperty(pres)) {\r\n\t\t\t\tconsole.warn('Unknown preset: %s', pres);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tfor (var opt in jsc.pub.presets[pres]) {\r\n\t\t\t\tif (jsc.pub.presets[pres].hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.presets[pres][opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's set specific options for this color picker\r\n\t\tvar nonProperties = [\r\n\t\t\t// these options won't be set as instance properties\r\n\t\t\t'preset',\r\n\t\t];\r\n\t\tfor (var opt in opts) {\r\n\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\tif (nonProperties.indexOf(opt) === -1) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, opts[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t//\r\n\t\t// Install the color picker on chosen element(s)\r\n\t\t//\r\n\r\n\r\n\t\t// Determine picker's container element\r\n\t\tif (this.container === undefined) {\r\n\t\t\tthis.container = window.document.body; // default container is BODY element\r\n\r\n\t\t} else { // explicitly set to custom element\r\n\t\t\tthis.container = jsc.node(this.container);\r\n\t\t}\r\n\r\n\t\tif (!this.container) {\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a container element');\r\n\t\t}\r\n\r\n\r\n\t\t// Fetch the target element\r\n\t\tthis.targetElement = jsc.node(targetElement);\r\n\r\n\t\tif (!this.targetElement) {\r\n\t\t\t// temporarily customized error message to help with migrating from versions prior to 2.2\r\n\t\t\tif (typeof targetElement === 'string' && /^[a-zA-Z][\\w:.-]*$/.test(targetElement)) {\r\n\t\t\t\t// targetElement looks like valid ID\r\n\t\t\t\tvar possiblyId = targetElement;\r\n\t\t\t\tthrow new Error('If \\'' + possiblyId + '\\' is supposed to be an ID, please use \\'#' + possiblyId + '\\' or any valid CSS selector.');\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a target element');\r\n\t\t}\r\n\r\n\t\tif (this.targetElement.jscolor && this.targetElement.jscolor instanceof jsc.pub) {\r\n\t\t\tthrow new Error('Color picker already installed on this element');\r\n\t\t}\r\n\r\n\r\n\t\t// link this instance with the target element\r\n\t\tthis.targetElement.jscolor = this;\r\n\t\tjsc.addClass(this.targetElement, jsc.pub.className);\r\n\r\n\t\t// register this instance\r\n\t\tjsc.instances.push(this);\r\n\r\n\r\n\t\t// if target is BUTTON\r\n\t\tif (jsc.isButton(this.targetElement)) {\r\n\r\n\t\t\tif (this.targetElement.type.toLowerCase() !== 'button') {\r\n\t\t\t\t// on buttons, always force type to be 'button', e.g. in situations the target