diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index cec4bcc4..5b0800e3 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -2,17 +2,18 @@ Cookie Monster is written to modify Cookie Clicker as little as possible. This m The following is a short description of the various `src` directories and their contents: -JS | Description --- | - -Cache | Functions related to creating and storing data cache -Config | Functions related to manipulating CM configuration -Data | Hard coded values -Disp | Functions related to displaying CM's UI -InitSaveLoad | Functions related to registering the CM object with the Game's Modding API -Main | Functions related to the main loop and initializing CM -Sim | Functions related to simulate something +| JS | Description | +| ------------ | -------------------------------------------------------------------------- | +| Cache | Functions related to creating and storing data cache | +| Config | Functions related to manipulating CM configuration | +| Data | Hard coded values | +| Disp | Functions related to displaying CM's UI | +| InitSaveLoad | Functions related to registering the CM object with the Game's Modding API | +| Main | Functions related to the main loop and initializing CM | +| Sim | Functions related to simulate something | These are some additional guidelines: + - Try to use DOM as much as possible instead of using string manipulation to modify HTML. - Please be descriptive of your commits. If the commit is related to an issue or PR, please add the issue/PR number to the commit message. - PR's should target the `dev` branch diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 23a8a044..5043552d 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -16,8 +16,7 @@ body: id: what-happened attributes: label: Bug description - description: - What is the bug about? + description: What is the bug about? placeholder: | # Please describe the bug and what you would have expected the mod to do validations: @@ -26,10 +25,9 @@ body: id: reproduce attributes: label: To reproduce - description: - How can you reproduce the bug? + description: How can you reproduce the bug? placeholder: | - The steps needed to reproduce the behavior: + The steps needed to reproduce the behavior: 1. validations: required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index 9255235d..c6094032 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -16,8 +16,7 @@ body: id: what-is-wanted attributes: label: Feature description - description: - Describe the function you'd like to see added to CookieMonster + description: Describe the function you'd like to see added to CookieMonster placeholder: | # A clear and concise description of what you want to happen. validations: diff --git a/.github/dependabot.yml b/.github/dependabot.yml index feb90ba8..c9826f90 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,7 @@ version: 2 updates: - - package-ecosystem: "npm" - directory: "/" # Location of package manifests + - package-ecosystem: 'npm' + directory: '/' # Location of package manifests schedule: - interval: "weekly" + interval: 'weekly' diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 05222ce8..b995b5c8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -12,32 +12,32 @@ jobs: env: GITHUB_REGISTERY_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 12 - - name: Install dependencies - run: npm ci - - name: Run ESLint - run: npx eslint src - - name: Run Mocha tests - run: npx mocha - - name: Check if CookieMonsterDev.js is built correctly - run: | - npx webpack -o ./tmp --env minimize - if cmp <(head -n 2 dist/CookieMonsterDev.js) <(head -n 2 tmp/CookieMonsterDev.js); then - echo '### SUCCESS: CookieMonsterDev is built correctly! ###' - else - echo '### WARNING: CookieMonsterDev.js does not seem to be correct. Make sure to run "npm run build-dev" after saving all your changes! ###' - exit 1 - fi - - name: Check if CookieMonster.js is built correctly - if: github.ref == 'refs/heads/master' - run: | - npx webpack -o ./tmp --env minimize --env finalfile - if cmp <(head -n 2 dist/CookieMonster.js) <(head -n 2 tmp/CookieMonster.js); then - echo '### SUCCESS: CookieMonster is built correctly! ###' - else - echo '### WARNING: CookieMonster.js does not seem to be correct. Make sure to run "npm run build-final" after saving all your changes! ###' - exit 1 - fi \ No newline at end of file + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 12 + - name: Install dependencies + run: npm ci + - name: Run ESLint + run: npx eslint src + - name: Run Mocha tests + run: npx mocha + - name: Check if CookieMonsterDev.js is built correctly + run: | + npx webpack -o ./tmp --env minimize + if cmp <(head -n 2 dist/CookieMonsterDev.js) <(head -n 2 tmp/CookieMonsterDev.js); then + echo '### SUCCESS: CookieMonsterDev is built correctly! ###' + else + echo '### WARNING: CookieMonsterDev.js does not seem to be correct. Make sure to run "npm run build-dev" after saving all your changes! ###' + exit 1 + fi + - name: Check if CookieMonster.js is built correctly + if: github.ref == 'refs/heads/master' + run: | + npx webpack -o ./tmp --env minimize --env finalfile + if cmp <(head -n 2 dist/CookieMonster.js) <(head -n 2 tmp/CookieMonster.js); then + echo '### SUCCESS: CookieMonster is built correctly! ###' + else + echo '### WARNING: CookieMonster.js does not seem to be correct. Make sure to run "npm run build-final" after saving all your changes! ###' + exit 1 + fi diff --git a/.github/workflows/publish-dev.yml b/.github/workflows/publish-dev.yml index 4428658d..c8f430f5 100644 --- a/.github/workflows/publish-dev.yml +++ b/.github/workflows/publish-dev.yml @@ -2,7 +2,7 @@ name: Publish on: push: branches: - - "dev" + - 'dev' jobs: publish-dev: runs-on: ubuntu-latest diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..5f29eea2 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,17 @@ +repos: + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.7.1 + hooks: + - id: prettier + args: + - '--print-width=100' + - '--single-quote' + - '--trailing-comma=all' + exclude: &build 'CookieMonster(Dev)?.js(.map)?' + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.0 + hooks: + - id: trailing-whitespace + exclude: *build + - id: end-of-file-fixer + exclude: *build diff --git a/LICENSE.md b/LICENSE.md index 389434bf..ff779489 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/README.md b/README.md index 7d870b13..9981fd3a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## Cookie Monster **Cookie Monster** is an addon you can load into Cookie Clicker, that offers a wide range of tools and statistics to enhance the game. **It is not a cheat interface** – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want. -The mod helps you to *whichever* degree you want, if you only need some help shortening long numbers, it does that. If you need to be accompanied by hand to pick the best buildings to buy, it does that, but **everything is an option**. +The mod helps you to _whichever_ degree you want, if you only need some help shortening long numbers, it does that. If you need to be accompanied by hand to pick the best buildings to buy, it does that, but **everything is an option**. ### Current version @@ -13,7 +13,7 @@ Github Pages is hosted from the `gh-pages` branch ### What it does -At its core, Cookie Monster computes an index for both buildings and upgrades: the **Payback Period (PP)**. CM will take *everything* in consideration, meaning if buying a building also unlocks an achievement which boosts your income, which unlocks an achievement, CM will know and highlight that building's value. CM uses the following formula to calculate the PP: +At its core, Cookie Monster computes an index for both buildings and upgrades: the **Payback Period (PP)**. CM will take _everything_ in consideration, meaning if buying a building also unlocks an achievement which boosts your income, which unlocks an achievement, CM will know and highlight that building's value. CM uses the following formula to calculate the PP: ```javascript max(cost - cookies in bank, 0)/cps + cost/Δ cps @@ -23,14 +23,14 @@ If the relevant option is enabled, CM will color-code each of them based on thei
The following standard colours are used: - -* Light Blue: (upgrades) This item has a better PP than the best building to buy -* Green: This building has the best PP -* Yellow: This building is within the top 10 of best PP's -* Orange: This building is within the top 20 of best PP's -* Red: This building is within the top 30 of best PP's -* Purple: This building is worse than the top 10 of best PP's -* Gray: This item does not have a PP, often this means that there is no change to CPS + +- Light Blue: (upgrades) This item has a better PP than the best building to buy +- Green: This building has the best PP +- Yellow: This building is within the top 10 of best PP's +- Orange: This building is within the top 20 of best PP's +- Red: This building is within the top 30 of best PP's +- Purple: This building is worse than the top 10 of best PP's +- Gray: This item does not have a PP, often this means that there is no change to CPS
@@ -45,7 +45,7 @@ Copy this code and save it as a bookmark. Paste it in the URL section. To activa ```javascript javascript: (function () { Game.LoadMod('https://cookiemonsterteam.github.io/CookieMonster/dist/CookieMonster.js'); -}()); +})(); ``` If (for some reason) the above doesn't work, trying pasting everything after the javascript: bit into your browser's console. @@ -80,10 +80,10 @@ Before pushing a new version to `main` and Github pages use the `build-final` co ## Contributors -* **[Raving_Kumquat](https://cookieclicker.wikia.com/wiki/User:Raving_Kumquat)**: Original author -* **[Maxime Fabre](https://github.com/Anahkiasen)**: Previous maintainer -* **[BlackenedGem](https://github.com/BlackenedGem)**: Golden/Wrath Cookie Favicons -* **[Sandworm](https://github.com/svschouw)**: Modified PP calculation -* **[Aktanusa](https://github.com/Aktanusa)**: Current maintainer -* **[DanielNoord](https://github.com/DanielNoord)**: Current maintainer -* **[bitsandbytes1708](https://github.com/bitsandbytes1708)**: Current maintainer +- **[Raving_Kumquat](https://cookieclicker.wikia.com/wiki/User:Raving_Kumquat)**: Original author +- **[Maxime Fabre](https://github.com/Anahkiasen)**: Previous maintainer +- **[BlackenedGem](https://github.com/BlackenedGem)**: Golden/Wrath Cookie Favicons +- **[Sandworm](https://github.com/svschouw)**: Modified PP calculation +- **[Aktanusa](https://github.com/Aktanusa)**: Current maintainer +- **[DanielNoord](https://github.com/DanielNoord)**: Current maintainer +- **[bitsandbytes1708](https://github.com/bitsandbytes1708)**: Current maintainer diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 7c440b94..38dd4a17 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"file":"CookieMonster.js","mappings":"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AEFsU,YAAa,IAAI3f,EACf,EACA,OACA,UACA,CAAC,+CAAgD,+CACjD,2EACA,GAEFqb,YAAa,IAAIrb,EACf,EACA,OACA,UACA,CAAC,kCAAmC,qCACpC,kCACA,GACA,KACEob,QAGJ4B,YAAa,IAAIhd,EACf,EACA,OACA,UACA,CAAC,mCAAoC,mCACrC,6CACA,GAEF+hB,aAAc,IAAI/hB,EAChB,EACA,OACA,UACA,CAAC,uBAAwB,uBACzB,oEACA,GAEFwc,YAAa,IAAIxc,EACf,EACA,OACA,UACA,CAAC,yBAA0B,yBAC3B,4DACA,GAEF0d,aAAc,IAAI1d,EAChB,EACA,OACA,UACA,CAAC,2BAA4B,2BAC7B,yDACA,GAEFwe,gBAAiB,IAAIxe,EACnB,EACA,OACA,UACA,CAAC,uBAAwB,uBACzB,iDACA,GAEFitB,oBAAqB,IAAIjtB,EACvB,EACA,OACA,UACA,CAAC,qCAAsC,qCACvC,+CACA,GAIF2gB,MAAO,IAAI3gB,EACT,EACA,OACA,aACA,CAAC,iBAAkB,iBACnB,oCACA,GAEFktB,gBAAiB,IAAIltB,EACnB,EACA,OACA,aACA,CAAC,uBAAwB,uBACzB,6CACA,GAEFmtB,oBAAqB,IAAIntB,EACvB,EACA,OACA,aACA,CAAC,2BAA4B,kCAC7B,yDACA,GAEF0iB,QAAS,IAAI1iB,EACX,EACA,OACA,aACA,CAAC,mCAAoC,+BACrC,wCACA,GAEFotB,oBAAqB,IAAIptB,EACvB,EACA,WACA,aACA,0BACA,8GACA,EACAqL,EAAAA,GAEFgiB,aAAc,IAAIrtB,EAChB,EACA,OACA,aACA,CAAC,gBAAiB,gBAClB,4FACA,GAIFuO,MAAO,IAAIvO,EACT,EACA,OACA,sBACA,CAAC,YAAa,WAAY,8BAC1B,8LACA,GAEFxG,aAAc,IAAIwG,EAChB,EACA,OACA,sBACA,CAAC,mCAAoC,mCACrC,kLACA,GAEFstB,eAAgB,IAAIttB,EAClB,EACA,OACA,iBACA,CAAC,mBAAoB,mBACrB,mDACA,GACA,KACE,GACExJ,KAAKiB,KAAKC,uBAAuBC,SAASwI,iBAAiBvI,SA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","sources":["webpack:///./node_modules/@eastdesire/jscolor/jscolor.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/settingClasses/baseSetting.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/notifications/prompt.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/notifications/flash.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/savingAndLoading/saveFramework.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/toggles/toggleHeader.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/notifications/sound.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/toggleConfigVolume.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/menuSections/addMenu.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/menuSections/info/addInfoMenuSection.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/menuSections/info/createFrameworkInfoMenuSection.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/data/modInfo.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/draw/drawLoop.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/data/headers.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/savingAndLoading/loadMod.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/savingAndLoading/createSaveDataObject.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/logic/logicLoop.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/data/settings.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/load.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/cookieMonsterFramework.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/init.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/init/createFlashScreen.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/frameworkDataObject/save.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/index.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/init/initModFramework.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/init/registerMod.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/listings/createInfoListing.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/listings/createOptionListing.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/listings/createOptionsFavouriteStar.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/toggles/toggleFavourite.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/toggleConfig.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/toggleConfigKeycode.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/listings/createOptionsSubHeader.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/menu/createModMenuSection.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/notifications/notification.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/settingClasses/settingColours.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/settingClasses/settingInputNumber.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/settingClasses/settingStandard.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/settingClasses/settingStandardWithFunc.js","webpack:///./node_modules/@cookiemonsterteam/cookiemonsterframework/src/options/settingClasses/settingVolume.js","webpack:///./src/Config/Toggles/ToggleWrinklerButtons.js","webpack:///./src/Cache/VariablesAndData.js","webpack:///./src/Sim/VariablesAndData.js","webpack:///./src/Sim/ReplacedGameFunctions/SimAuraMult.js","webpack:///./src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js","webpack:///./src/Sim/ReplacedGameFunctions/SimEff.js","webpack:///./src/Sim/ReplacedGameFunctions/SimHas.js","webpack:///./src/Sim/ReplacedGameFunctions/SimHasAura.js","webpack:///./src/Sim/ReplacedGameFunctions/SimHasGod.js","webpack:///./src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js","webpack:///./src/Sim/SimulationEvents/SellBuilding.js","webpack:///./src/Data/Scales.js","webpack:///./src/Main/VariablesAndData.js","webpack:///./src/Disp/VariablesAndData.js","webpack:///./src/Disp/BeautifyAndFormatting/Beautify.js","webpack:///./src/Disp/BuildingsUpgrades/Buildings.js","webpack:///./src/Disp/BuildingsUpgrades/UpdateUpgradeSectionsHeight.js","webpack:///./src/Disp/BuildingsUpgrades/Upgrades.js","webpack:///./src/Disp/BeautifyAndFormatting/FormatTime.js","webpack:///./src/Disp/BeautifyAndFormatting/GetTimeColour.js","webpack:///./src/Disp/HelperFunctions/GetCPS.js","webpack:///./src/Disp/HelperFunctions/GetWrinkConfigBank.js","webpack:///./src/Disp/InfoBars/CreateDOMElements.js","webpack:///./src/Disp/InfoBars/BottomBar.js","webpack:///./src/Disp/HelperFunctions/UpdateBackground.js","webpack:///./src/Config/SpecificToggles.js","webpack:///./src/Cache/Dragon/CacheDragonAuras.js","webpack:///./src/Sim/InitializeData/InitAchievement.js","webpack:///./src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js","webpack:///./src/Sim/InitializeData/InitialBuildingData.js","webpack:///./src/Sim/InitializeData/InitUpgrade.js","webpack:///./src/Sim/SimulationData/CopyData.js","webpack:///./src/Disp/Tooltips/CreateTooltip.js","webpack:///./src/Cache/PP/ColourOfPP.js","webpack:///./src/Cache/CPS/GetCPSBuffMult.js","webpack:///./src/Sim/SimulationData/SimWin.js","webpack:///./src/Sim/Calculations/CalculateGains.js","webpack:///./src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js","webpack:///./src/Data/Gamedata.js","webpack:///./src/Sim/ReplacedGameFunctions/SimHasAchiev.js","webpack:///./src/Sim/Calculations/CheckOtherAchiev.js","webpack:///./src/Sim/SimulationEvents/BuyBuildingBonusIncome.js","webpack:///./src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js","webpack:///./src/Config/Toggles/ToggleToolWarnPos.js","webpack:///./src/Disp/Tooltips/UpdateTooltips.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Building.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Upgrade.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/SugarLump.js","webpack:///./src/Disp/HelperFunctions/GetLumpColour.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Grimoire.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Warnings.js","webpack:///./src/Disp/DrawHook.js","webpack:///./src/Disp/InfoBars/TimerBar.js","webpack:///./src/Disp/Tooltips/WrinklerTooltips.js","webpack:///./src/Disp/MenuSections/Refreshmenu.js","webpack:///./src/Main/ClickHook.js","webpack:///./src/Cache/CPS/AverageQueue.js","webpack:///./src/Cache/FillCMDCache.js","webpack:///./src/Cache/CPS/CPS.js","webpack:///./src/Sim/SimulationEvents/BuyBuilding.js","webpack:///./src/Cache/PP/Building.js","webpack:///./src/Cache/PP/PP.js","webpack:///./src/Cache/PP/Upgrade.js","webpack:///./src/Sim/SimulationEvents/BuyUpgrades.js","webpack:///./src/Cache/PriceAndIncome/PriceAndIncome.js","webpack:///./src/Cache/Stats/ChainCookies.js","webpack:///./src/Cache/Stats/HeavenlyChips.js","webpack:///./src/Cache/Stats/MissingUpgrades.js","webpack:///./src/Disp/MenuSections/Statistics/CreateMissingUpgrades.js","webpack:///./src/Cache/Stats/Reindeer.js","webpack:///./src/Cache/Stats/Stats.js","webpack:///./src/Cache/TillNextAchievement/AllAmountTillNextAchievement.js","webpack:///./src/Cache/TillNextAchievement/IndividualAmountTillNextAchievement.js","webpack:///./src/Cache/Wrinklers/Wrinklers.js","webpack:///./src/Cache/CacheInit.js","webpack:///./src/Disp/HelperFunctions/PopWrinklers.js","webpack:///./src/Disp/Tooltips/Tooltip.js","webpack:///./src/Disp/TabTitle/FavIcon.js","webpack:///./src/Sim/InitializeData/InitData.js","webpack:///./src/Main/ReplaceGameElements/TooltipGrimoire.js","webpack:///./src/Main/ReplaceGameElements/NativeGrimoire.js","webpack:///./src/Cache/Dragon/Dragon.js","webpack:///./src/Data/Sectionheaders.js","webpack:///./src/Config/CheckNotificationPermissions.js","webpack:///./src/Disp/HelperFunctions/RefreshScale.js","webpack:///./src/Config/Toggles/ToggleBotBar.js","webpack:///./src/Data/settings.js","webpack:///./src/Config/Toggles/ToggleDetailedTime.js","webpack:///./src/Config/Toggles/ToggleUpgradeBarAndColour.js","webpack:///./src/Config/Toggles/ToggleUpgradeBarFixedPos.js","webpack:///./src/Config/Toggles/ToggleGCTimer.js","webpack:///./src/Config/Toggles/ToggleSectionHideButtons.js","webpack:///./src/Disp/HelperFunctions/UpdateColours.js","webpack:///./src/Disp/MenuSections/createMenuOptions.js","webpack:///./src/Disp/MenuSections/Statistics/CreateDOMElements.js","webpack:///./src/Config/ToggleSetting.js","webpack:///./src/Disp/MenuSections/Statistics/AddStatsPage.js","webpack:///./src/Disp/MenuSections/Statistics/CreateStatsSections.js","webpack:///./src/Sim/SimulationEvents/ResetAscension.js","webpack:///./src/Disp/MenuSections/Statistics/CreateMissingAchievements.js","webpack:///./src/Main/ReplaceGameFunctions/FixMouse.js","webpack:///./src/Main/ReplaceGameFunctions/ReplaceNative.js","webpack:///./src/Disp/Tooltips/PositionLocation.js","webpack:///./src/Main/ReplaceGameElements/TooltipUpgrades.js","webpack:///./src/Disp/Dragon/Dragon.js","webpack:///./src/Sim/SimulationEvents/AuraChange.js","webpack:///./src/Disp/MenuSections/AddMenus.js","webpack:///./src/Disp/TabTitle/TabTitle.js","webpack:///./src/Disp/Tooltips/AscendButton.js","webpack:///./src/Main/Initialization.js","webpack:///./src/Disp/Initialization/CssArea.js","webpack:///./src/Disp/BuildingsUpgrades/UpgradeBar.js","webpack:///./src/Disp/Initialization/CreateSectionHideButtons.js","webpack:///./src/Disp/Initialization/CreateWrinklerButton.js","webpack:///./src/Disp/Initialization/UpdateBuildingUpgradeStyle.js","webpack:///./src/Disp/buildingTiles/createBuildingLockButtons.js","webpack:///./src/Disp/buildingTiles/toggleBuildingLock.js","webpack:///./src/Main/ReplaceGameElements/Tooltips.js","webpack:///./src/Main/WrinklerArea/AddDetectArea.js","webpack:///./src/Sim/SimulationEvents/GodChange.js","webpack:///./src/Main/LoopHook.js","webpack:///./src/Disp/HelperFunctions/UpdateAscendState.js","webpack:///./src/Cache/CPS/NoGoldSwitchCPS.js","webpack:///./src/Sim/Calculations/NoGoldenSwitchCalc.js","webpack:///./src/Cache/PantheonGods/CacheGods.js","webpack:///./src/Cache/CPS/SellChoEgg.js","webpack:///./src/Sim/SimulationEvents/SellBuildingForChoEgg.js","webpack:///./src/Cache/CacheLoop.js","webpack:///./src/Cache/CPS/CurrWrinklerCPS.js","webpack:///./src/Main/CheckStates/Ticker.js","webpack:///./src/Main/CheckStates/Season.js","webpack:///./src/Main/CheckStates/Garden.js","webpack:///./src/Main/CheckStates/Grimoire.js","webpack:///./src/Main/CheckStates/Wrinkler.js","webpack:///./src/Main/CheckStates/GoldenCookie.js","webpack:///./src/Disp/GoldenCookieTimers/GoldenCookieTimers.js","webpack:///./src/Data/headers.js","webpack:///./src/InitSaveLoad/load.js","webpack:///./src/CookieMonster.js","webpack:///./src/InitSaveLoad/init.js","webpack:///./src/Data/Moddata.js","webpack:///./src/InitSaveLoad/save.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.random = false; // whether to randomize the initial color. Either true | false, or an array of ranges: [minV, maxV, minS, maxS, minH, maxH, minA, maxA]\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.randomize = function (minV, maxV, minS, maxS, minH, maxH, minA, maxA) {\r\n\t\t\tif (minV === undefined) { minV = 0; }\r\n\t\t\tif (maxV === undefined) { maxV = 100; }\r\n\t\t\tif (minS === undefined) { minS = 0; }\r\n\t\t\tif (maxS === undefined) { maxS = 100; }\r\n\t\t\tif (minH === undefined) { minH = 0; }\r\n\t\t\tif (maxH === undefined) { maxH = 359; }\r\n\t\t\tif (minA === undefined) { minA = 1; }\r\n\t\t\tif (maxA === undefined) { maxA = 1; }\r\n\r\n\t\t\tthis.fromHSVA(\r\n\t\t\t\tminH + Math.floor(Math.random() * (maxH - minH + 1)),\r\n\t\t\t\tminS + Math.floor(Math.random() * (maxS - minS + 1)),\r\n\t\t\t\tminV + Math.floor(Math.random() * (maxV - minV + 1)),\r\n\t\t\t\t((100 * minA) + Math.floor(Math.random() * (100 * (maxA - minA) + 1))) / 100\r\n\t\t\t);\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