From bb407e7e5aaba982a25f3bed1117db38479a4659 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 12 Aug 2019 18:47:32 +0200 Subject: [PATCH] Remove even more duplicate css code --- dist/pickr.es5.min.js.map | 2 +- dist/pickr.min.js.map | 2 +- dist/themes/classic.min.css | 2 +- dist/themes/monolith.min.css | 2 +- dist/themes/nano.min.css | 2 +- scripts/build.js | 9 ++++----- src/scss/base.scss | 30 ++++++++++++++++++++++++++++++ src/scss/themes/classic.scss | 27 --------------------------- src/scss/themes/monolith.scss | 27 --------------------------- src/scss/themes/nano.scss | 27 --------------------------- st/script.js | 10 +++++----- 11 files changed, 44 insertions(+), 96 deletions(-) diff --git a/dist/pickr.es5.min.js.map b/dist/pickr.es5.min.js.map index be6ad27c..97b6dc38 100644 --- a/dist/pickr.es5.min.js.map +++ b/dist/pickr.es5.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/js/utils/utils.js","webpack:///./src/js/utils/color.js","webpack:///./src/js/utils/hsvacolor.js","webpack:///./src/js/libs/moveable.js","webpack:///./src/js/libs/selectable.js","webpack:///./src/js/libs/nanopop.js","webpack:///./src/js/pickr.js","webpack:///./src/js/template.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","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","el","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","ev","_objectSpread","capture","err","return","slice","createElementFromString","html","div","document","createElement","innerHTML","trim","firstElementChild","removeAttribute","getAttribute","createFromTemplate","str","resolve","element","base","con","subtree","_i","_Array$from","children","child","arr","sub","push","keys","eventPath","evt","path","composedPath","target","parentElement","adjustableInputNumbers","mapper","v","handleScroll","e","inc","Number","shiftKey","ctrlKey","deltaY","index","selectionStart","replace","focus","setSelectionRange","preventDefault","dispatchEvent","Event","passive","min","Math","max","floor","round","hsvToRgb","h","f","q","mod","rgbToHsv","g","b","minVal","maxVal","delta","dr","dg","db","cmykToHsv","y","k","_toConsumableArray","hslToHsv","hexToHsv","hex","apply","match","map","parseInt","parseToHSVA","toLowerCase","ctx","getContext","fillStyle","standardizeColor","regex","cmyk","rgba","hsla","hsva","hexa","numarize","array","test","invalid","type","exec","alpha","_numarize2","_slicedToArray","values","_numarize4","a","concat","split","join","raw","substring","_numarize6","_numarize8","HSVaColor","original","precision","toFixed","that","toHSVA","toString","toHSLA","hsvacolor_toConsumableArray","hsvToHsl","toRGBA","toCMYK","rgb","hsvToCmyk","toHEXA","padStart","hsvToHex","toUpperCase","clone","clamp","Moveable","opt","assign","lock","onchange","onstop","_tapstart","_","_tapstop","_tapmove","cache","wrapper","getBoundingClientRect","x","touch","touches","clientX","clientY","left","width","top","height","style","offsetWidth","offsetHeight","cx","cy","trigger","update","_that$options$wrapper","destroy","Selectable","className","onTap","forEach","classList","selectable_toConsumableArray","Nanopop","_ref","reference","_ref$padding","padding","vBehaviour","start","middle","end","hBehaviour","right","bottom","getInfo","pos","cached","_pos$split","_pos$split2","nanopop_slicedToArray","position","_pos$split2$","variant","isVertical","_getInfo","rb","eb","variants","vertical","leastApplied","bevs","vars","styleprop","adder","win","sv","_i2","_arr2","rot","v2Ok","v1Ok","Pickr","_this","this","_classCallCheck","pickr_defineProperty","init","save","hide","show","clear","change","changestop","cancel","swatchselect","appClass","theme","useAsButton","disabled","comparison","closeOnScroll","outputPrecision","lockOpacity","autoReposition","components","interaction","strings","swatches","inline","sliders","default","defaultRepresentation","adjustableNumbers","showAlways","closeWithKey","_opt","includes","preview","opacity","hue","palette","_preBuild","_buildComponents","_bindEvents","_finalBuild","color","addSwatch","_nanopop","_root","button","app","requestAnimationFrame","cb","body","setColor","_rePositioningPicker","_representation","setColorRepresentation","_initializingActive","_emit","lo","hidden","int","reduce","pv","cv","ci","querySelector","shadowRoot","input","find","add","contains","appendChild","removeChild","parent","nextSibling","insertBefore","remove","parentNode","replaceChild","disable","transition","lastColor","inst","cs","repeat","_ref2","pickr_slicedToArray","so","sh","picker","_color","_recalc","_updateOutput","cssRGBaString","background","_swatchColors","_ref4","currentColor","slider","backgroundColor","selectable","_components","_this2","eventBindings","_clearColor","setHSVA","pickr_toConsumableArray","_lastColor","applyColor","result","stopImmediatePropagation","ck","isOpen","code","some","ranges","step","range","getColorRepresentation","nv","toPrecision","timeout","setTimeout","rs","clearTimeout","_eventBindings","matchMedia","matches","margin","silent","_parseToHSVA","alphaMakesAChange","event","_this3","_len","args","_key","_eventListener","callBacks","indexOf","splice","_this4","_parseLocalColor","swatchColor","_this$_root","_this5","_this6","_this$_root2","recalc","_this$_components","string","_this$_parseLocalColo2","utype","startsWith","click","utils","libs","version"],"mappings":"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","file":"pickr.es5.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 = 0);\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 for (const el of elements) {\n for (const ev of events) {\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 ':ref' attribute will be saved in a object (which will be returned)\n * where the value of ':ref' is the object-key and the value the HTMLElement.\n *\n * It's possible to create a hierarchy if you add a ':obj' 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 ':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, ':obj');\n const key = removeAttribute(element, ':ref');\n const subtree = con ? (base[con] = {}) : base;\n\n // Check and save element\n key && (base[key] = element);\n for (const child of Array.from(element.children)) {\n const arr = removeAttribute(child, ':arr');\n const sub = resolve(child, arr ? {} : subtree);\n\n if (arr) {\n\n // Check if there is already an array and add element\n (subtree[arr] || (subtree[arr] = []))\n .push(Object.keys(sub).length ? sub : child);\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 mapper\n */\nexport function adjustableInputNumbers(el, mapper = v => v) {\n\n function handleScroll(e) {\n const inc = ([0.001, 0.01, 0.1])[Number(e.shiftKey || e.ctrlKey * 2)] * (e.deltaY < 0 ? 1 : -1);\n\n let index = 0;\n let off = el.selectionStart;\n el.value = el.value.replace(/[\\d.]+/g, (v, i) => {\n\n // Check if number is in cursor range and increase it\n if (i <= off && i + v.length >= off) {\n off = i;\n return mapper(Number(v), inc, index);\n }\n\n index++;\n return v;\n });\n\n el.focus();\n el.setSelectionRange(off, off);\n\n // Prevent default and trigger input event\n e.preventDefault();\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","// 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\n // Since invalid color's will be parsed as black, filter them out\n if (name.toLowerCase() === 'black') {\n return '#000';\n }\n\n const ctx = document.createElement('canvas').getContext('2d');\n ctx.fillStyle = name;\n return ctx.fillStyle === '#000' ? null : 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 const i = floor(h);\n\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n const mod = i % 6;\n const r = [v, q, p, p, t, v][mod];\n const g = [t, v, v, q, p, p][mod];\n const 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 round(v).toString(16).padStart(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 const 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 const dr = (((maxVal - r) / 6) + (delta / 2)) / delta;\n const dg = (((maxVal - g) / 6) + (delta / 2)) / delta;\n const 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;\n m /= 100;\n y /= 100;\n 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;\n l /= 100;\n s *= l < 0.5 ? l : 1 - l;\n\n const ns = (2 * s / (l + s)) * 100;\n const 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 parseToHSVA(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: /^((rgba)|rgb)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\n hsla: /^((hsla)|hsl)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\n hsva: /^((hsva)|hsv)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\n hexa: /^#?(([\\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 invalid: for (const type in regex) {\n\n // Check if current scheme passed\n if (!(match = regex[type].exec(str)))\n continue;\n\n // match[2] does only contain a truly value if rgba, hsla, or hsla got matched\n const alpha = !!match[2];\n\n // Try to convert\n switch (type) {\n case 'cmyk': {\n const [, c, m, y, k] = numarize(match);\n\n if (c > 100 || m > 100 || y > 100 || k > 100)\n break invalid;\n\n return {values: cmykToHsv(c, m, y, k), type};\n }\n case 'rgba': {\n const [, , , r, g, b, a] = numarize(match);\n\n if (r > 255 || g > 255 || b > 255 || a < 0 || a > 1 || (alpha === !a))\n break invalid;\n\n return {values: [...rgbToHsv(r, g, b), a], a, type};\n }\n case 'hexa': {\n let [, hex] = match;\n\n if (hex.length === 4 || hex.length === 3) {\n hex = hex.split('').map(v => v + v).join('');\n }\n\n const raw = hex.substring(0, 6);\n let a = hex.substring(6);\n\n // Convert 0 - 255 to 0 - 1 for opacity\n a = a ? (parseInt(a, 16) / 255) : undefined;\n\n return {values: [...hexToHsv(raw), a], a, type};\n }\n case 'hsla': {\n const [, , , h, s, l, a] = numarize(match);\n\n if (h > 360 || s > 100 || l > 100 || a < 0 || a > 1 || (alpha === !a))\n break invalid;\n\n return {values: [...hslToHsv(h, s, l), a], a, type};\n }\n case 'hsva': {\n const [, , , h, s, v, a] = numarize(match);\n\n if (h > 360 || s > 100 || v > 100 || a < 0 || a > 1 || (alpha === !a))\n break invalid;\n\n return {values: [h, s, v, a], a, type};\n }\n }\n }\n\n return {values: null, type: null};\n}\n","import {hsvToHsl, hsvToRgb, hsvToCmyk, hsvToHex} from './color';\r\n\r\n/**\r\n * Simple class which holds the properties\r\n * of the color represention model hsla (hue saturation lightness alpha)\r\n */\r\nexport function HSVaColor(h = 0, s = 0, v = 0, a = 1) {\r\n const mapper = (original, next) => (precision = -1) => {\r\n return next(~precision ? original.map(v => Number(v.toFixed(precision))) : original);\r\n };\r\n\r\n const that = {\r\n h, s, v, a,\r\n\r\n toHSVA() {\r\n const hsva = [that.h, that.s, that.v, that.a];\r\n hsva.toString = mapper(hsva, arr => `hsva(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\r\n return hsva;\r\n },\r\n\r\n toHSLA() {\r\n const hsla = [...hsvToHsl(that.h, that.s, that.v), that.a];\r\n hsla.toString = mapper(hsla, arr => `hsla(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\r\n return hsla;\r\n },\r\n\r\n toRGBA() {\r\n const rgba = [...hsvToRgb(that.h, that.s, that.v), that.a];\r\n rgba.toString = mapper(rgba, arr => `rgba(${arr[0]}, ${arr[1]}, ${arr[2]}, ${that.a})`);\r\n return rgba;\r\n },\r\n\r\n toCMYK() {\r\n const cmyk = hsvToCmyk(that.h, that.s, that.v);\r\n cmyk.toString = mapper(cmyk, arr => `cmyk(${arr[0]}%, ${arr[1]}%, ${arr[2]}%, ${arr[3]}%)`);\r\n return cmyk;\r\n },\r\n\r\n toHEXA() {\r\n const hex = hsvToHex(that.h, that.s, that.v);\r\n\r\n // Check if alpha channel make sense, convert it to 255 number space, convert\r\n // to hex and pad it with zeros if needet.\r\n const alpha = that.a >= 1 ? '' : Number((that.a * 255).toFixed(0))\r\n .toString(16)\r\n .toUpperCase().padStart(2, '0');\r\n\r\n alpha && hex.push(alpha);\r\n hex.toString = () => `#${hex.join('').toUpperCase()}`;\r\n return hex;\r\n },\r\n\r\n clone: () => HSVaColor(that.h, that.s, that.v, that.a)\r\n };\r\n\r\n return that;\r\n}\r\n","import * as _ from '../utils/utils';\n\nconst clamp = v => Math.max(Math.min(v, 1), 0);\nexport default function Moveable(opt) {\n\n const that = {\n\n // Assign default values\n options: Object.assign({\n lock: null,\n onchange: () => 0,\n onstop: () => 0\n }, opt),\n\n _tapstart(evt) {\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\n\n // Prevent default touch event\n evt.preventDefault();\n\n // Trigger\n that._tapmove(evt);\n },\n\n _tapmove(evt) {\n const {options: {lock}, cache} = that;\n const {element, wrapper} = options;\n const b = wrapper.getBoundingClientRect();\n\n let x = 0, y = 0;\n if (evt) {\n const touch = evt && evt.touches && evt.touches[0];\n x = evt ? (touch || evt).clientX : 0;\n y = evt ? (touch || evt).clientY : 0;\n\n // Reset to bounds\n if (x < b.left) x = b.left;\n else if (x > b.left + b.width) x = b.left + b.width;\n if (y < b.top) y = b.top;\n else if (y > b.top + b.height) y = b.top + b.height;\n\n // Normalize\n x -= b.left;\n y -= b.top;\n } else if (cache) {\n x = cache.x * b.width;\n y = cache.y * b.height;\n }\n\n if (lock !== 'h') {\n element.style.left = `calc(${x / b.width * 100}% - ${element.offsetWidth / 2}px)`;\n }\n\n if (lock !== 'v') {\n element.style.top = `calc(${y / b.height * 100}% - ${element.offsetHeight / 2}px)`;\n }\n\n that.cache = {x: x / b.width, y: y / b.height};\n const cx = clamp(x / wrapper.offsetWidth);\n const cy = clamp(y / wrapper.offsetHeight);\n\n switch (lock) {\n case 'v':\n return options.onchange(cx);\n case 'h':\n return options.onchange(cy);\n default:\n return options.onchange(cx, cy);\n }\n },\n\n _tapstop() {\n that.options.onstop();\n _.off(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.off(document, ['mousemove', 'touchmove'], that._tapmove);\n },\n\n trigger() {\n that._tapmove();\n },\n\n update(x = 0, y = 0) {\n const {left, top, width, height} = that.options.wrapper.getBoundingClientRect();\n\n if (that.options.lock === 'h') {\n y = x;\n }\n\n that._tapmove({\n clientX: left + width * x,\n clientY: top + height * y\n });\n },\n\n destroy() {\n const {options, _tapstart} = that;\n _.off([options.wrapper, options.element], 'mousedown', _tapstart);\n _.off([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n }\n };\n\n // Initilize\n const {options, _tapstart} = that;\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n\n return that;\n}\n","import * as _ from '../utils/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","/**\r\n * Micro positioning-engine\r\n * @param el\r\n * @param reference\r\n * @param pos\r\n * @param padding\r\n * @returns {{update(): void}}\r\n * @constructor\r\n */\r\nexport default function Nanopop({el, reference, padding = 8}) {\r\n const vBehaviour = {start: 'sme', middle: 'mse', end: 'ems'};\r\n const hBehaviour = {top: 'tbrl', right: 'rltb', bottom: 'btrl', left: 'lrbt'};\r\n\r\n const getInfo = ((cache = {}) => (pos, cached = cache[pos]) => {\r\n if (cached) return cached;\r\n const [position, variant = 'middle'] = pos.split('-');\r\n const isVertical = (position === 'top' || position === 'bottom');\r\n\r\n return cache[pos] = {\r\n position,\r\n variant,\r\n isVertical\r\n };\r\n })();\r\n\r\n return {\r\n update(pos) {\r\n const {position, variant, isVertical} = getInfo(pos);\r\n const rb = reference.getBoundingClientRect();\r\n const eb = el.getBoundingClientRect();\r\n\r\n const positions = vertical => vertical ? {\r\n t: rb.top - eb.height - padding,\r\n b: rb.bottom + padding\r\n } : {\r\n r: rb.right + padding,\r\n l: rb.left - eb.width - padding\r\n };\r\n\r\n const variants = vertical => vertical ? {\r\n s: rb.left + rb.width - eb.width,\r\n m: (-eb.width / 2) + (rb.left + rb.width / 2),\r\n e: rb.left\r\n } : {\r\n s: rb.bottom - eb.height,\r\n m: rb.bottom - rb.height / 2 - eb.height / 2,\r\n e: rb.bottom - rb.height\r\n };\r\n\r\n const leastApplied = {};\r\n\r\n function apply(bevs, vars, styleprop) {\r\n const vertical = styleprop === 'top';\r\n const adder = vertical ? eb.height : eb.width;\r\n const win = window[vertical ? 'innerHeight' : 'innerWidth'];\r\n\r\n for (const ch of bevs) {\r\n const v = vars[ch];\r\n const sv = leastApplied[styleprop] = `${v}px`;\r\n\r\n if (v > 0 && (v + adder) < win) {\r\n el.style[styleprop] = sv;\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n for (const rot of [isVertical, !isVertical]) {\r\n const v2Ok = apply(hBehaviour[position], positions(rot), rot ? 'top' : 'left');\r\n const v1Ok = apply(vBehaviour[variant], variants(rot), rot ? 'left' : 'top');\r\n\r\n if (v2Ok && v1Ok) {\r\n return;\r\n }\r\n }\r\n\r\n el.style.left = leastApplied.left;\r\n el.style.top = leastApplied.top;\r\n }\r\n };\r\n}\r\n","// Import utils\nimport * as _ from './utils/utils';\nimport {parseToHSVA} from './utils/color';\n\n// Import classes\nimport {HSVaColor} from './utils/hsvacolor';\nimport Moveable from './libs/moveable';\nimport Selectable from './libs/selectable';\nimport Nanopop from './libs/nanopop';\nimport buildPickr from './template';\n\nclass Pickr {\n\n // Will be used to prevent specific actions during initilization\n _initializingActive = true;\n\n // If the current color value should be recalculated\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 init: [],\n save: [],\n hide: [],\n show: [],\n clear: [],\n change: [],\n changestop: [],\n cancel: [],\n swatchselect: []\n };\n\n constructor(opt) {\n\n // Assign default values\n this.options = opt = Object.assign({\n appClass: null,\n theme: 'classic',\n useAsButton: false,\n disabled: false,\n comparison: true,\n closeOnScroll: false,\n outputPrecision: 0,\n lockOpacity: false,\n autoReposition: true,\n\n components: {\n interaction: {}\n },\n\n strings: {},\n swatches: null,\n inline: false,\n sliders: null,\n\n default: '#42445a',\n defaultRepresentation: null,\n position: 'bottom-middle',\n adjustableNumbers: true,\n showAlways: false,\n\n closeWithKey: 'Escape'\n }, opt);\n\n const {swatches, components, theme, sliders, lockOpacity} = opt;\n\n if (['nano', 'monolith'].includes(theme) && !sliders) {\n opt.sliders = 'h';\n }\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.opacity = (!lockOpacity && opacity);\n components.palette = palette || preview || opacity || hue;\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\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 // Initialize positioning engine\n this._nanopop = Nanopop({\n reference: this._root.button,\n el: this._root.app\n });\n\n // Initilization is finish, pickr is visible and ready for usage\n const {app} = this._root;\n const that = this;\n requestAnimationFrame((function cb() {\n\n if (!app.offsetWidth && app.parentElement !== document.body) {\n return requestAnimationFrame(cb);\n }\n\n // Apply default color\n that.setColor(opt.default);\n that._rePositioningPicker();\n\n // Initialize color representation\n if (opt.defaultRepresentation) {\n that._representation = opt.defaultRepresentation;\n that.setColorRepresentation(that._representation);\n }\n\n // Show pickr if locked\n if (opt.showAlways) {\n that.show();\n }\n\n // Initialization is done - pickr is usable, fire init event\n that._initializingActive = false;\n that._emit('init');\n }));\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\n // Resolve possible shadow dom access\n opt.el = opt.el.split(/>>/g).reduce((pv, cv, ci, a) => {\n pv = pv.querySelector(cv);\n return ci < a.length - 1 ? pv.shadowRoot : pv;\n }, document);\n }\n\n // Create element and append it to body to\n // prevent initialization errors\n this._root = buildPickr(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 parent = opt.el.parentElement;\n\n if (opt.el.nextSibling) {\n parent.insertBefore(root.app, opt.el.nextSibling);\n } else {\n parent.appendChild(root.app);\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.parentNode.replaceChild(root.root, opt.el);\n } else if (opt.inline) {\n opt.el.remove();\n }\n\n // Check if it should be immediatly disabled\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 cs = this.options.components;\n const sliders = (inst.options.sliders || 'v').repeat(2);\n const [so, sh] = sliders.match(/^[vh]+$/g) ? sliders : [];\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onstop: () => inst._emit('changestop', inst),\n onchange(x, y) {\n if (!cs.palette) return;\n const {_color, _root, options} = inst;\n\n // Update the input field only if the user is currently not typing\n if (inst._recalc) {\n\n // Calculate saturation based on the position\n _color.s = x * 100;\n\n // Calculate the value\n _color.v = 100 - y * 100;\n\n // Prevent falling under zero\n _color.v < 0 ? _color.v = 0 : 0;\n inst._updateOutput();\n }\n\n // Set picker and gradient color\n const cssRGBaString = _color.toRGBA().toString(0);\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 // Check if there's a swatch which color matches the current one\n const hexa = _color.toHEXA().toString();\n for (const {el, color} of inst._swatchColors) {\n el.classList[hexa === color.toHEXA().toString() ? 'add' : 'remove']('pcr-active');\n }\n\n // Change current color\n _root.preview.currentColor.style.color = cssRGBaString;\n\n if (!inst.options.comparison) {\n\n // If the user changes the color, remove the cleared icon\n _root.button.classList.remove('clear');\n }\n }\n }),\n\n hue: Moveable({\n lock: sh === 'v' ? 'h' : 'v',\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\n onstop: () => inst._emit('changestop', inst),\n onchange(v) {\n if (!cs.hue || !cs.palette) return;\n\n // Calculate hue\n if (inst._recalc) {\n inst._color.h = v * 360;\n }\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 lock: so === 'v' ? 'h' : 'v',\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\n onstop: () => inst._emit('changestop', inst),\n onchange(v) {\n if (!cs.opacity || !cs.palette) return;\n\n // Calculate opacity\n if (inst._recalc) {\n inst._color.a = Math.round(v * 1e2) / 100;\n }\n\n // Update color\n this.element.style.background = `rgba(0, 0, 0, ${inst._color.a})`;\n components.palette.trigger();\n }\n }),\n\n selectable: Selectable({\n elements: inst._root.interaction.options,\n className: 'active',\n\n onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._recalc && 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([\n _root.interaction.cancel,\n _root.preview.lastColor\n ], 'click', () => {\n this._emit('cancel', this);\n this.setHSVA(...this._lastColor.toHSVA(), true);\n }),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\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 // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['focus', 'blur'], e => {\n this._recalc = e.type === 'blur';\n this._recalc && this._updateOutput();\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 const ranges = {\n rgba: [255, 255, 255, 1],\n hsva: [360, 100, 100, 1],\n hsla: [360, 100, 100, 1],\n cmyk: [100, 100, 100, 100]\n };\n\n _.adjustableInputNumbers(_root.interaction.result, (o, step, index) => {\n const range = ranges[this.getColorRepresentation().toLowerCase()];\n\n if (range) {\n const max = range[index];\n\n // Calculate next reasonable number\n const nv = o + (max >= 100 ? step * 1000 : step);\n\n // Apply range of zero up to max, fix floating-point issues\n return nv <= 0 ? 0 : Number((nv < max ? nv : max).toPrecision(3));\n }\n return o;\n\n });\n }\n\n if (options.autoReposition && !options.inline) {\n let timeout = null;\n const that = this;\n\n // Re-calc position on window resize, scroll and wheel\n eventBindings.push(\n _.on(window, ['scroll', 'resize'], () => {\n if (that.isOpen()) {\n\n if (options.closeOnScroll) {\n that.hide();\n }\n\n if (timeout === null) {\n timeout = setTimeout(() => timeout = null, 100);\n\n // Update position on every frame\n requestAnimationFrame(function rs() {\n that._rePositioningPicker();\n (timeout !== null) && requestAnimationFrame(rs);\n });\n } else {\n clearTimeout(timeout);\n timeout = setTimeout(() => timeout = null, 100);\n }\n }\n }, {capture: true})\n );\n }\n\n // Save bindings\n this._eventBindings = eventBindings;\n }\n\n _rePositioningPicker() {\n const {options} = this;\n\n // No repositioning needed if inline\n if (!options.inline) {\n const {app} = this._root;\n\n if (matchMedia('(max-width: 576px)').matches) {\n Object.assign(app.style, {\n margin: 'auto',\n height: `${app.getBoundingClientRect().height}px`,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n });\n } else {\n Object.assign(app.style, {\n margin: null,\n right: null,\n top: null,\n bottom: null,\n left: null,\n height: null\n });\n\n this._nanopop.update(options.position);\n }\n }\n }\n\n _updateOutput() {\n const {_root, _color, options} = this;\n\n // Check if component is present\n if (_root.interaction.type()) {\n\n // Construct function name and call if present\n const method = `to${_root.interaction.type().getAttribute('data-type')}`;\n _root.interaction.result.value = typeof _color[method] === 'function' ?\n _color[method]().toString(options.outputPrecision) : '';\n }\n\n // Fire listener if initialization is finish\n if (!this._initializingActive && this._recalc) {\n this._emit('change', _color);\n }\n }\n\n _clearColor(silent = false) {\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 && !silent) {\n\n // Fire listener\n this._emit('save', null);\n this._emit('clear', this);\n }\n }\n\n _parseLocalColor(str) {\n const {values, type, a} = parseToHSVA(str);\n const {lockOpacity} = this.options;\n const alphaMakesAChange = a !== undefined && a !== 1;\n\n // If no opacity is applied, add undefined at the very end which gets\n // set to 1 in setHSVA\n if (values && values.length === 3) {\n values[3] = undefined;\n }\n\n return {\n values: (!values || (lockOpacity && alphaMakesAChange)) ? null : values,\n type\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} = this._parseLocalColor(color);\n\n if (values) {\n const {_swatchColors, _root} = this;\n const color = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const el = _.createElementFromString(\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 `);\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"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/js/utils/utils.js","webpack:///./src/js/utils/color.js","webpack:///./src/js/utils/hsvacolor.js","webpack:///./src/js/libs/moveable.js","webpack:///./src/js/libs/selectable.js","webpack:///./src/js/libs/nanopop.js","webpack:///./src/js/pickr.js","webpack:///./src/js/template.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","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","iterator","next","done","el","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","ev","_objectSpread","capture","err","return","slice","createElementFromString","html","div","document","createElement","innerHTML","trim","firstElementChild","removeAttribute","getAttribute","createFromTemplate","str","resolve","element","base","con","subtree","_i","_Array$from","children","child","arr","sub","push","keys","eventPath","evt","path","composedPath","target","parentElement","adjustableInputNumbers","mapper","v","handleScroll","e","inc","Number","shiftKey","ctrlKey","deltaY","index","selectionStart","replace","focus","setSelectionRange","preventDefault","dispatchEvent","Event","passive","min","Math","max","floor","round","hsvToRgb","h","f","q","mod","rgbToHsv","g","b","minVal","maxVal","delta","dr","dg","db","cmykToHsv","y","k","_toConsumableArray","hslToHsv","hexToHsv","hex","apply","match","map","parseInt","parseToHSVA","toLowerCase","ctx","getContext","fillStyle","standardizeColor","regex","cmyk","rgba","hsla","hsva","hexa","numarize","array","test","invalid","type","exec","alpha","_numarize2","_slicedToArray","values","_numarize4","a","concat","split","join","raw","substring","_numarize6","_numarize8","HSVaColor","original","precision","toFixed","that","toHSVA","toString","toHSLA","hsvacolor_toConsumableArray","hsvToHsl","toRGBA","toCMYK","rgb","hsvToCmyk","toHEXA","padStart","hsvToHex","toUpperCase","clone","clamp","Moveable","opt","assign","lock","onchange","onstop","_tapstart","_","_tapstop","_tapmove","cache","wrapper","getBoundingClientRect","x","touch","touches","clientX","clientY","left","width","top","height","style","offsetWidth","offsetHeight","cx","cy","trigger","update","_that$options$wrapper","destroy","Selectable","className","onTap","forEach","classList","selectable_toConsumableArray","Nanopop","_ref","reference","_ref$padding","padding","vBehaviour","start","middle","end","hBehaviour","right","bottom","getInfo","pos","cached","_pos$split","_pos$split2","nanopop_slicedToArray","position","_pos$split2$","variant","isVertical","_getInfo","rb","eb","variants","vertical","leastApplied","bevs","vars","styleprop","adder","win","sv","_i2","_arr2","rot","v2Ok","v1Ok","Pickr","_this","this","_classCallCheck","pickr_defineProperty","init","save","hide","show","clear","change","changestop","cancel","swatchselect","appClass","theme","useAsButton","disabled","comparison","closeOnScroll","outputPrecision","lockOpacity","autoReposition","components","interaction","strings","swatches","inline","sliders","default","defaultRepresentation","adjustableNumbers","showAlways","closeWithKey","_opt","includes","preview","opacity","hue","palette","_preBuild","_buildComponents","_bindEvents","_finalBuild","color","addSwatch","_nanopop","_root","button","app","requestAnimationFrame","cb","body","setColor","_rePositioningPicker","_representation","setColorRepresentation","_initializingActive","_emit","lo","hidden","int","reduce","pv","cv","ci","querySelector","shadowRoot","input","find","add","contains","appendChild","removeChild","parent","nextSibling","insertBefore","remove","parentNode","replaceChild","disable","transition","lastColor","inst","cs","repeat","_ref2","pickr_slicedToArray","so","sh","picker","_color","_recalc","_updateOutput","cssRGBaString","background","_swatchColors","_ref4","currentColor","slider","backgroundColor","selectable","_components","_this2","eventBindings","_clearColor","setHSVA","pickr_toConsumableArray","_lastColor","applyColor","result","stopImmediatePropagation","ck","isOpen","code","some","ranges","step","range","getColorRepresentation","nv","toPrecision","timeout","setTimeout","rs","clearTimeout","_eventBindings","matchMedia","matches","margin","silent","_parseToHSVA","alphaMakesAChange","event","_this3","_len","args","_key","_eventListener","callBacks","indexOf","splice","_this4","_parseLocalColor","swatchColor","_this$_root","_this5","_this6","_this$_root2","recalc","_this$_components","string","_this$_parseLocalColo2","utype","startsWith","click","utils","libs","version"],"mappings":"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","file":"pickr.es5.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 = 0);\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 for (const el of elements) {\n for (const ev of events) {\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 ':ref' attribute will be saved in a object (which will be returned)\n * where the value of ':ref' is the object-key and the value the HTMLElement.\n *\n * It's possible to create a hierarchy if you add a ':obj' 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 ':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, ':obj');\n const key = removeAttribute(element, ':ref');\n const subtree = con ? (base[con] = {}) : base;\n\n // Check and save element\n key && (base[key] = element);\n for (const child of Array.from(element.children)) {\n const arr = removeAttribute(child, ':arr');\n const sub = resolve(child, arr ? {} : subtree);\n\n if (arr) {\n\n // Check if there is already an array and add element\n (subtree[arr] || (subtree[arr] = []))\n .push(Object.keys(sub).length ? sub : child);\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 mapper\n */\nexport function adjustableInputNumbers(el, mapper = v => v) {\n\n function handleScroll(e) {\n const inc = ([0.001, 0.01, 0.1])[Number(e.shiftKey || e.ctrlKey * 2)] * (e.deltaY < 0 ? 1 : -1);\n\n let index = 0;\n let off = el.selectionStart;\n el.value = el.value.replace(/[\\d.]+/g, (v, i) => {\n\n // Check if number is in cursor range and increase it\n if (i <= off && i + v.length >= off) {\n off = i;\n return mapper(Number(v), inc, index);\n }\n\n index++;\n return v;\n });\n\n el.focus();\n el.setSelectionRange(off, off);\n\n // Prevent default and trigger input event\n e.preventDefault();\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","// Shorthands\r\nconst {min, max, floor, round} = Math;\r\n\r\n/**\r\n * Tries to convert a color name to rgb/a hex representation\r\n * @param name\r\n * @returns {string | CanvasGradient | CanvasPattern}\r\n */\r\nfunction standardizeColor(name) {\r\n\r\n // Since invalid color's will be parsed as black, filter them out\r\n if (name.toLowerCase() === 'black') {\r\n return '#000';\r\n }\r\n\r\n const ctx = document.createElement('canvas').getContext('2d');\r\n ctx.fillStyle = name;\r\n return ctx.fillStyle === '#000' ? null : ctx.fillStyle;\r\n}\r\n\r\n/**\r\n * Convert HSV spectrum to RGB.\r\n * @param h Hue\r\n * @param s Saturation\r\n * @param v Value\r\n * @returns {number[]} Array with rgb values.\r\n */\r\nexport function hsvToRgb(h, s, v) {\r\n h = (h / 360) * 6;\r\n s /= 100;\r\n v /= 100;\r\n\r\n const i = floor(h);\r\n\r\n const f = h - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - f * s);\r\n const t = v * (1 - (1 - f) * s);\r\n\r\n const mod = i % 6;\r\n const r = [v, q, p, p, t, v][mod];\r\n const g = [t, v, v, q, p, p][mod];\r\n const b = [p, p, t, v, v, q][mod];\r\n\r\n return [\r\n r * 255,\r\n g * 255,\r\n b * 255\r\n ];\r\n}\r\n\r\n/**\r\n * Convert HSV spectrum to Hex.\r\n * @param h Hue\r\n * @param s Saturation\r\n * @param v Value\r\n * @returns {string[]} Hex values\r\n */\r\nexport function hsvToHex(h, s, v) {\r\n return hsvToRgb(h, s, v).map(v =>\r\n round(v).toString(16).padStart(2, '0')\r\n );\r\n}\r\n\r\n/**\r\n * Convert HSV spectrum to CMYK.\r\n * @param h Hue\r\n * @param s Saturation\r\n * @param v Value\r\n * @returns {number[]} CMYK values\r\n */\r\nexport function hsvToCmyk(h, s, v) {\r\n const rgb = hsvToRgb(h, s, v);\r\n const r = rgb[0] / 255;\r\n const g = rgb[1] / 255;\r\n const b = rgb[2] / 255;\r\n\r\n let k, c, m, y;\r\n\r\n k = min(1 - r, 1 - g, 1 - b);\r\n\r\n c = k === 1 ? 0 : (1 - r - k) / (1 - k);\r\n m = k === 1 ? 0 : (1 - g - k) / (1 - k);\r\n y = k === 1 ? 0 : (1 - b - k) / (1 - k);\r\n\r\n return [\r\n c * 100,\r\n m * 100,\r\n y * 100,\r\n k * 100\r\n ];\r\n}\r\n\r\n/**\r\n * Convert HSV spectrum to HSL.\r\n * @param h Hue\r\n * @param s Saturation\r\n * @param v Value\r\n * @returns {number[]} HSL values\r\n */\r\nexport function hsvToHsl(h, s, v) {\r\n s /= 100, v /= 100;\r\n\r\n const l = (2 - s) * v / 2;\r\n\r\n if (l !== 0) {\r\n if (l === 1) {\r\n s = 0;\r\n } else if (l < 0.5) {\r\n s = s * v / (l * 2);\r\n } else {\r\n s = s * v / (2 - l * 2);\r\n }\r\n }\r\n\r\n return [\r\n h,\r\n s * 100,\r\n l * 100\r\n ];\r\n}\r\n\r\n/**\r\n * Convert RGB to HSV.\r\n * @param r Red\r\n * @param g Green\r\n * @param b Blue\r\n * @return {number[]} HSV values.\r\n */\r\nfunction rgbToHsv(r, g, b) {\r\n r /= 255, g /= 255, b /= 255;\r\n\r\n let h, s, v;\r\n const minVal = min(r, g, b);\r\n const maxVal = max(r, g, b);\r\n const delta = maxVal - minVal;\r\n\r\n v = maxVal;\r\n if (delta === 0) {\r\n h = s = 0;\r\n } else {\r\n s = delta / maxVal;\r\n const dr = (((maxVal - r) / 6) + (delta / 2)) / delta;\r\n const dg = (((maxVal - g) / 6) + (delta / 2)) / delta;\r\n const db = (((maxVal - b) / 6) + (delta / 2)) / delta;\r\n\r\n if (r === maxVal) {\r\n h = db - dg;\r\n } else if (g === maxVal) {\r\n h = (1 / 3) + dr - db;\r\n } else if (b === maxVal) {\r\n h = (2 / 3) + dg - dr;\r\n }\r\n\r\n if (h < 0) {\r\n h += 1;\r\n } else if (h > 1) {\r\n h -= 1;\r\n }\r\n }\r\n\r\n return [\r\n h * 360,\r\n s * 100,\r\n v * 100\r\n ];\r\n}\r\n\r\n/**\r\n * Convert CMYK to HSV.\r\n * @param c Cyan\r\n * @param m Magenta\r\n * @param y Yellow\r\n * @param k Key (Black)\r\n * @return {number[]} HSV values.\r\n */\r\nfunction cmykToHsv(c, m, y, k) {\r\n c /= 100;\r\n m /= 100;\r\n y /= 100;\r\n k /= 100;\r\n\r\n const r = (1 - min(1, c * (1 - k) + k)) * 255;\r\n const g = (1 - min(1, m * (1 - k) + k)) * 255;\r\n const b = (1 - min(1, y * (1 - k) + k)) * 255;\r\n\r\n return [...rgbToHsv(r, g, b)];\r\n}\r\n\r\n/**\r\n * Convert HSL to HSV.\r\n * @param h Hue\r\n * @param s Saturation\r\n * @param l Lightness\r\n * @return {number[]} HSV values.\r\n */\r\nfunction hslToHsv(h, s, l) {\r\n s /= 100;\r\n l /= 100;\r\n s *= l < 0.5 ? l : 1 - l;\r\n\r\n const ns = (2 * s / (l + s)) * 100;\r\n const v = (l + s) * 100;\r\n return [h, ns, v];\r\n}\r\n\r\n/**\r\n * Convert HEX to HSV.\r\n * @param hex Hexadecimal string of rgb colors, can have length 3 or 6.\r\n * @return {number[]} HSV values.\r\n */\r\nfunction hexToHsv(hex) {\r\n return rgbToHsv(...hex.match(/.{2}/g).map(v => parseInt(v, 16)));\r\n}\r\n\r\n/**\r\n * Try's to parse a string which represents a color to a HSV array.\r\n * Current supported types are cmyk, rgba, hsla and hexadecimal.\r\n * @param str\r\n * @return {*}\r\n */\r\nexport function parseToHSVA(str) {\r\n\r\n // Check if string is a color-name\r\n str = str.match(/^[a-zA-Z]+$/) ? standardizeColor(str) : str;\r\n\r\n // Regular expressions to match different types of color represention\r\n const regex = {\r\n cmyk: /^cmyk[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)/i,\r\n rgba: /^((rgba)|rgb)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\r\n hsla: /^((hsla)|hsl)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\r\n hsva: /^((hsva)|hsv)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\r\n hexa: /^#?(([\\dA-Fa-f]{3,4})|([\\dA-Fa-f]{6})|([\\dA-Fa-f]{8}))$/i\r\n };\r\n\r\n /**\r\n * Takes an Array of any type, convert strings which represents\r\n * a number to a number an anything else to undefined.\r\n * @param array\r\n * @return {*}\r\n */\r\n const numarize = array => array.map(v => /^(|\\d+)\\.\\d+|\\d+$/.test(v) ? Number(v) : undefined);\r\n\r\n let match;\r\n invalid: for (const type in regex) {\r\n\r\n // Check if current scheme passed\r\n if (!(match = regex[type].exec(str)))\r\n continue;\r\n\r\n // match[2] does only contain a truly value if rgba, hsla, or hsla got matched\r\n const alpha = !!match[2];\r\n\r\n // Try to convert\r\n switch (type) {\r\n case 'cmyk': {\r\n const [, c, m, y, k] = numarize(match);\r\n\r\n if (c > 100 || m > 100 || y > 100 || k > 100)\r\n break invalid;\r\n\r\n return {values: cmykToHsv(c, m, y, k), type};\r\n }\r\n case 'rgba': {\r\n const [, , , r, g, b, a] = numarize(match);\r\n\r\n if (r > 255 || g > 255 || b > 255 || a < 0 || a > 1 || (alpha === !a))\r\n break invalid;\r\n\r\n return {values: [...rgbToHsv(r, g, b), a], a, type};\r\n }\r\n case 'hexa': {\r\n let [, hex] = match;\r\n\r\n if (hex.length === 4 || hex.length === 3) {\r\n hex = hex.split('').map(v => v + v).join('');\r\n }\r\n\r\n const raw = hex.substring(0, 6);\r\n let a = hex.substring(6);\r\n\r\n // Convert 0 - 255 to 0 - 1 for opacity\r\n a = a ? (parseInt(a, 16) / 255) : undefined;\r\n\r\n return {values: [...hexToHsv(raw), a], a, type};\r\n }\r\n case 'hsla': {\r\n const [, , , h, s, l, a] = numarize(match);\r\n\r\n if (h > 360 || s > 100 || l > 100 || a < 0 || a > 1 || (alpha === !a))\r\n break invalid;\r\n\r\n return {values: [...hslToHsv(h, s, l), a], a, type};\r\n }\r\n case 'hsva': {\r\n const [, , , h, s, v, a] = numarize(match);\r\n\r\n if (h > 360 || s > 100 || v > 100 || a < 0 || a > 1 || (alpha === !a))\r\n break invalid;\r\n\r\n return {values: [h, s, v, a], a, type};\r\n }\r\n }\r\n }\r\n\r\n return {values: null, type: null};\r\n}\r\n","import {hsvToHsl, hsvToRgb, hsvToCmyk, hsvToHex} from './color';\r\n\r\n/**\r\n * Simple class which holds the properties\r\n * of the color represention model hsla (hue saturation lightness alpha)\r\n */\r\nexport function HSVaColor(h = 0, s = 0, v = 0, a = 1) {\r\n const mapper = (original, next) => (precision = -1) => {\r\n return next(~precision ? original.map(v => Number(v.toFixed(precision))) : original);\r\n };\r\n\r\n const that = {\r\n h, s, v, a,\r\n\r\n toHSVA() {\r\n const hsva = [that.h, that.s, that.v, that.a];\r\n hsva.toString = mapper(hsva, arr => `hsva(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\r\n return hsva;\r\n },\r\n\r\n toHSLA() {\r\n const hsla = [...hsvToHsl(that.h, that.s, that.v), that.a];\r\n hsla.toString = mapper(hsla, arr => `hsla(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\r\n return hsla;\r\n },\r\n\r\n toRGBA() {\r\n const rgba = [...hsvToRgb(that.h, that.s, that.v), that.a];\r\n rgba.toString = mapper(rgba, arr => `rgba(${arr[0]}, ${arr[1]}, ${arr[2]}, ${that.a})`);\r\n return rgba;\r\n },\r\n\r\n toCMYK() {\r\n const cmyk = hsvToCmyk(that.h, that.s, that.v);\r\n cmyk.toString = mapper(cmyk, arr => `cmyk(${arr[0]}%, ${arr[1]}%, ${arr[2]}%, ${arr[3]}%)`);\r\n return cmyk;\r\n },\r\n\r\n toHEXA() {\r\n const hex = hsvToHex(that.h, that.s, that.v);\r\n\r\n // Check if alpha channel make sense, convert it to 255 number space, convert\r\n // to hex and pad it with zeros if needet.\r\n const alpha = that.a >= 1 ? '' : Number((that.a * 255).toFixed(0))\r\n .toString(16)\r\n .toUpperCase().padStart(2, '0');\r\n\r\n alpha && hex.push(alpha);\r\n hex.toString = () => `#${hex.join('').toUpperCase()}`;\r\n return hex;\r\n },\r\n\r\n clone: () => HSVaColor(that.h, that.s, that.v, that.a)\r\n };\r\n\r\n return that;\r\n}\r\n","import * as _ from '../utils/utils';\n\nconst clamp = v => Math.max(Math.min(v, 1), 0);\nexport default function Moveable(opt) {\n\n const that = {\n\n // Assign default values\n options: Object.assign({\n lock: null,\n onchange: () => 0,\n onstop: () => 0\n }, opt),\n\n _tapstart(evt) {\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\n\n // Prevent default touch event\n evt.preventDefault();\n\n // Trigger\n that._tapmove(evt);\n },\n\n _tapmove(evt) {\n const {options: {lock}, cache} = that;\n const {element, wrapper} = options;\n const b = wrapper.getBoundingClientRect();\n\n let x = 0, y = 0;\n if (evt) {\n const touch = evt && evt.touches && evt.touches[0];\n x = evt ? (touch || evt).clientX : 0;\n y = evt ? (touch || evt).clientY : 0;\n\n // Reset to bounds\n if (x < b.left) x = b.left;\n else if (x > b.left + b.width) x = b.left + b.width;\n if (y < b.top) y = b.top;\n else if (y > b.top + b.height) y = b.top + b.height;\n\n // Normalize\n x -= b.left;\n y -= b.top;\n } else if (cache) {\n x = cache.x * b.width;\n y = cache.y * b.height;\n }\n\n if (lock !== 'h') {\n element.style.left = `calc(${x / b.width * 100}% - ${element.offsetWidth / 2}px)`;\n }\n\n if (lock !== 'v') {\n element.style.top = `calc(${y / b.height * 100}% - ${element.offsetHeight / 2}px)`;\n }\n\n that.cache = {x: x / b.width, y: y / b.height};\n const cx = clamp(x / wrapper.offsetWidth);\n const cy = clamp(y / wrapper.offsetHeight);\n\n switch (lock) {\n case 'v':\n return options.onchange(cx);\n case 'h':\n return options.onchange(cy);\n default:\n return options.onchange(cx, cy);\n }\n },\n\n _tapstop() {\n that.options.onstop();\n _.off(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.off(document, ['mousemove', 'touchmove'], that._tapmove);\n },\n\n trigger() {\n that._tapmove();\n },\n\n update(x = 0, y = 0) {\n const {left, top, width, height} = that.options.wrapper.getBoundingClientRect();\n\n if (that.options.lock === 'h') {\n y = x;\n }\n\n that._tapmove({\n clientX: left + width * x,\n clientY: top + height * y\n });\n },\n\n destroy() {\n const {options, _tapstart} = that;\n _.off([options.wrapper, options.element], 'mousedown', _tapstart);\n _.off([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n }\n };\n\n // Initilize\n const {options, _tapstart} = that;\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n\n return that;\n}\n","import * as _ from '../utils/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","/**\r\n * Micro positioning-engine\r\n * @param el\r\n * @param reference\r\n * @param pos\r\n * @param padding\r\n * @returns {{update(): void}}\r\n * @constructor\r\n */\r\nexport default function Nanopop({el, reference, padding = 8}) {\r\n const vBehaviour = {start: 'sme', middle: 'mse', end: 'ems'};\r\n const hBehaviour = {top: 'tbrl', right: 'rltb', bottom: 'btrl', left: 'lrbt'};\r\n\r\n const getInfo = ((cache = {}) => (pos, cached = cache[pos]) => {\r\n if (cached) return cached;\r\n const [position, variant = 'middle'] = pos.split('-');\r\n const isVertical = (position === 'top' || position === 'bottom');\r\n\r\n return cache[pos] = {\r\n position,\r\n variant,\r\n isVertical\r\n };\r\n })();\r\n\r\n return {\r\n update(pos) {\r\n const {position, variant, isVertical} = getInfo(pos);\r\n const rb = reference.getBoundingClientRect();\r\n const eb = el.getBoundingClientRect();\r\n\r\n const positions = vertical => vertical ? {\r\n t: rb.top - eb.height - padding,\r\n b: rb.bottom + padding\r\n } : {\r\n r: rb.right + padding,\r\n l: rb.left - eb.width - padding\r\n };\r\n\r\n const variants = vertical => vertical ? {\r\n s: rb.left + rb.width - eb.width,\r\n m: (-eb.width / 2) + (rb.left + rb.width / 2),\r\n e: rb.left\r\n } : {\r\n s: rb.bottom - eb.height,\r\n m: rb.bottom - rb.height / 2 - eb.height / 2,\r\n e: rb.bottom - rb.height\r\n };\r\n\r\n const leastApplied = {};\r\n\r\n function apply(bevs, vars, styleprop) {\r\n const vertical = styleprop === 'top';\r\n const adder = vertical ? eb.height : eb.width;\r\n const win = window[vertical ? 'innerHeight' : 'innerWidth'];\r\n\r\n for (const ch of bevs) {\r\n const v = vars[ch];\r\n const sv = leastApplied[styleprop] = `${v}px`;\r\n\r\n if (v > 0 && (v + adder) < win) {\r\n el.style[styleprop] = sv;\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n for (const rot of [isVertical, !isVertical]) {\r\n const v2Ok = apply(hBehaviour[position], positions(rot), rot ? 'top' : 'left');\r\n const v1Ok = apply(vBehaviour[variant], variants(rot), rot ? 'left' : 'top');\r\n\r\n if (v2Ok && v1Ok) {\r\n return;\r\n }\r\n }\r\n\r\n el.style.left = leastApplied.left;\r\n el.style.top = leastApplied.top;\r\n }\r\n };\r\n}\r\n","// Import utils\r\nimport * as _ from './utils/utils';\r\nimport {parseToHSVA} from './utils/color';\r\n\r\n// Import classes\r\nimport {HSVaColor} from './utils/hsvacolor';\r\nimport Moveable from './libs/moveable';\r\nimport Selectable from './libs/selectable';\r\nimport Nanopop from './libs/nanopop';\r\nimport buildPickr from './template';\r\n\r\nclass Pickr {\r\n\r\n // Will be used to prevent specific actions during initilization\r\n _initializingActive = true;\r\n\r\n // If the current color value should be recalculated\r\n _recalc = true;\r\n\r\n // Current and last color for comparison\r\n _color = HSVaColor();\r\n _lastColor = HSVaColor();\r\n _swatchColors = [];\r\n\r\n // Evenlistener name: [callbacks]\r\n _eventListener = {\r\n init: [],\r\n save: [],\r\n hide: [],\r\n show: [],\r\n clear: [],\r\n change: [],\r\n changestop: [],\r\n cancel: [],\r\n swatchselect: []\r\n };\r\n\r\n constructor(opt) {\r\n\r\n // Assign default values\r\n this.options = opt = Object.assign({\r\n appClass: null,\r\n theme: 'classic',\r\n useAsButton: false,\r\n disabled: false,\r\n comparison: true,\r\n closeOnScroll: false,\r\n outputPrecision: 0,\r\n lockOpacity: false,\r\n autoReposition: true,\r\n\r\n components: {\r\n interaction: {}\r\n },\r\n\r\n strings: {},\r\n swatches: null,\r\n inline: false,\r\n sliders: null,\r\n\r\n default: '#42445a',\r\n defaultRepresentation: null,\r\n position: 'bottom-middle',\r\n adjustableNumbers: true,\r\n showAlways: false,\r\n\r\n closeWithKey: 'Escape'\r\n }, opt);\r\n\r\n const {swatches, components, theme, sliders, lockOpacity} = opt;\r\n\r\n if (['nano', 'monolith'].includes(theme) && !sliders) {\r\n opt.sliders = 'h';\r\n }\r\n\r\n // Check interaction section\r\n if (!components.interaction) {\r\n components.interaction = {};\r\n }\r\n\r\n // Overwrite palette if preview, opacity or hue are true\r\n const {preview, opacity, hue, palette} = components;\r\n components.opacity = (!lockOpacity && opacity);\r\n components.palette = palette || preview || opacity || hue;\r\n\r\n // Initialize picker\r\n this._preBuild();\r\n this._buildComponents();\r\n this._bindEvents();\r\n this._finalBuild();\r\n\r\n // Append pre-defined swatch colors\r\n if (swatches && swatches.length) {\r\n swatches.forEach(color => this.addSwatch(color));\r\n }\r\n\r\n // Initialize positioning engine\r\n this._nanopop = Nanopop({\r\n reference: this._root.button,\r\n el: this._root.app\r\n });\r\n\r\n // Initilization is finish, pickr is visible and ready for usage\r\n const {app} = this._root;\r\n const that = this;\r\n requestAnimationFrame((function cb() {\r\n\r\n if (!app.offsetWidth && app.parentElement !== document.body) {\r\n return requestAnimationFrame(cb);\r\n }\r\n\r\n // Apply default color\r\n that.setColor(opt.default);\r\n that._rePositioningPicker();\r\n\r\n // Initialize color representation\r\n if (opt.defaultRepresentation) {\r\n that._representation = opt.defaultRepresentation;\r\n that.setColorRepresentation(that._representation);\r\n }\r\n\r\n // Show pickr if locked\r\n if (opt.showAlways) {\r\n that.show();\r\n }\r\n\r\n // Initialization is done - pickr is usable, fire init event\r\n that._initializingActive = false;\r\n that._emit('init');\r\n }));\r\n }\r\n\r\n // Does only the absolutly basic thing to initialize the components\r\n _preBuild() {\r\n const opt = this.options;\r\n\r\n // Check if element is selector\r\n if (typeof opt.el === 'string') {\r\n\r\n // Resolve possible shadow dom access\r\n opt.el = opt.el.split(/>>/g).reduce((pv, cv, ci, a) => {\r\n pv = pv.querySelector(cv);\r\n return ci < a.length - 1 ? pv.shadowRoot : pv;\r\n }, document);\r\n }\r\n\r\n // Create element and append it to body to\r\n // prevent initialization errors\r\n this._root = buildPickr(opt);\r\n\r\n // Check if a custom button is used\r\n if (opt.useAsButton) {\r\n this._root.button = opt.el; // Replace button with customized button\r\n }\r\n\r\n document.body.appendChild(this._root.root);\r\n }\r\n\r\n _finalBuild() {\r\n const opt = this.options;\r\n const root = this._root;\r\n\r\n // Remove from body\r\n document.body.removeChild(root.root);\r\n\r\n if (opt.inline) {\r\n const parent = opt.el.parentElement;\r\n\r\n if (opt.el.nextSibling) {\r\n parent.insertBefore(root.app, opt.el.nextSibling);\r\n } else {\r\n parent.appendChild(root.app);\r\n }\r\n } else {\r\n document.body.appendChild(root.app);\r\n }\r\n\r\n // Don't replace the the element if a custom button is used\r\n if (!opt.useAsButton) {\r\n\r\n // Replace element with actual color-picker\r\n opt.el.parentNode.replaceChild(root.root, opt.el);\r\n } else if (opt.inline) {\r\n opt.el.remove();\r\n }\r\n\r\n // Check if it should be immediatly disabled\r\n if (opt.disabled) {\r\n this.disable();\r\n }\r\n\r\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\r\n if (!opt.comparison) {\r\n root.button.style.transition = 'none';\r\n if (!opt.useAsButton) {\r\n root.preview.lastColor.style.transition = 'none';\r\n }\r\n }\r\n\r\n this.hide();\r\n }\r\n\r\n _buildComponents() {\r\n\r\n // Instance reference\r\n const inst = this;\r\n const cs = this.options.components;\r\n const sliders = (inst.options.sliders || 'v').repeat(2);\r\n const [so, sh] = sliders.match(/^[vh]+$/g) ? sliders : [];\r\n\r\n const components = {\r\n\r\n palette: Moveable({\r\n element: inst._root.palette.picker,\r\n wrapper: inst._root.palette.palette,\r\n\r\n onstop: () => inst._emit('changestop', inst),\r\n onchange(x, y) {\r\n if (!cs.palette) return;\r\n const {_color, _root, options} = inst;\r\n\r\n // Update the input field only if the user is currently not typing\r\n if (inst._recalc) {\r\n\r\n // Calculate saturation based on the position\r\n _color.s = x * 100;\r\n\r\n // Calculate the value\r\n _color.v = 100 - y * 100;\r\n\r\n // Prevent falling under zero\r\n _color.v < 0 ? _color.v = 0 : 0;\r\n inst._updateOutput();\r\n }\r\n\r\n // Set picker and gradient color\r\n const cssRGBaString = _color.toRGBA().toString(0);\r\n this.element.style.background = cssRGBaString;\r\n this.wrapper.style.background = `\r\n linear-gradient(to top, rgba(0, 0, 0, ${_color.a}), transparent),\r\n linear-gradient(to left, hsla(${_color.h}, 100%, 50%, ${_color.a}), rgba(255, 255, 255, ${_color.a}))\r\n `;\r\n\r\n // Check if color is locked\r\n if (!options.comparison) {\r\n _root.button.style.color = cssRGBaString;\r\n\r\n if (!options.useAsButton) {\r\n _root.preview.lastColor.style.color = cssRGBaString;\r\n }\r\n }\r\n\r\n // Check if there's a swatch which color matches the current one\r\n const hexa = _color.toHEXA().toString();\r\n for (const {el, color} of inst._swatchColors) {\r\n el.classList[hexa === color.toHEXA().toString() ? 'add' : 'remove']('pcr-active');\r\n }\r\n\r\n // Change current color\r\n _root.preview.currentColor.style.color = cssRGBaString;\r\n\r\n if (!inst.options.comparison) {\r\n\r\n // If the user changes the color, remove the cleared icon\r\n _root.button.classList.remove('clear');\r\n }\r\n }\r\n }),\r\n\r\n hue: Moveable({\r\n lock: sh === 'v' ? 'h' : 'v',\r\n element: inst._root.hue.picker,\r\n wrapper: inst._root.hue.slider,\r\n\r\n onstop: () => inst._emit('changestop', inst),\r\n onchange(v) {\r\n if (!cs.hue || !cs.palette) return;\r\n\r\n // Calculate hue\r\n if (inst._recalc) {\r\n inst._color.h = v * 360;\r\n }\r\n\r\n // Update color\r\n this.element.style.backgroundColor = `hsl(${inst._color.h}, 100%, 50%)`;\r\n components.palette.trigger();\r\n }\r\n }),\r\n\r\n opacity: Moveable({\r\n lock: so === 'v' ? 'h' : 'v',\r\n element: inst._root.opacity.picker,\r\n wrapper: inst._root.opacity.slider,\r\n\r\n onstop: () => inst._emit('changestop', inst),\r\n onchange(v) {\r\n if (!cs.opacity || !cs.palette) return;\r\n\r\n // Calculate opacity\r\n if (inst._recalc) {\r\n inst._color.a = Math.round(v * 1e2) / 100;\r\n }\r\n\r\n // Update color\r\n this.element.style.background = `rgba(0, 0, 0, ${inst._color.a})`;\r\n components.palette.trigger();\r\n }\r\n }),\r\n\r\n selectable: Selectable({\r\n elements: inst._root.interaction.options,\r\n className: 'active',\r\n\r\n onchange(e) {\r\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\r\n inst._recalc && inst._updateOutput();\r\n }\r\n })\r\n };\r\n\r\n this._components = components;\r\n }\r\n\r\n _bindEvents() {\r\n const {_root, options} = this;\r\n\r\n const eventBindings = [\r\n\r\n // Clear color\r\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\r\n\r\n // Select last color on click\r\n _.on([\r\n _root.interaction.cancel,\r\n _root.preview.lastColor\r\n ], 'click', () => {\r\n this._emit('cancel', this);\r\n this.setHSVA(...this._lastColor.toHSVA(), true);\r\n }),\r\n\r\n // Save color\r\n _.on(_root.interaction.save, 'click', () => {\r\n !this.applyColor() && !options.showAlways && this.hide();\r\n }),\r\n\r\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\r\n\r\n // Fire listener if initialization is finish and changed color was valid\r\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\r\n this._emit('change', this._color);\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n }),\r\n\r\n // Detect user input and disable auto-recalculation\r\n _.on(_root.interaction.result, ['focus', 'blur'], e => {\r\n this._recalc = e.type === 'blur';\r\n this._recalc && this._updateOutput();\r\n }),\r\n\r\n // Cancel input detection on color change\r\n _.on([\r\n _root.palette.palette,\r\n _root.palette.picker,\r\n _root.hue.slider,\r\n _root.hue.picker,\r\n _root.opacity.slider,\r\n _root.opacity.picker\r\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\r\n ];\r\n\r\n // Provide hiding / showing abilities only if showAlways is false\r\n if (!options.showAlways) {\r\n const ck = options.closeWithKey;\r\n\r\n eventBindings.push(\r\n // Save and hide / show picker\r\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\r\n\r\n // Close with escape key\r\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\r\n\r\n // Cancel selecting if the user taps behind the color picker\r\n _.on(document, ['touchstart', 'mousedown'], e => {\r\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\r\n this.hide();\r\n }\r\n }, {capture: true})\r\n );\r\n }\r\n\r\n // Make input adjustable if enabled\r\n if (options.adjustableNumbers) {\r\n const ranges = {\r\n rgba: [255, 255, 255, 1],\r\n hsva: [360, 100, 100, 1],\r\n hsla: [360, 100, 100, 1],\r\n cmyk: [100, 100, 100, 100]\r\n };\r\n\r\n _.adjustableInputNumbers(_root.interaction.result, (o, step, index) => {\r\n const range = ranges[this.getColorRepresentation().toLowerCase()];\r\n\r\n if (range) {\r\n const max = range[index];\r\n\r\n // Calculate next reasonable number\r\n const nv = o + (max >= 100 ? step * 1000 : step);\r\n\r\n // Apply range of zero up to max, fix floating-point issues\r\n return nv <= 0 ? 0 : Number((nv < max ? nv : max).toPrecision(3));\r\n }\r\n return o;\r\n\r\n });\r\n }\r\n\r\n if (options.autoReposition && !options.inline) {\r\n let timeout = null;\r\n const that = this;\r\n\r\n // Re-calc position on window resize, scroll and wheel\r\n eventBindings.push(\r\n _.on(window, ['scroll', 'resize'], () => {\r\n if (that.isOpen()) {\r\n\r\n if (options.closeOnScroll) {\r\n that.hide();\r\n }\r\n\r\n if (timeout === null) {\r\n timeout = setTimeout(() => timeout = null, 100);\r\n\r\n // Update position on every frame\r\n requestAnimationFrame(function rs() {\r\n that._rePositioningPicker();\r\n (timeout !== null) && requestAnimationFrame(rs);\r\n });\r\n } else {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => timeout = null, 100);\r\n }\r\n }\r\n }, {capture: true})\r\n );\r\n }\r\n\r\n // Save bindings\r\n this._eventBindings = eventBindings;\r\n }\r\n\r\n _rePositioningPicker() {\r\n const {options} = this;\r\n\r\n // No repositioning needed if inline\r\n if (!options.inline) {\r\n const {app} = this._root;\r\n\r\n if (matchMedia('(max-width: 576px)').matches) {\r\n Object.assign(app.style, {\r\n margin: 'auto',\r\n height: `${app.getBoundingClientRect().height}px`,\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n });\r\n } else {\r\n Object.assign(app.style, {\r\n margin: null,\r\n right: null,\r\n top: null,\r\n bottom: null,\r\n left: null,\r\n height: null\r\n });\r\n\r\n this._nanopop.update(options.position);\r\n }\r\n }\r\n }\r\n\r\n _updateOutput() {\r\n const {_root, _color, options} = this;\r\n\r\n // Check if component is present\r\n if (_root.interaction.type()) {\r\n\r\n // Construct function name and call if present\r\n const method = `to${_root.interaction.type().getAttribute('data-type')}`;\r\n _root.interaction.result.value = typeof _color[method] === 'function' ?\r\n _color[method]().toString(options.outputPrecision) : '';\r\n }\r\n\r\n // Fire listener if initialization is finish\r\n if (!this._initializingActive && this._recalc) {\r\n this._emit('change', _color);\r\n }\r\n }\r\n\r\n _clearColor(silent = false) {\r\n const {_root, options} = this;\r\n\r\n // Change only the button color if it isn't customized\r\n if (!options.useAsButton) {\r\n _root.button.style.color = 'rgba(0, 0, 0, 0.15)';\r\n }\r\n\r\n _root.button.classList.add('clear');\r\n\r\n if (!options.showAlways) {\r\n this.hide();\r\n }\r\n\r\n if (!this._initializingActive && !silent) {\r\n\r\n // Fire listener\r\n this._emit('save', null);\r\n this._emit('clear', this);\r\n }\r\n }\r\n\r\n _parseLocalColor(str) {\r\n const {values, type, a} = parseToHSVA(str);\r\n const {lockOpacity} = this.options;\r\n const alphaMakesAChange = a !== undefined && a !== 1;\r\n\r\n // If no opacity is applied, add undefined at the very end which gets\r\n // set to 1 in setHSVA\r\n if (values && values.length === 3) {\r\n values[3] = undefined;\r\n }\r\n\r\n return {\r\n values: (!values || (lockOpacity && alphaMakesAChange)) ? null : values,\r\n type\r\n };\r\n }\r\n\r\n _emit(event, ...args) {\r\n this._eventListener[event].forEach(cb => cb(...args, this));\r\n }\r\n\r\n on(event, cb) {\r\n\r\n // Validate\r\n if (typeof cb === 'function' && typeof event === 'string' && event in this._eventListener) {\r\n this._eventListener[event].push(cb);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n off(event, cb) {\r\n const callBacks = this._eventListener[event];\r\n\r\n if (callBacks) {\r\n const index = callBacks.indexOf(cb);\r\n\r\n if (~index) {\r\n callBacks.splice(index, 1);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Appends a color to the swatch palette\r\n * @param color\r\n * @returns {boolean}\r\n */\r\n addSwatch(color) {\r\n const {values} = this._parseLocalColor(color);\r\n\r\n if (values) {\r\n const {_swatchColors, _root} = this;\r\n const color = HSVaColor(...values);\r\n\r\n // Create new swatch HTMLElement\r\n const el = _.createElementFromString(\r\n `'}\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n `);\r\n\r\n const int = root.interaction;\r\n\r\n // Select option which is not hidden\r\n int.options.find(o => !o.hidden && !o.classList.add('active'));\r\n\r\n // Create method to find currenlty active option\r\n int.type = () => int.options.find(e => e.classList.contains('active'));\r\n return root;\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/pickr.min.js.map b/dist/pickr.min.js.map index a1152064..59a81766 100644 --- a/dist/pickr.min.js.map +++ b/dist/pickr.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/js/utils/utils.js","webpack:///./src/js/utils/color.js","webpack:///./src/js/utils/hsvacolor.js","webpack:///./src/js/libs/moveable.js","webpack:///./src/js/libs/selectable.js","webpack:///./src/js/libs/nanopop.js","webpack:///./src/js/template.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","HTMLCollection","NodeList","Array","from","isArray","el","ev","_objectSpread","capture","slice","arguments","createElementFromString","html","div","document","createElement","innerHTML","trim","firstElementChild","removeAttribute","getAttribute","createFromTemplate","str","resolve","element","base","con","subtree","child","children","arr","sub","push","keys","length","eventPath","evt","path","composedPath","target","parentElement","adjustableInputNumbers","mapper","v","handleScroll","e","inc","Number","shiftKey","ctrlKey","deltaY","index","selectionStart","replace","focus","setSelectionRange","preventDefault","dispatchEvent","Event","passive","min","max","floor","round","Math","hsvToRgb","h","f","q","mod","hsvToHsl","rgbToHsv","g","b","minVal","maxVal","delta","dr","dg","db","cmykToHsv","y","k","hslToHsv","hexToHsv","hex","match","map","parseInt","parseToHSVA","toLowerCase","ctx","getContext","fillStyle","standardizeColor","regex","cmyk","rgba","hsla","hsva","hexa","numarize","array","test","undefined","invalid","type","exec","alpha","values","a","split","join","raw","substring","HSVaColor","original","next","precision","toFixed","that","toHSVA","toString","concat","toHSLA","toRGBA","toCMYK","rgb","hsvToCmyk","toHEXA","padStart","hsvToHex","toUpperCase","clone","clamp","Moveable","opt","assign","lock","onchange","onstop","_tapstart","_","_tapstop","_tapmove","cache","wrapper","getBoundingClientRect","x","touch","touches","clientX","clientY","left","width","top","height","style","offsetWidth","offsetHeight","cx","cy","trigger","update","destroy","Selectable","className","onTap","forEach","classList","Nanopop","reference","padding","vBehaviour","start","middle","end","hBehaviour","right","bottom","getInfo","pos","cached","position","variant","isVertical","rb","eb","positions","vertical","variants","leastApplied","apply","bevs","vars","styleprop","adder","win","ch","sv","rot","v2Ok","v1Ok","template","components","strings","useAsButton","inline","appClass","theme","lockOpacity","lo","hidden","palette","preview","hue","opacity","interaction","input","save","cancel","clear","int","find","add","contains","Pickr","constructor","pickr_defineProperty","this","init","hide","show","change","changestop","swatchselect","disabled","comparison","closeOnScroll","outputPrecision","autoReposition","swatches","sliders","default","defaultRepresentation","adjustableNumbers","showAlways","closeWithKey","includes","_preBuild","_buildComponents","_bindEvents","_finalBuild","color","addSwatch","_nanopop","_root","button","app","requestAnimationFrame","cb","body","setColor","_rePositioningPicker","_representation","setColorRepresentation","_initializingActive","_emit","reduce","pv","cv","ci","querySelector","shadowRoot","buildPickr","appendChild","removeChild","parent","nextSibling","insertBefore","remove","parentNode","replaceChild","disable","transition","lastColor","inst","cs","repeat","so","sh","picker","_color","_recalc","_updateOutput","cssRGBaString","background","_ref","_swatchColors","currentColor","slider","backgroundColor","selectable","_components","eventBindings","_clearColor","setHSVA","_lastColor","applyColor","result","stopImmediatePropagation","ck","isOpen","code","some","ranges","step","range","getColorRepresentation","nv","toPrecision","timeout","setTimeout","rs","clearTimeout","_eventBindings","matchMedia","matches","margin","silent","_parseLocalColor","alphaMakesAChange","event","args","_eventListener","callBacks","indexOf","splice","removeSwatch","swatchColor","destroyAndRemove","recalc","string","utype","startsWith","click","getColor","getRoot","enable","utils","libs","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 = 0);\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 for (const el of elements) {\n for (const ev of events) {\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 ':ref' attribute will be saved in a object (which will be returned)\n * where the value of ':ref' is the object-key and the value the HTMLElement.\n *\n * It's possible to create a hierarchy if you add a ':obj' 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 ':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, ':obj');\n const key = removeAttribute(element, ':ref');\n const subtree = con ? (base[con] = {}) : base;\n\n // Check and save element\n key && (base[key] = element);\n for (const child of Array.from(element.children)) {\n const arr = removeAttribute(child, ':arr');\n const sub = resolve(child, arr ? {} : subtree);\n\n if (arr) {\n\n // Check if there is already an array and add element\n (subtree[arr] || (subtree[arr] = []))\n .push(Object.keys(sub).length ? sub : child);\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 mapper\n */\nexport function adjustableInputNumbers(el, mapper = v => v) {\n\n function handleScroll(e) {\n const inc = ([0.001, 0.01, 0.1])[Number(e.shiftKey || e.ctrlKey * 2)] * (e.deltaY < 0 ? 1 : -1);\n\n let index = 0;\n let off = el.selectionStart;\n el.value = el.value.replace(/[\\d.]+/g, (v, i) => {\n\n // Check if number is in cursor range and increase it\n if (i <= off && i + v.length >= off) {\n off = i;\n return mapper(Number(v), inc, index);\n }\n\n index++;\n return v;\n });\n\n el.focus();\n el.setSelectionRange(off, off);\n\n // Prevent default and trigger input event\n e.preventDefault();\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","// 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\n // Since invalid color's will be parsed as black, filter them out\n if (name.toLowerCase() === 'black') {\n return '#000';\n }\n\n const ctx = document.createElement('canvas').getContext('2d');\n ctx.fillStyle = name;\n return ctx.fillStyle === '#000' ? null : 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 const i = floor(h);\n\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n\n const mod = i % 6;\n const r = [v, q, p, p, t, v][mod];\n const g = [t, v, v, q, p, p][mod];\n const 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 round(v).toString(16).padStart(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 const 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 const dr = (((maxVal - r) / 6) + (delta / 2)) / delta;\n const dg = (((maxVal - g) / 6) + (delta / 2)) / delta;\n const 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;\n m /= 100;\n y /= 100;\n 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;\n l /= 100;\n s *= l < 0.5 ? l : 1 - l;\n\n const ns = (2 * s / (l + s)) * 100;\n const 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 parseToHSVA(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: /^((rgba)|rgb)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\n hsla: /^((hsla)|hsl)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\n hsva: /^((hsva)|hsv)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]+([\\d.]+)[\\D]*?([\\d.]+|$)/i,\n hexa: /^#?(([\\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 invalid: for (const type in regex) {\n\n // Check if current scheme passed\n if (!(match = regex[type].exec(str)))\n continue;\n\n // match[2] does only contain a truly value if rgba, hsla, or hsla got matched\n const alpha = !!match[2];\n\n // Try to convert\n switch (type) {\n case 'cmyk': {\n const [, c, m, y, k] = numarize(match);\n\n if (c > 100 || m > 100 || y > 100 || k > 100)\n break invalid;\n\n return {values: cmykToHsv(c, m, y, k), type};\n }\n case 'rgba': {\n const [, , , r, g, b, a] = numarize(match);\n\n if (r > 255 || g > 255 || b > 255 || a < 0 || a > 1 || (alpha === !a))\n break invalid;\n\n return {values: [...rgbToHsv(r, g, b), a], a, type};\n }\n case 'hexa': {\n let [, hex] = match;\n\n if (hex.length === 4 || hex.length === 3) {\n hex = hex.split('').map(v => v + v).join('');\n }\n\n const raw = hex.substring(0, 6);\n let a = hex.substring(6);\n\n // Convert 0 - 255 to 0 - 1 for opacity\n a = a ? (parseInt(a, 16) / 255) : undefined;\n\n return {values: [...hexToHsv(raw), a], a, type};\n }\n case 'hsla': {\n const [, , , h, s, l, a] = numarize(match);\n\n if (h > 360 || s > 100 || l > 100 || a < 0 || a > 1 || (alpha === !a))\n break invalid;\n\n return {values: [...hslToHsv(h, s, l), a], a, type};\n }\n case 'hsva': {\n const [, , , h, s, v, a] = numarize(match);\n\n if (h > 360 || s > 100 || v > 100 || a < 0 || a > 1 || (alpha === !a))\n break invalid;\n\n return {values: [h, s, v, a], a, type};\n }\n }\n }\n\n return {values: null, type: null};\n}\n","import {hsvToHsl, hsvToRgb, hsvToCmyk, hsvToHex} from './color';\r\n\r\n/**\r\n * Simple class which holds the properties\r\n * of the color represention model hsla (hue saturation lightness alpha)\r\n */\r\nexport function HSVaColor(h = 0, s = 0, v = 0, a = 1) {\r\n const mapper = (original, next) => (precision = -1) => {\r\n return next(~precision ? original.map(v => Number(v.toFixed(precision))) : original);\r\n };\r\n\r\n const that = {\r\n h, s, v, a,\r\n\r\n toHSVA() {\r\n const hsva = [that.h, that.s, that.v, that.a];\r\n hsva.toString = mapper(hsva, arr => `hsva(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\r\n return hsva;\r\n },\r\n\r\n toHSLA() {\r\n const hsla = [...hsvToHsl(that.h, that.s, that.v), that.a];\r\n hsla.toString = mapper(hsla, arr => `hsla(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\r\n return hsla;\r\n },\r\n\r\n toRGBA() {\r\n const rgba = [...hsvToRgb(that.h, that.s, that.v), that.a];\r\n rgba.toString = mapper(rgba, arr => `rgba(${arr[0]}, ${arr[1]}, ${arr[2]}, ${that.a})`);\r\n return rgba;\r\n },\r\n\r\n toCMYK() {\r\n const cmyk = hsvToCmyk(that.h, that.s, that.v);\r\n cmyk.toString = mapper(cmyk, arr => `cmyk(${arr[0]}%, ${arr[1]}%, ${arr[2]}%, ${arr[3]}%)`);\r\n return cmyk;\r\n },\r\n\r\n toHEXA() {\r\n const hex = hsvToHex(that.h, that.s, that.v);\r\n\r\n // Check if alpha channel make sense, convert it to 255 number space, convert\r\n // to hex and pad it with zeros if needet.\r\n const alpha = that.a >= 1 ? '' : Number((that.a * 255).toFixed(0))\r\n .toString(16)\r\n .toUpperCase().padStart(2, '0');\r\n\r\n alpha && hex.push(alpha);\r\n hex.toString = () => `#${hex.join('').toUpperCase()}`;\r\n return hex;\r\n },\r\n\r\n clone: () => HSVaColor(that.h, that.s, that.v, that.a)\r\n };\r\n\r\n return that;\r\n}\r\n","import * as _ from '../utils/utils';\n\nconst clamp = v => Math.max(Math.min(v, 1), 0);\nexport default function Moveable(opt) {\n\n const that = {\n\n // Assign default values\n options: Object.assign({\n lock: null,\n onchange: () => 0,\n onstop: () => 0\n }, opt),\n\n _tapstart(evt) {\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\n\n // Prevent default touch event\n evt.preventDefault();\n\n // Trigger\n that._tapmove(evt);\n },\n\n _tapmove(evt) {\n const {options: {lock}, cache} = that;\n const {element, wrapper} = options;\n const b = wrapper.getBoundingClientRect();\n\n let x = 0, y = 0;\n if (evt) {\n const touch = evt && evt.touches && evt.touches[0];\n x = evt ? (touch || evt).clientX : 0;\n y = evt ? (touch || evt).clientY : 0;\n\n // Reset to bounds\n if (x < b.left) x = b.left;\n else if (x > b.left + b.width) x = b.left + b.width;\n if (y < b.top) y = b.top;\n else if (y > b.top + b.height) y = b.top + b.height;\n\n // Normalize\n x -= b.left;\n y -= b.top;\n } else if (cache) {\n x = cache.x * b.width;\n y = cache.y * b.height;\n }\n\n if (lock !== 'h') {\n element.style.left = `calc(${x / b.width * 100}% - ${element.offsetWidth / 2}px)`;\n }\n\n if (lock !== 'v') {\n element.style.top = `calc(${y / b.height * 100}% - ${element.offsetHeight / 2}px)`;\n }\n\n that.cache = {x: x / b.width, y: y / b.height};\n const cx = clamp(x / wrapper.offsetWidth);\n const cy = clamp(y / wrapper.offsetHeight);\n\n switch (lock) {\n case 'v':\n return options.onchange(cx);\n case 'h':\n return options.onchange(cy);\n default:\n return options.onchange(cx, cy);\n }\n },\n\n _tapstop() {\n that.options.onstop();\n _.off(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.off(document, ['mousemove', 'touchmove'], that._tapmove);\n },\n\n trigger() {\n that._tapmove();\n },\n\n update(x = 0, y = 0) {\n const {left, top, width, height} = that.options.wrapper.getBoundingClientRect();\n\n if (that.options.lock === 'h') {\n y = x;\n }\n\n that._tapmove({\n clientX: left + width * x,\n clientY: top + height * y\n });\n },\n\n destroy() {\n const {options, _tapstart} = that;\n _.off([options.wrapper, options.element], 'mousedown', _tapstart);\n _.off([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n }\n };\n\n // Initilize\n const {options, _tapstart} = that;\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n\n return that;\n}\n","import * as _ from '../utils/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","/**\r\n * Micro positioning-engine\r\n * @param el\r\n * @param reference\r\n * @param pos\r\n * @param padding\r\n * @returns {{update(): void}}\r\n * @constructor\r\n */\r\nexport default function Nanopop({el, reference, padding = 8}) {\r\n const vBehaviour = {start: 'sme', middle: 'mse', end: 'ems'};\r\n const hBehaviour = {top: 'tbrl', right: 'rltb', bottom: 'btrl', left: 'lrbt'};\r\n\r\n const getInfo = ((cache = {}) => (pos, cached = cache[pos]) => {\r\n if (cached) return cached;\r\n const [position, variant = 'middle'] = pos.split('-');\r\n const isVertical = (position === 'top' || position === 'bottom');\r\n\r\n return cache[pos] = {\r\n position,\r\n variant,\r\n isVertical\r\n };\r\n })();\r\n\r\n return {\r\n update(pos) {\r\n const {position, variant, isVertical} = getInfo(pos);\r\n const rb = reference.getBoundingClientRect();\r\n const eb = el.getBoundingClientRect();\r\n\r\n const positions = vertical => vertical ? {\r\n t: rb.top - eb.height - padding,\r\n b: rb.bottom + padding\r\n } : {\r\n r: rb.right + padding,\r\n l: rb.left - eb.width - padding\r\n };\r\n\r\n const variants = vertical => vertical ? {\r\n s: rb.left + rb.width - eb.width,\r\n m: (-eb.width / 2) + (rb.left + rb.width / 2),\r\n e: rb.left\r\n } : {\r\n s: rb.bottom - eb.height,\r\n m: rb.bottom - rb.height / 2 - eb.height / 2,\r\n e: rb.bottom - rb.height\r\n };\r\n\r\n const leastApplied = {};\r\n\r\n function apply(bevs, vars, styleprop) {\r\n const vertical = styleprop === 'top';\r\n const adder = vertical ? eb.height : eb.width;\r\n const win = window[vertical ? 'innerHeight' : 'innerWidth'];\r\n\r\n for (const ch of bevs) {\r\n const v = vars[ch];\r\n const sv = leastApplied[styleprop] = `${v}px`;\r\n\r\n if (v > 0 && (v + adder) < win) {\r\n el.style[styleprop] = sv;\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n for (const rot of [isVertical, !isVertical]) {\r\n const v2Ok = apply(hBehaviour[position], positions(rot), rot ? 'top' : 'left');\r\n const v1Ok = apply(vBehaviour[variant], variants(rot), rot ? 'left' : 'top');\r\n\r\n if (v2Ok && v1Ok) {\r\n return;\r\n }\r\n }\r\n\r\n el.style.left = leastApplied.left;\r\n el.style.top = leastApplied.top;\r\n }\r\n };\r\n}\r\n","import * as _ from './utils/utils';\n\nexport default ({components: c, strings: s, useAsButton, inline, appClass, theme, lockOpacity: lo}) => {\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\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","// Import utils\nimport * as _ from './utils/utils';\nimport {parseToHSVA} from './utils/color';\n\n// Import classes\nimport {HSVaColor} from './utils/hsvacolor';\nimport Moveable from './libs/moveable';\nimport Selectable from './libs/selectable';\nimport Nanopop from './libs/nanopop';\nimport buildPickr from './template';\n\nclass Pickr {\n\n // Will be used to prevent specific actions during initilization\n _initializingActive = true;\n\n // If the current color value should be recalculated\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 init: [],\n save: [],\n hide: [],\n show: [],\n clear: [],\n change: [],\n changestop: [],\n cancel: [],\n swatchselect: []\n };\n\n constructor(opt) {\n\n // Assign default values\n this.options = opt = Object.assign({\n appClass: null,\n theme: 'classic',\n useAsButton: false,\n disabled: false,\n comparison: true,\n closeOnScroll: false,\n outputPrecision: 0,\n lockOpacity: false,\n autoReposition: true,\n\n components: {\n interaction: {}\n },\n\n strings: {},\n swatches: null,\n inline: false,\n sliders: null,\n\n default: '#42445a',\n defaultRepresentation: null,\n position: 'bottom-middle',\n adjustableNumbers: true,\n showAlways: false,\n\n closeWithKey: 'Escape'\n }, opt);\n\n const {swatches, components, theme, sliders, lockOpacity} = opt;\n\n if (['nano', 'monolith'].includes(theme) && !sliders) {\n opt.sliders = 'h';\n }\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.opacity = (!lockOpacity && opacity);\n components.palette = palette || preview || opacity || hue;\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\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 // Initialize positioning engine\n this._nanopop = Nanopop({\n reference: this._root.button,\n el: this._root.app\n });\n\n // Initilization is finish, pickr is visible and ready for usage\n const {app} = this._root;\n const that = this;\n requestAnimationFrame((function cb() {\n\n if (!app.offsetWidth && app.parentElement !== document.body) {\n return requestAnimationFrame(cb);\n }\n\n // Apply default color\n that.setColor(opt.default);\n that._rePositioningPicker();\n\n // Initialize color representation\n if (opt.defaultRepresentation) {\n that._representation = opt.defaultRepresentation;\n that.setColorRepresentation(that._representation);\n }\n\n // Show pickr if locked\n if (opt.showAlways) {\n that.show();\n }\n\n // Initialization is done - pickr is usable, fire init event\n that._initializingActive = false;\n that._emit('init');\n }));\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\n // Resolve possible shadow dom access\n opt.el = opt.el.split(/>>/g).reduce((pv, cv, ci, a) => {\n pv = pv.querySelector(cv);\n return ci < a.length - 1 ? pv.shadowRoot : pv;\n }, document);\n }\n\n // Create element and append it to body to\n // prevent initialization errors\n this._root = buildPickr(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 parent = opt.el.parentElement;\n\n if (opt.el.nextSibling) {\n parent.insertBefore(root.app, opt.el.nextSibling);\n } else {\n parent.appendChild(root.app);\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.parentNode.replaceChild(root.root, opt.el);\n } else if (opt.inline) {\n opt.el.remove();\n }\n\n // Check if it should be immediatly disabled\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 cs = this.options.components;\n const sliders = (inst.options.sliders || 'v').repeat(2);\n const [so, sh] = sliders.match(/^[vh]+$/g) ? sliders : [];\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onstop: () => inst._emit('changestop', inst),\n onchange(x, y) {\n if (!cs.palette) return;\n const {_color, _root, options} = inst;\n\n // Update the input field only if the user is currently not typing\n if (inst._recalc) {\n\n // Calculate saturation based on the position\n _color.s = x * 100;\n\n // Calculate the value\n _color.v = 100 - y * 100;\n\n // Prevent falling under zero\n _color.v < 0 ? _color.v = 0 : 0;\n inst._updateOutput();\n }\n\n // Set picker and gradient color\n const cssRGBaString = _color.toRGBA().toString(0);\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 // Check if there's a swatch which color matches the current one\n const hexa = _color.toHEXA().toString();\n for (const {el, color} of inst._swatchColors) {\n el.classList[hexa === color.toHEXA().toString() ? 'add' : 'remove']('pcr-active');\n }\n\n // Change current color\n _root.preview.currentColor.style.color = cssRGBaString;\n\n if (!inst.options.comparison) {\n\n // If the user changes the color, remove the cleared icon\n _root.button.classList.remove('clear');\n }\n }\n }),\n\n hue: Moveable({\n lock: sh === 'v' ? 'h' : 'v',\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\n onstop: () => inst._emit('changestop', inst),\n onchange(v) {\n if (!cs.hue || !cs.palette) return;\n\n // Calculate hue\n if (inst._recalc) {\n inst._color.h = v * 360;\n }\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 lock: so === 'v' ? 'h' : 'v',\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\n onstop: () => inst._emit('changestop', inst),\n onchange(v) {\n if (!cs.opacity || !cs.palette) return;\n\n // Calculate opacity\n if (inst._recalc) {\n inst._color.a = Math.round(v * 1e2) / 100;\n }\n\n // Update color\n this.element.style.background = `rgba(0, 0, 0, ${inst._color.a})`;\n components.palette.trigger();\n }\n }),\n\n selectable: Selectable({\n elements: inst._root.interaction.options,\n className: 'active',\n\n onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._recalc && 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([\n _root.interaction.cancel,\n _root.preview.lastColor\n ], 'click', () => {\n this._emit('cancel', this);\n this.setHSVA(...this._lastColor.toHSVA(), true);\n }),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\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 // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['focus', 'blur'], e => {\n this._recalc = e.type === 'blur';\n this._recalc && this._updateOutput();\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 const ranges = {\n rgba: [255, 255, 255, 1],\n hsva: [360, 100, 100, 1],\n hsla: [360, 100, 100, 1],\n cmyk: [100, 100, 100, 100]\n };\n\n _.adjustableInputNumbers(_root.interaction.result, (o, step, index) => {\n const range = ranges[this.getColorRepresentation().toLowerCase()];\n\n if (range) {\n const max = range[index];\n\n // Calculate next reasonable number\n const nv = o + (max >= 100 ? step * 1000 : step);\n\n // Apply range of zero up to max, fix floating-point issues\n return nv <= 0 ? 0 : Number((nv < max ? nv : max).toPrecision(3));\n }\n return o;\n\n });\n }\n\n if (options.autoReposition && !options.inline) {\n let timeout = null;\n const that = this;\n\n // Re-calc position on window resize, scroll and wheel\n eventBindings.push(\n _.on(window, ['scroll', 'resize'], () => {\n if (that.isOpen()) {\n\n if (options.closeOnScroll) {\n that.hide();\n }\n\n if (timeout === null) {\n timeout = setTimeout(() => timeout = null, 100);\n\n // Update position on every frame\n requestAnimationFrame(function rs() {\n that._rePositioningPicker();\n (timeout !== null) && requestAnimationFrame(rs);\n });\n } else {\n clearTimeout(timeout);\n timeout = setTimeout(() => timeout = null, 100);\n }\n }\n }, {capture: true})\n );\n }\n\n // Save bindings\n this._eventBindings = eventBindings;\n }\n\n _rePositioningPicker() {\n const {options} = this;\n\n // No repositioning needed if inline\n if (!options.inline) {\n const {app} = this._root;\n\n if (matchMedia('(max-width: 576px)').matches) {\n Object.assign(app.style, {\n margin: 'auto',\n height: `${app.getBoundingClientRect().height}px`,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n });\n } else {\n Object.assign(app.style, {\n margin: null,\n right: null,\n top: null,\n bottom: null,\n left: null,\n height: null\n });\n\n this._nanopop.update(options.position);\n }\n }\n }\n\n _updateOutput() {\n const {_root, _color, options} = this;\n\n // Check if component is present\n if (_root.interaction.type()) {\n\n // Construct function name and call if present\n const method = `to${_root.interaction.type().getAttribute('data-type')}`;\n _root.interaction.result.value = typeof _color[method] === 'function' ?\n _color[method]().toString(options.outputPrecision) : '';\n }\n\n // Fire listener if initialization is finish\n if (!this._initializingActive && this._recalc) {\n this._emit('change', _color);\n }\n }\n\n _clearColor(silent = false) {\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 && !silent) {\n\n // Fire listener\n this._emit('save', null);\n this._emit('clear', this);\n }\n }\n\n _parseLocalColor(str) {\n const {values, type, a} = parseToHSVA(str);\n const {lockOpacity} = this.options;\n const alphaMakesAChange = a !== undefined && a !== 1;\n\n // If no opacity is applied, add undefined at the very end which gets\n // set to 1 in setHSVA\n if (values && values.length === 3) {\n values[3] = undefined;\n }\n\n return {\n values: (!values || (lockOpacity && alphaMakesAChange)) ? null : values,\n type\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} = this._parseLocalColor(color);\n\n if (values) {\n const {_swatchColors, _root} = this;\n const color = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const el = _.createElementFromString(\n `'}\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n `);\r\n\r\n const int = root.interaction;\r\n\r\n // Select option which is not hidden\r\n int.options.find(o => !o.hidden && !o.classList.add('active'));\r\n\r\n // Create method to find currenlty active option\r\n int.type = () => int.options.find(e => e.classList.contains('active'));\r\n return root;\r\n}\r\n","// Import utils\r\nimport * as _ from './utils/utils';\r\nimport {parseToHSVA} from './utils/color';\r\n\r\n// Import classes\r\nimport {HSVaColor} from './utils/hsvacolor';\r\nimport Moveable from './libs/moveable';\r\nimport Selectable from './libs/selectable';\r\nimport Nanopop from './libs/nanopop';\r\nimport buildPickr from './template';\r\n\r\nclass Pickr {\r\n\r\n // Will be used to prevent specific actions during initilization\r\n _initializingActive = true;\r\n\r\n // If the current color value should be recalculated\r\n _recalc = true;\r\n\r\n // Current and last color for comparison\r\n _color = HSVaColor();\r\n _lastColor = HSVaColor();\r\n _swatchColors = [];\r\n\r\n // Evenlistener name: [callbacks]\r\n _eventListener = {\r\n init: [],\r\n save: [],\r\n hide: [],\r\n show: [],\r\n clear: [],\r\n change: [],\r\n changestop: [],\r\n cancel: [],\r\n swatchselect: []\r\n };\r\n\r\n constructor(opt) {\r\n\r\n // Assign default values\r\n this.options = opt = Object.assign({\r\n appClass: null,\r\n theme: 'classic',\r\n useAsButton: false,\r\n disabled: false,\r\n comparison: true,\r\n closeOnScroll: false,\r\n outputPrecision: 0,\r\n lockOpacity: false,\r\n autoReposition: true,\r\n\r\n components: {\r\n interaction: {}\r\n },\r\n\r\n strings: {},\r\n swatches: null,\r\n inline: false,\r\n sliders: null,\r\n\r\n default: '#42445a',\r\n defaultRepresentation: null,\r\n position: 'bottom-middle',\r\n adjustableNumbers: true,\r\n showAlways: false,\r\n\r\n closeWithKey: 'Escape'\r\n }, opt);\r\n\r\n const {swatches, components, theme, sliders, lockOpacity} = opt;\r\n\r\n if (['nano', 'monolith'].includes(theme) && !sliders) {\r\n opt.sliders = 'h';\r\n }\r\n\r\n // Check interaction section\r\n if (!components.interaction) {\r\n components.interaction = {};\r\n }\r\n\r\n // Overwrite palette if preview, opacity or hue are true\r\n const {preview, opacity, hue, palette} = components;\r\n components.opacity = (!lockOpacity && opacity);\r\n components.palette = palette || preview || opacity || hue;\r\n\r\n // Initialize picker\r\n this._preBuild();\r\n this._buildComponents();\r\n this._bindEvents();\r\n this._finalBuild();\r\n\r\n // Append pre-defined swatch colors\r\n if (swatches && swatches.length) {\r\n swatches.forEach(color => this.addSwatch(color));\r\n }\r\n\r\n // Initialize positioning engine\r\n this._nanopop = Nanopop({\r\n reference: this._root.button,\r\n el: this._root.app\r\n });\r\n\r\n // Initilization is finish, pickr is visible and ready for usage\r\n const {app} = this._root;\r\n const that = this;\r\n requestAnimationFrame((function cb() {\r\n\r\n if (!app.offsetWidth && app.parentElement !== document.body) {\r\n return requestAnimationFrame(cb);\r\n }\r\n\r\n // Apply default color\r\n that.setColor(opt.default);\r\n that._rePositioningPicker();\r\n\r\n // Initialize color representation\r\n if (opt.defaultRepresentation) {\r\n that._representation = opt.defaultRepresentation;\r\n that.setColorRepresentation(that._representation);\r\n }\r\n\r\n // Show pickr if locked\r\n if (opt.showAlways) {\r\n that.show();\r\n }\r\n\r\n // Initialization is done - pickr is usable, fire init event\r\n that._initializingActive = false;\r\n that._emit('init');\r\n }));\r\n }\r\n\r\n // Does only the absolutly basic thing to initialize the components\r\n _preBuild() {\r\n const opt = this.options;\r\n\r\n // Check if element is selector\r\n if (typeof opt.el === 'string') {\r\n\r\n // Resolve possible shadow dom access\r\n opt.el = opt.el.split(/>>/g).reduce((pv, cv, ci, a) => {\r\n pv = pv.querySelector(cv);\r\n return ci < a.length - 1 ? pv.shadowRoot : pv;\r\n }, document);\r\n }\r\n\r\n // Create element and append it to body to\r\n // prevent initialization errors\r\n this._root = buildPickr(opt);\r\n\r\n // Check if a custom button is used\r\n if (opt.useAsButton) {\r\n this._root.button = opt.el; // Replace button with customized button\r\n }\r\n\r\n document.body.appendChild(this._root.root);\r\n }\r\n\r\n _finalBuild() {\r\n const opt = this.options;\r\n const root = this._root;\r\n\r\n // Remove from body\r\n document.body.removeChild(root.root);\r\n\r\n if (opt.inline) {\r\n const parent = opt.el.parentElement;\r\n\r\n if (opt.el.nextSibling) {\r\n parent.insertBefore(root.app, opt.el.nextSibling);\r\n } else {\r\n parent.appendChild(root.app);\r\n }\r\n } else {\r\n document.body.appendChild(root.app);\r\n }\r\n\r\n // Don't replace the the element if a custom button is used\r\n if (!opt.useAsButton) {\r\n\r\n // Replace element with actual color-picker\r\n opt.el.parentNode.replaceChild(root.root, opt.el);\r\n } else if (opt.inline) {\r\n opt.el.remove();\r\n }\r\n\r\n // Check if it should be immediatly disabled\r\n if (opt.disabled) {\r\n this.disable();\r\n }\r\n\r\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\r\n if (!opt.comparison) {\r\n root.button.style.transition = 'none';\r\n if (!opt.useAsButton) {\r\n root.preview.lastColor.style.transition = 'none';\r\n }\r\n }\r\n\r\n this.hide();\r\n }\r\n\r\n _buildComponents() {\r\n\r\n // Instance reference\r\n const inst = this;\r\n const cs = this.options.components;\r\n const sliders = (inst.options.sliders || 'v').repeat(2);\r\n const [so, sh] = sliders.match(/^[vh]+$/g) ? sliders : [];\r\n\r\n const components = {\r\n\r\n palette: Moveable({\r\n element: inst._root.palette.picker,\r\n wrapper: inst._root.palette.palette,\r\n\r\n onstop: () => inst._emit('changestop', inst),\r\n onchange(x, y) {\r\n if (!cs.palette) return;\r\n const {_color, _root, options} = inst;\r\n\r\n // Update the input field only if the user is currently not typing\r\n if (inst._recalc) {\r\n\r\n // Calculate saturation based on the position\r\n _color.s = x * 100;\r\n\r\n // Calculate the value\r\n _color.v = 100 - y * 100;\r\n\r\n // Prevent falling under zero\r\n _color.v < 0 ? _color.v = 0 : 0;\r\n inst._updateOutput();\r\n }\r\n\r\n // Set picker and gradient color\r\n const cssRGBaString = _color.toRGBA().toString(0);\r\n this.element.style.background = cssRGBaString;\r\n this.wrapper.style.background = `\r\n linear-gradient(to top, rgba(0, 0, 0, ${_color.a}), transparent),\r\n linear-gradient(to left, hsla(${_color.h}, 100%, 50%, ${_color.a}), rgba(255, 255, 255, ${_color.a}))\r\n `;\r\n\r\n // Check if color is locked\r\n if (!options.comparison) {\r\n _root.button.style.color = cssRGBaString;\r\n\r\n if (!options.useAsButton) {\r\n _root.preview.lastColor.style.color = cssRGBaString;\r\n }\r\n }\r\n\r\n // Check if there's a swatch which color matches the current one\r\n const hexa = _color.toHEXA().toString();\r\n for (const {el, color} of inst._swatchColors) {\r\n el.classList[hexa === color.toHEXA().toString() ? 'add' : 'remove']('pcr-active');\r\n }\r\n\r\n // Change current color\r\n _root.preview.currentColor.style.color = cssRGBaString;\r\n\r\n if (!inst.options.comparison) {\r\n\r\n // If the user changes the color, remove the cleared icon\r\n _root.button.classList.remove('clear');\r\n }\r\n }\r\n }),\r\n\r\n hue: Moveable({\r\n lock: sh === 'v' ? 'h' : 'v',\r\n element: inst._root.hue.picker,\r\n wrapper: inst._root.hue.slider,\r\n\r\n onstop: () => inst._emit('changestop', inst),\r\n onchange(v) {\r\n if (!cs.hue || !cs.palette) return;\r\n\r\n // Calculate hue\r\n if (inst._recalc) {\r\n inst._color.h = v * 360;\r\n }\r\n\r\n // Update color\r\n this.element.style.backgroundColor = `hsl(${inst._color.h}, 100%, 50%)`;\r\n components.palette.trigger();\r\n }\r\n }),\r\n\r\n opacity: Moveable({\r\n lock: so === 'v' ? 'h' : 'v',\r\n element: inst._root.opacity.picker,\r\n wrapper: inst._root.opacity.slider,\r\n\r\n onstop: () => inst._emit('changestop', inst),\r\n onchange(v) {\r\n if (!cs.opacity || !cs.palette) return;\r\n\r\n // Calculate opacity\r\n if (inst._recalc) {\r\n inst._color.a = Math.round(v * 1e2) / 100;\r\n }\r\n\r\n // Update color\r\n this.element.style.background = `rgba(0, 0, 0, ${inst._color.a})`;\r\n components.palette.trigger();\r\n }\r\n }),\r\n\r\n selectable: Selectable({\r\n elements: inst._root.interaction.options,\r\n className: 'active',\r\n\r\n onchange(e) {\r\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\r\n inst._recalc && inst._updateOutput();\r\n }\r\n })\r\n };\r\n\r\n this._components = components;\r\n }\r\n\r\n _bindEvents() {\r\n const {_root, options} = this;\r\n\r\n const eventBindings = [\r\n\r\n // Clear color\r\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\r\n\r\n // Select last color on click\r\n _.on([\r\n _root.interaction.cancel,\r\n _root.preview.lastColor\r\n ], 'click', () => {\r\n this._emit('cancel', this);\r\n this.setHSVA(...this._lastColor.toHSVA(), true);\r\n }),\r\n\r\n // Save color\r\n _.on(_root.interaction.save, 'click', () => {\r\n !this.applyColor() && !options.showAlways && this.hide();\r\n }),\r\n\r\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\r\n\r\n // Fire listener if initialization is finish and changed color was valid\r\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\r\n this._emit('change', this._color);\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n }),\r\n\r\n // Detect user input and disable auto-recalculation\r\n _.on(_root.interaction.result, ['focus', 'blur'], e => {\r\n this._recalc = e.type === 'blur';\r\n this._recalc && this._updateOutput();\r\n }),\r\n\r\n // Cancel input detection on color change\r\n _.on([\r\n _root.palette.palette,\r\n _root.palette.picker,\r\n _root.hue.slider,\r\n _root.hue.picker,\r\n _root.opacity.slider,\r\n _root.opacity.picker\r\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\r\n ];\r\n\r\n // Provide hiding / showing abilities only if showAlways is false\r\n if (!options.showAlways) {\r\n const ck = options.closeWithKey;\r\n\r\n eventBindings.push(\r\n // Save and hide / show picker\r\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\r\n\r\n // Close with escape key\r\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\r\n\r\n // Cancel selecting if the user taps behind the color picker\r\n _.on(document, ['touchstart', 'mousedown'], e => {\r\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\r\n this.hide();\r\n }\r\n }, {capture: true})\r\n );\r\n }\r\n\r\n // Make input adjustable if enabled\r\n if (options.adjustableNumbers) {\r\n const ranges = {\r\n rgba: [255, 255, 255, 1],\r\n hsva: [360, 100, 100, 1],\r\n hsla: [360, 100, 100, 1],\r\n cmyk: [100, 100, 100, 100]\r\n };\r\n\r\n _.adjustableInputNumbers(_root.interaction.result, (o, step, index) => {\r\n const range = ranges[this.getColorRepresentation().toLowerCase()];\r\n\r\n if (range) {\r\n const max = range[index];\r\n\r\n // Calculate next reasonable number\r\n const nv = o + (max >= 100 ? step * 1000 : step);\r\n\r\n // Apply range of zero up to max, fix floating-point issues\r\n return nv <= 0 ? 0 : Number((nv < max ? nv : max).toPrecision(3));\r\n }\r\n return o;\r\n\r\n });\r\n }\r\n\r\n if (options.autoReposition && !options.inline) {\r\n let timeout = null;\r\n const that = this;\r\n\r\n // Re-calc position on window resize, scroll and wheel\r\n eventBindings.push(\r\n _.on(window, ['scroll', 'resize'], () => {\r\n if (that.isOpen()) {\r\n\r\n if (options.closeOnScroll) {\r\n that.hide();\r\n }\r\n\r\n if (timeout === null) {\r\n timeout = setTimeout(() => timeout = null, 100);\r\n\r\n // Update position on every frame\r\n requestAnimationFrame(function rs() {\r\n that._rePositioningPicker();\r\n (timeout !== null) && requestAnimationFrame(rs);\r\n });\r\n } else {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => timeout = null, 100);\r\n }\r\n }\r\n }, {capture: true})\r\n );\r\n }\r\n\r\n // Save bindings\r\n this._eventBindings = eventBindings;\r\n }\r\n\r\n _rePositioningPicker() {\r\n const {options} = this;\r\n\r\n // No repositioning needed if inline\r\n if (!options.inline) {\r\n const {app} = this._root;\r\n\r\n if (matchMedia('(max-width: 576px)').matches) {\r\n Object.assign(app.style, {\r\n margin: 'auto',\r\n height: `${app.getBoundingClientRect().height}px`,\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n });\r\n } else {\r\n Object.assign(app.style, {\r\n margin: null,\r\n right: null,\r\n top: null,\r\n bottom: null,\r\n left: null,\r\n height: null\r\n });\r\n\r\n this._nanopop.update(options.position);\r\n }\r\n }\r\n }\r\n\r\n _updateOutput() {\r\n const {_root, _color, options} = this;\r\n\r\n // Check if component is present\r\n if (_root.interaction.type()) {\r\n\r\n // Construct function name and call if present\r\n const method = `to${_root.interaction.type().getAttribute('data-type')}`;\r\n _root.interaction.result.value = typeof _color[method] === 'function' ?\r\n _color[method]().toString(options.outputPrecision) : '';\r\n }\r\n\r\n // Fire listener if initialization is finish\r\n if (!this._initializingActive && this._recalc) {\r\n this._emit('change', _color);\r\n }\r\n }\r\n\r\n _clearColor(silent = false) {\r\n const {_root, options} = this;\r\n\r\n // Change only the button color if it isn't customized\r\n if (!options.useAsButton) {\r\n _root.button.style.color = 'rgba(0, 0, 0, 0.15)';\r\n }\r\n\r\n _root.button.classList.add('clear');\r\n\r\n if (!options.showAlways) {\r\n this.hide();\r\n }\r\n\r\n if (!this._initializingActive && !silent) {\r\n\r\n // Fire listener\r\n this._emit('save', null);\r\n this._emit('clear', this);\r\n }\r\n }\r\n\r\n _parseLocalColor(str) {\r\n const {values, type, a} = parseToHSVA(str);\r\n const {lockOpacity} = this.options;\r\n const alphaMakesAChange = a !== undefined && a !== 1;\r\n\r\n // If no opacity is applied, add undefined at the very end which gets\r\n // set to 1 in setHSVA\r\n if (values && values.length === 3) {\r\n values[3] = undefined;\r\n }\r\n\r\n return {\r\n values: (!values || (lockOpacity && alphaMakesAChange)) ? null : values,\r\n type\r\n };\r\n }\r\n\r\n _emit(event, ...args) {\r\n this._eventListener[event].forEach(cb => cb(...args, this));\r\n }\r\n\r\n on(event, cb) {\r\n\r\n // Validate\r\n if (typeof cb === 'function' && typeof event === 'string' && event in this._eventListener) {\r\n this._eventListener[event].push(cb);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n off(event, cb) {\r\n const callBacks = this._eventListener[event];\r\n\r\n if (callBacks) {\r\n const index = callBacks.indexOf(cb);\r\n\r\n if (~index) {\r\n callBacks.splice(index, 1);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Appends a color to the swatch palette\r\n * @param color\r\n * @returns {boolean}\r\n */\r\n addSwatch(color) {\r\n const {values} = this._parseLocalColor(color);\r\n\r\n if (values) {\r\n const {_swatchColors, _root} = this;\r\n const color = HSVaColor(...values);\r\n\r\n // Create new swatch HTMLElement\r\n const el = _.createElementFromString(\r\n `