{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/js/lib/utils.js","webpack:///./src/js/lib/color.js","webpack:///./src/js/lib/hsvacolor.js","webpack:///./src/js/helper/moveable.js","webpack:///./src/js/helper/selectable.js","webpack:///./src/js/pickr.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","on","eventListener","off","method","elements","events","fn","options","arguments","length","undefined","HTMLCollection","NodeList","Array","from","isArray","forEach","el","ev","_objectSpread","capture","slice","createElementFromString","html","div","document","createElement","innerHTML","trim","firstElementChild","removeAttribute","getAttribute","createFromTemplate","str","resolve","element","base","con","children","subtree","child","arr","push","eventPath","evt","path","composedPath","target","parentElement","adjustableInputNumbers","negative","isNumChar","handleScroll","e","val","selectionStart","numStart","num","isNaN","isFinite","mul","deltaY","inc","ctrlKey","newNum","Number","newStr","substr","substring","curPos","String","focus","setSelectionRange","preventDefault","dispatchEvent","Event","passive","padStart","string","maxLength","fillString","repeat","min","Math","max","floor","round","hsvToRgb","h","v","f","q","mod","rgbToHsv","g","b","minVal","maxVal","delta","dr","dg","db","cmykToHsv","y","k","hslToHsv","hexToHsv","hex","match","map","parseInt","parseToHSV","ctx","getContext","fillStyle","standardizeColor","regex","cmyk","rgba","hsla","hsva","numarize","array","test","type","exec","_numarize2","_slicedToArray","values","_numarize4","_numarize4$","a","splitAt","alpha","_splitAt$map2","_splitAt2","_numarize6","_numarize6$","_numarize8","_numarize8$","HSVaColor","ceil","that","toHSVA","rhsva","toString","concat","toFixed","toHSLA","Color","rhsla","toRGBA","rrgba","toCMYK","rgb","rcmyk","toHEXA","toUpperCase","join","clone","toHEX","Moveable","opt","assign","lockX","lockY","onchange","_tapstart","_","_tapstop","_tapmove","cache","wrapper","getBoundingClientRect","x","touch","touches","clientX","clientY","left","width","top","height","style","offsetWidth","trigger","update","wrapperRect","destroy","Selectable","className","onTap","classList","Pickr","constructor","pickr_defineProperty","this","swatchselect","change","save","init","inline","_this$_root","_root","app","button","_window","innerWidth","innerHeight","bb","ab","bottom","pos","middle","right","wantedLeft","position","useAsButton","disabled","comparison","components","interaction","strings","swatches","default","defaultRepresentation","adjustableNumbers","showAlways","closeWithKey","_opt","preview","opacity","hue","palette","_preBuild","_buildComponents","_bindEvents","_finalBuild","color","addSwatch","requestAnimationFrame","cb","offsetParent","body","setColor","_representation","setColorRepresentation","show","_initializingActive","_emit","querySelector","hidden","keys","input","clear","int","find","add","contains","appendChild","removeChild","lastChild","insertBefore","nextSibling","replaceChild","disable","transition","lastColor","hide","inst","comp","picker","_color","offsetHeight","cssRGBaString","background","currentColor","_recalc","_updateOutput","remove","slider","backgroundColor","selectable","eventBindings","_clearColor","setHSVA","_lastColor","applyColor","result","stopImmediatePropagation","ck","isOpen","code","some","updateTimeout","clearTimeout","setTimeout","_eventBindings","event","_len","args","_key","_eventListener","callBacks","index","indexOf","splice","_swatchColors","hsvaColorObject","removeSwatch","swatchColor","silent","_this$_root2","destroyAndRemove","pickr","_rePositioningPicker","recalc","_this$components","hueY","opacityY","pickerWrapper","pickerX","pickerY","_Color$parseToHSV2","utype","startsWith","click","getColorRepresentation","getColor","getRoot","enable","utils","once","helper","apply","removeEventListener","version"],"mappings":"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","file":"pickr.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Pickr\"] = factory();\n\telse\n\t\troot[\"Pickr\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","/**\n * Add an eventlistener which will be fired only once.\n *\n * @param element Target element\n * @param event Event name\n * @param fn Callback\n * @param options Optional options\n * @return Array passed arguments\n */\nexport const once = (element, event, fn, options) => on(element, event, function helper() {\n fn.apply(this, arguments);\n this.removeEventListener(event, helper);\n}, options);\n\n/**\n * Add event(s) to element(s).\n * @param elements DOM-Elements\n * @param events Event names\n * @param fn Callback\n * @param options Optional options\n * @return Array passed arguments\n */\nexport const on = eventListener.bind(null, 'addEventListener');\n\n/**\n * Remove event(s) from element(s).\n * @param elements DOM-Elements\n * @param events Event names\n * @param fn Callback\n * @param options Optional options\n * @return Array passed arguments\n */\nexport const off = eventListener.bind(null, 'removeEventListener');\n\nfunction eventListener(method, elements, events, fn, options = {}) {\n\n // Normalize array\n if (elements instanceof HTMLCollection || elements instanceof NodeList) {\n elements = Array.from(elements);\n } else if (!Array.isArray(elements)) {\n elements = [elements];\n }\n\n if (!Array.isArray(events)) {\n events = [events];\n }\n\n elements.forEach(el =>\n events.forEach(ev =>\n el[method](ev, fn, {capture: false, ...options})\n )\n );\n\n return Array.prototype.slice.call(arguments, 1);\n}\n\n/**\n * Creates an DOM-Element out of a string (Single element).\n * @param html HTML representing a single element\n * @returns {Element | null} The element.\n */\nexport function createElementFromString(html) {\n const div = document.createElement('div');\n div.innerHTML = html.trim();\n return div.firstElementChild;\n}\n\n/**\n * Removes an attribute from a HTMLElement and returns the value.\n * @param el\n * @param name\n * @return {string}\n */\nexport function removeAttribute(el, name) {\n const value = el.getAttribute(name);\n el.removeAttribute(name);\n return value;\n}\n\n/**\n * Creates a new html element, every element which has\n * a 'data-key' attribute will be saved in a object (which will be returned)\n * where the value of 'data-key' ist the object-key and the value the HTMLElement.\n *\n * It's possible to create a hierarchy if you add a 'data-con' attribute. Every\n * sibling will be added to the object which will get the name from the 'data-con' attribute.\n *\n * If you want to create an Array out of multiple elements, you can use the 'data-arr' attribute,\n * the value defines the key and all elements, which has the same parent and the same 'data-arr' attribute,\n * would be added to it.\n *\n * @param str - The HTML String.\n */\nexport function createFromTemplate(str) {\n\n // Recursive function to resolve template\n function resolve(element, base = {}) {\n\n // Check key and container attribute\n const con = removeAttribute(element, 'data-con');\n const key = removeAttribute(element, 'data-key');\n\n // Check and save element\n if (key) {\n base[key] = element;\n }\n\n // Check all children\n const children = Array.from(element.children);\n const subtree = con ? (base[con] = {}) : base;\n for (let child of children) {\n\n // Check if element should be saved as array\n const arr = removeAttribute(child, 'data-arr');\n if (arr) {\n\n // Check if there is already an array and add element\n (subtree[arr] || (subtree[arr] = [])).push(child);\n } else {\n resolve(child, subtree);\n }\n }\n\n return base;\n }\n\n return resolve(createElementFromString(str));\n}\n\n/**\n * Polyfill for safari & firefox for the eventPath event property.\n * @param evt The event object.\n * @return [String] event path.\n */\nexport function eventPath(evt) {\n let path = evt.path || (evt.composedPath && evt.composedPath());\n if (path) return path;\n\n let el = evt.target.parentElement;\n path = [evt.target, el];\n while (el = el.parentElement) path.push(el);\n\n path.push(document, window);\n return path;\n}\n\n/**\n * Creates the ability to change numbers in an input field with the scroll-wheel.\n * @param el\n * @param negative\n */\nexport function adjustableInputNumbers(el, negative = true) {\n\n // Check if a char represents a number\n const isNumChar = c => (c >= '0' && c <= '9') || c === '-' || c === '.';\n\n function handleScroll(e) {\n const val = el.value;\n const off = el.selectionStart;\n let numStart = off;\n let num = ''; // Will be the number as string\n\n // Look back\n for (let i = off - 1; i > 0 && isNumChar(val[i]); i--) {\n num = val[i] + num;\n numStart--; // Find start of number\n }\n\n // Look forward\n for (let i = off, n = val.length; i < n && isNumChar(val[i]); i++) {\n num += val[i];\n }\n\n // Check if number is valid\n if (num.length > 0 && !isNaN(num) && isFinite(num)) {\n\n const mul = e.deltaY < 0 ? 1 : -1;\n const inc = e.ctrlKey ? mul * 5 : mul;\n let newNum = Number(num) + inc;\n\n if (!negative && newNum < 0) {\n newNum = 0;\n }\n\n const newStr = val.substr(0, numStart) + newNum + val.substring(numStart + num.length, val.length);\n const curPos = numStart + String(newNum).length;\n\n // Update value and set cursor\n el.value = newStr;\n el.focus();\n el.setSelectionRange(curPos, curPos);\n }\n\n // Prevent default\n e.preventDefault();\n\n // Trigger input event\n el.dispatchEvent(new Event('input'));\n }\n\n // Bind events\n on(el, 'focus', () => on(window, 'wheel', handleScroll, {passive: false}));\n on(el, 'blur', () => off(window, 'wheel', handleScroll));\n}\n\n/**\n * Cross browser padStart implementation\n * @param string\n * @param maxLength\n * @param fillString\n * @returns {string}\n */\nexport function padStart(string, maxLength, fillString = ' ') {\n maxLength = maxLength - string.length;\n\n if (maxLength <= 0 || !fillString.length) {\n return String(string);\n } else {\n\n if (maxLength > fillString.length) {\n fillString += fillString.repeat(maxLength / fillString.length);\n }\n\n return fillString.slice(0, maxLength) + String(string);\n }\n}\n","import {padStart} from '../lib/utils';\n\n// Shorthands\nconst {min, max, floor, round} = Math;\n\n/**\n * Tries to convert a color name to rgb/a hex representation\n * @param name\n * @returns {string | CanvasGradient | CanvasPattern}\n */\nfunction standardizeColor(name) {\n const ctx = document.createElement('canvas').getContext('2d');\n ctx.fillStyle = name;\n return ctx.fillStyle;\n}\n\n/**\n * Convert HSV spectrum to RGB.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @returns {number[]} Array with rgb values.\n */\nexport function hsvToRgb(h, s, v) {\n h = (h / 360) * 6;\n s /= 100;\n v /= 100;\n\n let i = floor(h);\n\n let f = h - i;\n let p = v * (1 - s);\n let q = v * (1 - f * s);\n let t = v * (1 - (1 - f) * s);\n\n let mod = i % 6;\n let r = [v, q, p, p, t, v][mod];\n let g = [t, v, v, q, p, p][mod];\n let b = [p, p, t, v, v, q][mod];\n\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\n\n/**\n * Convert HSV spectrum to Hex.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @returns {string[]} Hex values\n */\nexport function hsvToHex(h, s, v) {\n return hsvToRgb(h, s, v).map(v =>\n padStart(round(v).toString(16), 2, '0')\n );\n}\n\n/**\n * Convert HSV spectrum to CMYK.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @returns {number[]} CMYK values\n */\nexport function hsvToCmyk(h, s, v) {\n const rgb = hsvToRgb(h, s, v);\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n\n let k, c, m, y;\n\n k = min(1 - r, 1 - g, 1 - b);\n\n c = k === 1 ? 0 : (1 - r - k) / (1 - k);\n m = k === 1 ? 0 : (1 - g - k) / (1 - k);\n y = k === 1 ? 0 : (1 - b - k) / (1 - k);\n\n return [\n c * 100,\n m * 100,\n y * 100,\n k * 100\n ];\n}\n\n/**\n * Convert HSV spectrum to HSL.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @returns {number[]} HSL values\n */\nexport function hsvToHsl(h, s, v) {\n s /= 100, v /= 100;\n\n let l = (2 - s) * v / 2;\n\n if (l !== 0) {\n if (l === 1) {\n s = 0;\n } else if (l < 0.5) {\n s = s * v / (l * 2);\n } else {\n s = s * v / (2 - l * 2);\n }\n }\n\n return [\n h,\n s * 100,\n l * 100\n ];\n}\n\n/**\n * Convert RGB to HSV.\n * @param r Red\n * @param g Green\n * @param b Blue\n * @return {number[]} HSV values.\n */\nfunction rgbToHsv(r, g, b) {\n r /= 255, g /= 255, b /= 255;\n\n let h, s, v;\n const minVal = min(r, g, b);\n const maxVal = max(r, g, b);\n const delta = maxVal - minVal;\n\n v = maxVal;\n if (delta === 0) {\n h = s = 0;\n } else {\n s = delta / maxVal;\n let dr = (((maxVal - r) / 6) + (delta / 2)) / delta;\n let dg = (((maxVal - g) / 6) + (delta / 2)) / delta;\n let db = (((maxVal - b) / 6) + (delta / 2)) / delta;\n\n if (r === maxVal) {\n h = db - dg;\n } else if (g === maxVal) {\n h = (1 / 3) + dr - db;\n } else if (b === maxVal) {\n h = (2 / 3) + dg - dr;\n }\n\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n\n return [\n h * 360,\n s * 100,\n v * 100\n ];\n}\n\n/**\n * Convert CMYK to HSV.\n * @param c Cyan\n * @param m Magenta\n * @param y Yellow\n * @param k Key (Black)\n * @return {number[]} HSV values.\n */\nfunction cmykToHsv(c, m, y, k) {\n c /= 100, m /= 100, y /= 100, k /= 100;\n\n const r = (1 - min(1, c * (1 - k) + k)) * 255;\n const g = (1 - min(1, m * (1 - k) + k)) * 255;\n const b = (1 - min(1, y * (1 - k) + k)) * 255;\n\n return [...rgbToHsv(r, g, b)];\n}\n\n/**\n * Convert HSL to HSV.\n * @param h Hue\n * @param s Saturation\n * @param l Lightness\n * @return {number[]} HSV values.\n */\nfunction hslToHsv(h, s, l) {\n s /= 100, l /= 100;\n s *= l < 0.5 ? l : 1 - l;\n\n let ns = (2 * s / (l + s)) * 100;\n let v = (l + s) * 100;\n return [h, ns, v];\n}\n\n/**\n * Convert HEX to HSV.\n * @param hex Hexadecimal string of rgb colors, can have length 3 or 6.\n * @return {number[]} HSV values.\n */\nfunction hexToHsv(hex) {\n return rgbToHsv(...hex.match(/.{2}/g).map(v => parseInt(v, 16)));\n}\n\n/**\n * Try's to parse a string which represents a color to a HSV array.\n * Current supported types are cmyk, rgba, hsla and hexadecimal.\n * @param str\n * @return {*}\n */\nexport function parseToHSV(str) {\n\n // Check if string is a color-name\n str = str.match(/^[a-zA-Z]+$/) ? standardizeColor(str) : str;\n\n // Regular expressions to match different types of color represention\n const regex = {\n cmyk: /^cmyk[\\D]+(\\d+)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]+(\\d+)/i,\n rgba: /^(rgb|rgba)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]*?([\\d.]+|$)/i,\n hsla: /^(hsl|hsla)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]*?([\\d.]+|$)/i,\n hsva: /^(hsv|hsva)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]+(\\d+)[\\D]*?([\\d.]+|$)/i,\n hex: /^#?(([\\dA-Fa-f]{3,4})|([\\dA-Fa-f]{6})|([\\dA-Fa-f]{8}))$/i\n };\n\n /**\n * Takes an Array of any type, convert strings which represents\n * a number to a number an anything else to undefined.\n * @param array\n * @return {*}\n */\n const numarize = array => array.map(v => /^(|\\d+)\\.\\d+|\\d+$/.test(v) ? Number(v) : undefined);\n\n let match;\n for (const type in regex) {\n\n // Check if current scheme passed\n if (!(match = regex[type].exec(str)))\n continue;\n\n // Try to convert\n switch (type) {\n case 'cmyk': {\n let [, c, m, y, k] = numarize(match);\n\n if (c > 100 || m > 100 || y > 100 || k > 100)\n break;\n\n return {values: [...cmykToHsv(c, m, y, k), 1], type};\n }\n case 'rgba': {\n let [, , r, g, b, a = 1] = numarize(match);\n\n if (r > 255 || g > 255 || b > 255 || a < 0 || a > 1)\n break;\n\n return {values: [...rgbToHsv(r, g, b), a], type};\n }\n case 'hex': {\n const splitAt = (s, i) => [s.substring(0, i), s.substring(i, s.length)];\n let [, hex] = match;\n\n // Fill up opacity if not declared\n if (hex.length === 3) {\n hex += 'F';\n } else if (hex.length === 6) {\n hex += 'FF';\n }\n\n let alpha;\n if (hex.length === 4) {\n [hex, alpha] = splitAt(hex, 3).map(v => v + v);\n } else if (hex.length === 8) {\n [hex, alpha] = splitAt(hex, 6);\n }\n\n // Convert 0 - 255 to 0 - 1 for opacity\n alpha = parseInt(alpha, 16) / 255;\n return {values: [...hexToHsv(hex), alpha], type};\n }\n case 'hsla': {\n let [, , h, s, l, a = 1] = numarize(match);\n\n if (h > 360 || s > 100 || l > 100 || a < 0 || a > 1)\n break;\n\n return {values: [...hslToHsv(h, s, l), a], type};\n }\n case 'hsva': {\n let [, , h, s, v, a = 1] = numarize(match);\n\n if (h > 360 || s > 100 || v > 100 || a < 0 || a > 1)\n break;\n\n return {values: [h, s, v, a], type};\n }\n }\n }\n\n return {values: null, type: null};\n}\n","import {padStart} from '../lib/utils';\nimport * as Color from './color';\n\n/**\n * Simple class which holds the properties\n * of the color represention model hsla (hue saturation lightness alpha)\n */\nexport function HSVaColor(h = 0, s = 0, v = 0, a = 1) {\n\n const ceil = Math.ceil;\n const that = {\n h, s, v, a,\n\n toHSVA() {\n const hsva = [that.h, that.s, that.v];\n const rhsva = hsva.map(ceil);\n\n hsva.push(that.a);\n hsva.toString = () => `hsva(${rhsva[0]}, ${rhsva[1]}%, ${rhsva[2]}%, ${that.a.toFixed(1)})`;\n return hsva;\n },\n\n toHSLA() {\n const hsla = Color.hsvToHsl(that.h, that.s, that.v);\n const rhsla = hsla.map(ceil);\n\n hsla.push(that.a);\n hsla.toString = () => `hsla(${rhsla[0]}, ${rhsla[1]}%, ${rhsla[2]}%, ${that.a.toFixed(1)})`;\n return hsla;\n },\n\n toRGBA() {\n const rgba = Color.hsvToRgb(that.h, that.s, that.v);\n const rrgba = rgba.map(ceil);\n\n rgba.push(that.a);\n rgba.toString = () => `rgba(${rrgba[0]}, ${rrgba[1]}, ${rrgba[2]}, ${that.a.toFixed(1)})`;\n return rgba;\n },\n\n toCMYK() {\n const cmyk = Color.hsvToCmyk(that.h, that.s, that.v);\n const rcmyk = cmyk.map(ceil);\n\n cmyk.toString = () => `cmyk(${rcmyk[0]}%, ${rcmyk[1]}%, ${rcmyk[2]}%, ${rcmyk[3]}%)`;\n return cmyk;\n },\n\n toHEXA() {\n const hex = Color.hsvToHex(...[that.h, that.s, that.v]);\n\n hex.toString = () => {\n\n // Check if alpha channel make sense, convert it to 255 number space, convert\n // to hex and pad it with zeros if needet.\n const alpha = that.a >= 1 ? '' : padStart(Number((that.a * 255).toFixed(0))\n .toString(16)\n .toUpperCase(), 2, '0');\n\n return `#${hex.join('').toUpperCase() + alpha}`;\n };\n\n return hex;\n },\n\n clone() {\n return HSVaColor(that.h, that.s, that.v, that.a);\n }\n };\n\n // TODO: Remove in 0.5.0\n that.toHEX = that.toHEXA;\n return that;\n}\n","import * as _ from './../lib/utils';\r\n\r\nexport default function Moveable(opt) {\r\n\r\n const that = {\r\n\r\n // Assign default values\r\n options: Object.assign({\r\n lockX: false,\r\n lockY: false,\r\n onchange: () => 0\r\n }, opt),\r\n\r\n _tapstart(evt) {\r\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\r\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\r\n\r\n // Prevent default touch event\r\n evt.preventDefault();\r\n\r\n // Trigger\r\n that._tapmove(evt);\r\n },\r\n\r\n _tapmove(evt) {\r\n const {options, cache} = that;\r\n const {element} = options;\r\n const b = that.options.wrapper.getBoundingClientRect();\r\n\r\n let x = 0, y = 0;\r\n if (evt) {\r\n const touch = evt && evt.touches && evt.touches[0];\r\n x = evt ? (touch || evt).clientX : 0;\r\n y = evt ? (touch || evt).clientY : 0;\r\n\r\n // Reset to bounds\r\n if (x < b.left) x = b.left;\r\n else if (x > b.left + b.width) x = b.left + b.width;\r\n if (y < b.top) y = b.top;\r\n else if (y > b.top + b.height) y = b.top + b.height;\r\n\r\n // Normalize\r\n x -= b.left;\r\n y -= b.top;\r\n } else if (cache) {\r\n x = cache.x * b.width;\r\n y = cache.y * b.height;\r\n }\r\n\r\n if (!options.lockX) {\r\n element.style.left = `calc(${x / b.width * 100}% - ${element.offsetWidth / 2}px)`;\r\n }\r\n\r\n if (!options.lockY) {\r\n element.style.top = `calc(${y / b.height * 100}% - ${element.offsetWidth / 2}px)`;\r\n }\r\n\r\n that.cache = {x: x / b.width, y: y / b.height};\r\n options.onchange(x, y);\r\n },\r\n\r\n _tapstop() {\r\n _.off(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\r\n _.off(document, ['mousemove', 'touchmove'], that._tapmove);\r\n },\r\n\r\n trigger() {\r\n that._tapmove();\r\n },\r\n\r\n update(x = 0, y = 0) {\r\n const wrapperRect = that.options.wrapper.getBoundingClientRect();\r\n that._tapmove({\r\n clientX: wrapperRect.left + x,\r\n clientY: wrapperRect.top + y\r\n });\r\n },\r\n\r\n destroy() {\r\n const {options, _tapstart} = that;\r\n _.off([options.wrapper, options.element], 'mousedown', _tapstart);\r\n _.off([options.wrapper, options.element], 'touchstart', _tapstart, {\r\n passive: false\r\n });\r\n }\r\n };\r\n\r\n // Initilize\r\n const {options, _tapstart} = that;\r\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\r\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\r\n passive: false\r\n });\r\n\r\n return that;\r\n}\r\n","import * as _ from './../lib/utils';\r\n\r\nexport default function Selectable(opt = {}) {\r\n opt = Object.assign({\r\n onchange: () => 0,\r\n className: '',\r\n elements: []\r\n }, opt);\r\n\r\n const onTap = _.on(opt.elements, 'click', evt => {\r\n opt.elements.forEach(e =>\r\n e.classList[evt.target === e ? 'add' : 'remove'](opt.className)\r\n );\r\n\r\n opt.onchange(evt);\r\n });\r\n\r\n return {\r\n destroy: () => _.off(...onTap)\r\n };\r\n}\r\n","// Import styles\nimport '../scss/pickr.scss';\n\n// Import utils\nimport * as _ from './lib/utils';\nimport * as Color from './lib/color';\n\n// Import classes\nimport {HSVaColor} from './lib/hsvacolor';\nimport Moveable from './helper/moveable';\nimport Selectable from './helper/selectable';\n\nclass Pickr {\n\n // Will be used to prevent specific actions during initilization\n _initializingActive = true;\n\n // Replace element with color picker\n _recalc = true;\n\n // Current and last color for comparison\n _color = HSVaColor();\n _lastColor = HSVaColor();\n _swatchColors = [];\n\n // Evenlistener name: [callbacks]\n _eventListener = {\n 'swatchselect': [],\n 'change': [],\n 'save': [],\n 'init': []\n };\n\n constructor(opt) {\n\n // Assign default values\n this.options = opt = Object.assign({\n useAsButton: false,\n disabled: false,\n comparison: true,\n\n components: {\n interaction: {}\n },\n strings: {},\n\n swatches: null,\n inline: false,\n\n default: 'fff',\n defaultRepresentation: null,\n position: 'middle',\n adjustableNumbers: true,\n showAlways: false,\n\n closeWithKey: 'Escape'\n }, opt);\n const {swatches, inline, components} = opt;\n\n // Check interaction section\n if (!components.interaction) {\n components.interaction = {};\n }\n\n // Overwrite palette if preview, opacity or hue are true\n const {preview, opacity, hue, palette} = components;\n components.palette = palette || preview || opacity || hue;\n\n // Per default enabled if inline\n if (inline) {\n opt.showAlways = true;\n }\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\n\n // Finalize build\n this._finalBuild();\n\n // Append pre-defined swatch colors\n if (swatches && swatches.length) {\n swatches.forEach(color => this.addSwatch(color));\n }\n\n // Initilization is finish, pickr is visible and ready for usage\n const {button} = this._root;\n requestAnimationFrame((function cb() {\n\n // offsetParent of body is always 0. So check if it is the body\n if (button.offsetParent === null && button !== document.body) {\n return requestAnimationFrame(cb.bind(this));\n }\n\n // Apply default color\n this.setColor(opt.default);\n\n // Initialize color representation\n if (opt.defaultRepresentation) {\n this._representation = opt.defaultRepresentation;\n this.setColorRepresentation(this._representation);\n }\n\n // Show pickr if locked\n opt.showAlways && this.show();\n\n // Initialization is done - pickr is usable, fire init event\n this._initializingActive = false;\n this._emit('init');\n }).bind(this));\n }\n\n // Does only the absolutly basic thing to initialize the components\n _preBuild() {\n const opt = this.options;\n\n // Check if element is selector\n if (typeof opt.el === 'string') {\n opt.el = document.querySelector(opt.el);\n }\n\n // Create element and append it to body to\n // prevent initialization errors\n this._root = create(opt);\n\n // Check if a custom button is used\n if (opt.useAsButton) {\n this._root.button = opt.el; // Replace button with customized button\n }\n\n document.body.appendChild(this._root.root);\n }\n\n _finalBuild() {\n const opt = this.options;\n const root = this._root;\n\n // Remove from body\n document.body.removeChild(root.root);\n\n if (opt.inline) {\n const {parentElement} = opt.el;\n\n if (parentElement.lastChild === opt.el) {\n parentElement.appendChild(root.app);\n } else {\n parentElement.insertBefore(root.app, opt.el.nextSibling);\n }\n } else {\n document.body.appendChild(root.app);\n }\n\n // Don't replace the the element if a custom button is used\n if (!opt.useAsButton) {\n\n // Replace element with actual color-picker\n opt.el.parentElement.replaceChild(root.root, opt.el);\n }\n\n // Call disable to also add the disabled class\n if (opt.disabled) {\n this.disable();\n }\n\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\n if (!opt.comparison) {\n root.button.style.transition = 'none';\n if (!opt.useAsButton) {\n root.preview.lastColor.style.transition = 'none';\n }\n }\n\n this.hide();\n }\n\n _buildComponents() {\n\n // Instance reference\n const inst = this;\n const comp = this.options.components;\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onchange(x, y) {\n if (!comp.palette) return;\n const {_color, _root, options} = inst;\n\n // Calculate saturation based on the position\n _color.s = (x / this.wrapper.offsetWidth) * 100;\n\n // Calculate the value\n _color.v = 100 - (y / this.wrapper.offsetHeight) * 100;\n\n // Prevent falling under zero\n _color.v < 0 ? _color.v = 0 : 0;\n\n // Set picker and gradient color\n const cssRGBaString = _color.toRGBA().toString();\n this.element.style.background = cssRGBaString;\n this.wrapper.style.background = `\n linear-gradient(to top, rgba(0, 0, 0, ${_color.a}), transparent), \n linear-gradient(to left, hsla(${_color.h}, 100%, 50%, ${_color.a}), rgba(255, 255, 255, ${_color.a}))\n `;\n\n // Check if color is locked\n if (!options.comparison) {\n _root.button.style.color = cssRGBaString;\n\n if (!options.useAsButton) {\n _root.preview.lastColor.style.color = cssRGBaString;\n }\n }\n\n // Change current color\n _root.preview.currentColor.style.color = cssRGBaString;\n\n // Update the input field only if the user is currently not typing\n if (inst._recalc) {\n inst._updateOutput();\n }\n\n // If the user changes the color, remove the cleared icon\n _root.button.classList.remove('clear');\n }\n }),\n\n hue: Moveable({\n lockX: true,\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\n onchange(x, y) {\n if (!comp.hue || !comp.palette) return;\n\n // Calculate hue\n inst._color.h = (y / this.wrapper.offsetHeight) * 360;\n\n // Update color\n this.element.style.backgroundColor = `hsl(${inst._color.h}, 100%, 50%)`;\n components.palette.trigger();\n }\n }),\n\n opacity: Moveable({\n lockX: true,\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\n onchange(x, y) {\n if (!comp.opacity || !comp.palette) return;\n\n // Calculate opacity\n inst._color.a = Math.round(((y / this.wrapper.offsetHeight)) * 1e2) / 100;\n\n // Update color\n this.element.style.background = `rgba(0, 0, 0, ${inst._color.a})`;\n inst.components.palette.trigger();\n }\n }),\n\n selectable: Selectable({\n elements: inst._root.interaction.options,\n className: 'active',\n onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._updateOutput();\n }\n })\n };\n\n this.components = components;\n }\n\n _bindEvents() {\n const {_root, options} = this;\n\n const eventBindings = [\n\n // Clear color\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\n\n // Select last color on click\n _.on(_root.preview.lastColor, 'click', () => this.setHSVA(...this._lastColor.toHSVA())),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\n this._recalc = false;\n\n // Fire listener if initialization is finish and changed color was valid\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\n this._emit('change', this._color);\n }\n\n e.stopImmediatePropagation();\n }),\n\n // Cancel input detection on color change\n _.on([\n _root.palette.palette,\n _root.palette.picker,\n _root.hue.slider,\n _root.hue.picker,\n _root.opacity.slider,\n _root.opacity.picker\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\n ];\n\n // Provide hiding / showing abilities only if showAlways is false\n if (!options.showAlways) {\n const ck = options.closeWithKey;\n\n eventBindings.push(\n // Save and hide / show picker\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\n\n // Close with escape key\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\n\n // Cancel selecting if the user taps behind the color picker\n _.on(document, ['touchstart', 'mousedown'], e => {\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\n this.hide();\n }\n }, {capture: true})\n );\n }\n\n // Make input adjustable if enabled\n if (options.adjustableNumbers) {\n _.adjustableInputNumbers(_root.interaction.result, false);\n }\n\n if (!options.inline) {\n let updateTimeout;\n\n // Re-calc position on window resize, scroll and wheel\n eventBindings.push(_.on(window, ['scroll', 'wheel', 'resize'], () => {\n if (this.isOpen()) {\n this.hide();\n\n if (updateTimeout) {\n clearTimeout(updateTimeout);\n }\n\n updateTimeout = setTimeout(() => this.show(), 250);\n }\n }));\n }\n\n // Save bindings\n this._eventBindings = eventBindings;\n }\n\n _rePositioningPicker = (() => {\n const padding = 8;\n let left, top;\n\n return () => {\n\n // No repositioning needed if inline\n if (this.options.inline) {\n return;\n }\n\n const {app, button} = this._root;\n const {innerWidth, innerHeight} = window;\n const bb = button.getBoundingClientRect();\n const ab = app.getBoundingClientRect();\n\n // Check if picker is cuttet of from the top & bottom\n if (innerHeight - (bb.bottom + ab.height + padding) < 0) {\n top = bb.top - ab.height - padding;\n } else {\n top = bb.bottom + padding;\n }\n\n // Positioning picker on the x-axis\n const pos = {\n left: bb.left + bb.width - ab.width,\n middle: (-ab.width / 2) + (bb.left + bb.width / 2),\n right: bb.left\n };\n\n const wantedLeft = pos[this.options.position];\n if (left + wantedLeft > innerWidth) {\n left = pos['left'];\n } else if (wantedLeft < 0) {\n left = pos['right'];\n } else {\n left = wantedLeft;\n }\n\n Object.assign(app.style, {\n left: `${left}px`,\n top: `${top}px`\n });\n };\n })();\n\n _updateOutput() {\n\n // Check if component is present\n if (this._root.interaction.type()) {\n\n // Construct function name and call if present\n const method = `to${this._root.interaction.type().getAttribute('data-type')}`;\n this._root.interaction.result.value = typeof this._color[method] === 'function' ? this._color[method]().toString() : '';\n }\n\n // Fire listener if initialization is finish\n if (!this._initializingActive) {\n this._emit('change', this._color);\n }\n }\n\n _clearColor() {\n const {_root, options} = this;\n\n // Change only the button color if it isn't customized\n if (!options.useAsButton) {\n _root.button.style.color = 'rgba(0, 0, 0, 0.15)';\n }\n\n _root.button.classList.add('clear');\n\n if (!options.showAlways) {\n this.hide();\n }\n\n if (!this._initializingActive) {\n\n // Fire listener\n this._emit('save', null);\n }\n }\n\n _emit(event, ...args) {\n this._eventListener[event].forEach(cb => cb(...args, this));\n }\n\n on(event, cb) {\n\n // Validate\n if (typeof cb === 'function' && typeof event === 'string' && event in this._eventListener) {\n this._eventListener[event].push(cb);\n }\n\n return this;\n }\n\n off(event, cb) {\n const callBacks = this._eventListener[event];\n\n if (callBacks) {\n const index = callBacks.indexOf(cb);\n\n if (~index) {\n callBacks.splice(index, 1);\n }\n }\n\n return this;\n }\n\n /**\n * Appends a color to the swatch palette\n * @param color\n * @returns {boolean}\n */\n addSwatch(color) {\n const {values} = Color.parseToHSV(color);\n\n if (values) {\n const {_swatchColors, _root} = this;\n const hsvaColorObject = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const element = _.createElementFromString(\n ``\n );\n\n // Append element and save swatch data\n _root.swatches.appendChild(element);\n _swatchColors.push({element, hsvaColorObject});\n\n // Bind event\n this._eventBindings.push(\n _.on(element, 'click', () => {\n this.setHSVA(...hsvaColorObject.toHSVA(), true);\n this._emit('swatchselect', hsvaColorObject);\n })\n );\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Removes a swatch color by it's index\n * @param index\n * @returns {boolean}\n */\n removeSwatch(index) {\n\n // Validate index\n if (typeof index === 'number') {\n const swatchColor = this._swatchColors[index];\n\n // Check swatch data\n if (swatchColor) {\n const {element} = swatchColor;\n\n // Remove HTML child and swatch data\n this._root.swatches.removeChild(element);\n this._swatchColors.splice(index, 1);\n return true;\n }\n }\n\n return false;\n }\n\n applyColor(silent = false) {\n const {preview, button} = this._root;\n\n // Change preview and current color\n const cssRGBaString = this._color.toRGBA().toString();\n preview.lastColor.style.color = cssRGBaString;\n\n // Change only the button color if it isn't customized\n if (!this.options.useAsButton) {\n button.style.color = cssRGBaString;\n }\n\n // User changed the color so remove the clear clas\n button.classList.remove('clear');\n\n // Save last color\n this._lastColor = this._color.clone();\n\n // Fire listener\n if (!this._initializingActive && !silent) {\n this._emit('save', this._color);\n }\n }\n\n /**\n * Destroy's all functionalitys\n */\n destroy() {\n this._eventBindings.forEach(args => _.off(...args));\n Object.keys(this.components).forEach(key => this.components[key].destroy());\n }\n\n /**\n * Destroy's all functionalitys and removes\n * the pickr element.\n */\n destroyAndRemove() {\n this.destroy();\n\n // Remove element\n const root = this._root.root;\n root.parentElement.removeChild(root);\n\n // remove .pcr-app\n const app = this._root.app;\n app.parentElement.removeChild(app);\n\n // There are references to various DOM elements stored in the pickr instance\n // This cleans all of them to avoid detached DOMs\n const pickr = this;\n Object.keys(pickr).forEach(key => pickr[key] = null);\n }\n\n /**\n * Hides the color-picker ui.\n */\n hide() {\n this._root.app.classList.remove('visible');\n return this;\n }\n\n /**\n * Shows the color-picker ui.\n */\n show() {\n if (this.options.disabled) return;\n this._root.app.classList.add('visible');\n this._rePositioningPicker();\n return this;\n }\n\n /**\n * @return {boolean} If the color picker is currently open\n */\n isOpen() {\n return this._root.app.classList.contains('visible');\n }\n\n /**\n * Set a specific color.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @param a Alpha channel (0 - 1)\n * @param silent If the button should not change the color\n * @return boolean if the color has been accepted\n */\n setHSVA(h = 360, s = 0, v = 0, a = 1, silent = false) {\n\n // Deactivate color calculation\n const recalc = this._recalc; // Save state\n this._recalc = false;\n\n // Validate input\n if (h < 0 || h > 360 || s < 0 || s > 100 || v < 0 || v > 100 || a < 0 || a > 1) {\n return false;\n }\n\n // Short names\n const {hue, opacity, palette} = this.components;\n\n // Calculate y position of hue slider\n const hueWrapper = hue.options.wrapper;\n const hueY = hueWrapper.offsetHeight * (h / 360);\n hue.update(0, hueY);\n\n // Calculate y position of opacity slider\n const opacityWrapper = opacity.options.wrapper;\n const opacityY = opacityWrapper.offsetHeight * a;\n opacity.update(0, opacityY);\n\n // Calculate y and x position of color palette\n const pickerWrapper = palette.options.wrapper;\n const pickerX = pickerWrapper.offsetWidth * (s / 100);\n const pickerY = pickerWrapper.offsetHeight * (1 - (v / 100));\n palette.update(pickerX, pickerY);\n\n // Override current color and re-active color calculation\n this._color = HSVaColor(h, s, v, a);\n this._recalc = recalc; // Restore old state\n\n // Update output if recalculation is enabled\n if (this._recalc) {\n this._updateOutput();\n }\n\n // Check if call is silent\n if (!silent) {\n this.applyColor();\n }\n\n return true;\n }\n\n /**\n * Tries to parse a string which represents a color.\n * Examples: #fff\n * rgb 10 10 200\n * hsva 10 20 5 0.5\n * @param string\n * @param silent\n */\n setColor(string, silent = false) {\n\n // Check if null\n if (string === null) {\n this._clearColor();\n return true;\n }\n\n const {values, type} = Color.parseToHSV(string);\n\n // Check if color is ok\n if (values) {\n\n // Change selected color format\n const utype = type.toUpperCase();\n const {options} = this._root.interaction;\n const target = options.find(el => el.getAttribute('data-type').startsWith(utype));\n\n // Auto select only if not hidden\n if (target && !target.hidden) {\n for (const el of options) {\n el.classList[el === target ? 'add' : 'remove']('active');\n }\n }\n\n return this.setHSVA(...values, silent);\n }\n }\n\n /**\n * Changes the color _representation.\n * Allowed values are HEX, RGB, HSV, HSL and CMYK\n * @param type\n * @returns {boolean} if the selected type was valid.\n */\n setColorRepresentation(type) {\n\n // Force uppercase to allow a case-sensitiv comparison\n type = type.toUpperCase();\n\n // Find button with given type and trigger click event\n return !!this._root.interaction.options.find(v => v.getAttribute('data-type').startsWith(type) && !v.click());\n }\n\n /**\n * Returns the current color representaion. See setColorRepresentation\n * @returns {*}\n */\n getColorRepresentation() {\n return this._representation;\n }\n\n /**\n * @returns HSVaColor Current HSVaColor object.\n */\n getColor() {\n return this._color;\n }\n\n /**\n * @returns The root HTMLElement with all his components.\n */\n getRoot() {\n return this._root;\n }\n\n /**\n * Disable pickr\n */\n disable() {\n this.hide();\n this.options.disabled = true;\n this._root.button.classList.add('disabled');\n return this;\n }\n\n /**\n * Enable pickr\n */\n enable() {\n this.options.disabled = false;\n this._root.button.classList.remove('disabled');\n return this;\n }\n}\n\nfunction create(options) {\n const {components, strings, useAsButton, inline} = options;\n const hidden = con => con ? '' : 'style=\"display:none\" hidden';\n\n const root = _.createFromTemplate(`\n
\n \n ${useAsButton ? '' : ''}\n\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n\n
\n \n\n \n \n \n \n \n\n \n \n
\n
\n
\n `);\n\n const int = root.interaction;\n\n // Select option which is not hidden\n int.options.find(o => !o.hidden && !o.classList.add('active'));\n\n // Create method to find currenlty active option\n int.type = () => int.options.find(e => e.classList.contains('active'));\n return root;\n}\n\n// Static methods\nPickr.utils = {\n once: _.once,\n on: _.on,\n off: _.off,\n eventPath: _.eventPath,\n createElementFromString: _.createElementFromString,\n adjustableInputNumbers: _.adjustableInputNumbers,\n removeAttribute: _.removeAttribute,\n createFromTemplate: _.createFromTemplate\n};\n\n// Create instance via method\nPickr.create = (options) => new Pickr(options);\n\n// Export\nPickr.version = '0.4.11';\nexport default Pickr;\n"],"sourceRoot":""}