{"version":3,"file":"pickr.min.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","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/template.js","webpack:///../src/index.ts","webpack:///./src/js/pickr.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})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/* eslint-disable prefer-rest-params */\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 * 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\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 * 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 */\n\nexport function createFromTemplate(str) {\n\n // Removes an attribute from a HTMLElement and returns the value.\n const removeAttribute = (el, name) => {\n const value = el.getAttribute(name);\n el.removeAttribute(name);\n return value;\n };\n\n // Recursive function to resolve template\n const 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) {\n return path;\n }\n\n let el = evt.target.parentElement;\n path = [evt.target, el];\n while (el = el.parentElement) {\n path.push(el);\n }\n\n path.push(document, window);\n return path;\n}\n\n/**\n * Resolves a HTMLElement by query.\n * @param val\n * @returns {null|Document|Element}\n */\nexport function resolveElement(val) {\n if (val instanceof Element) {\n return val;\n } else if (typeof val === 'string') {\n return val.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 return null;\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 const k = min(1 - r, 1 - g, 1 - b);\n const c = k === 1 ? 0 : (1 - r - k) / (1 - k);\n const m = k === 1 ? 0 : (1 - g - k) / (1 - k);\n const 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;\n 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;\n g /= 255;\n b /= 255;\n\n const minVal = min(r, g, b);\n const maxVal = max(r, g, b);\n const delta = maxVal - minVal;\n\n let h, s;\n const 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, isNaN(ns) ? 0 : 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?\\D+([\\d.]+)(%?)\\D+([\\d.]+)(%?)\\D+([\\d.]+)(%?)\\D*?(([\\d.]+)(%?)|$)/i,\n hsla: /^hsla?\\D+([\\d.]+)\\D+([\\d.]+)\\D+([\\d.]+)\\D*?(([\\d.]+)(%?)|$)/i,\n hsva: /^hsva?\\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\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\n return {values: cmykToHsv(c, m, y, k), type};\n }\n case 'rgba': {\n let [, r, , g, , b, , , a] = numarize(match);\n\n r = match[2] === '%' ? (r / 100) * 255 : r;\n g = match[4] === '%' ? (g / 100) * 255 : g;\n b = match[6] === '%' ? (b / 100) * 255 : b;\n a = match[9] === '%' ? (a / 100) : a;\n\n if (r > 255 || g > 255 || b > 255 || a < 0 || a > 1) {\n break invalid;\n }\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 let [, h, s, l, , a] = numarize(match);\n a = match[6] === '%' ? (a / 100) : a;\n\n if (h > 360 || s > 100 || l > 100 || a < 0 || a > 1) {\n break invalid;\n }\n\n return {values: [...hslToHsv(h, s, l), a], a, type};\n }\n case 'hsva': {\n let [, h, s, v, , a] = numarize(match);\n a = match[6] === '%' ? (a / 100) : a;\n\n if (h > 360 || s > 100 || v > 100 || a < 0 || a > 1) {\n break invalid;\n }\n\n return {values: [h, s, v, a], a, type};\n }\n }\n }\n\n return {values: null, type: null};\n}\n","import {hsvToCmyk, hsvToHex, hsvToHsl, hsvToRgb} from './color';\n\n/**\n * Simple class which holds the properties\n * of the color represention model hsla (hue saturation lightness alpha)\n */\nexport function HSVaColor(h = 0, s = 0, v = 0, a = 1) {\n const mapper = (original, next) => (precision = -1) => {\n return next(~precision ? original.map(v => Number(v.toFixed(precision))) : original);\n };\n\n const that = {\n h, s, v, a,\n\n toHSVA() {\n const hsva = [that.h, that.s, that.v, that.a];\n hsva.toString = mapper(hsva, arr => `hsva(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\n return hsva;\n },\n\n toHSLA() {\n const hsla = [...hsvToHsl(that.h, that.s, that.v), that.a];\n hsla.toString = mapper(hsla, arr => `hsla(${arr[0]}, ${arr[1]}%, ${arr[2]}%, ${that.a})`);\n return hsla;\n },\n\n toRGBA() {\n const rgba = [...hsvToRgb(that.h, that.s, that.v), that.a];\n rgba.toString = mapper(rgba, arr => `rgba(${arr[0]}, ${arr[1]}, ${arr[2]}, ${that.a})`);\n return rgba;\n },\n\n toCMYK() {\n const cmyk = hsvToCmyk(that.h, that.s, that.v);\n cmyk.toString = mapper(cmyk, arr => `cmyk(${arr[0]}%, ${arr[1]}%, ${arr[2]}%, ${arr[3]}%)`);\n return cmyk;\n },\n\n toHEXA() {\n const hex = hsvToHex(that.h, that.s, that.v);\n\n // Check if alpha channel make sense, convert it to 255 number space, convert\n // To hex and pad it with zeros if needet.\n const alpha = that.a >= 1 ? '' : Number((that.a * 255).toFixed(0))\n .toString(16)\n .toUpperCase().padStart(2, '0');\n\n alpha && hex.push(alpha);\n hex.toString = () => `#${hex.join('').toUpperCase()}`;\n return hex;\n },\n\n clone: () => HSVaColor(that.h, that.s, that.v, that.a)\n };\n\n return that;\n}\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 _keyboard(e) {\n const {options} = that;\n const {type, key} = e;\n\n // Check to see if the Movable is focused and then move it based on arrow key inputs\n // For improved accessibility\n if (document.activeElement === options.wrapper) {\n const {lock} = that.options;\n const up = key === 'ArrowUp';\n const right = key === 'ArrowRight';\n const down = key === 'ArrowDown';\n const left = key === 'ArrowLeft';\n\n if (type === 'keydown' && (up || right || down || left)) {\n let xm = 0;\n let ym = 0;\n\n if (lock === 'v') {\n xm = (up || right) ? 1 : -1;\n } else if (lock === 'h') {\n xm = (up || right) ? -1 : 1;\n } else {\n ym = up ? -1 : (down ? 1 : 0);\n xm = left ? -1 : (right ? 1 : 0);\n }\n\n that.update(\n clamp(that.cache.x + (0.01 * xm)),\n clamp(that.cache.y + (0.01 * ym))\n );\n e.preventDefault();\n } else if (key.startsWith('Arrow')) {\n that.options.onstop();\n e.preventDefault();\n }\n }\n },\n\n _tapstart(evt) {\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\n\n if (evt.cancelable) {\n evt.preventDefault();\n }\n\n // Trigger\n that._tapmove(evt);\n },\n\n _tapmove(evt) {\n const {options, cache} = that;\n const {lock, 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) {\n x = b.left;\n } else if (x > b.left + b.width) {\n x = b.left + b.width;\n }\n if (y < b.top) {\n y = b.top;\n } else if (y > b.top + b.height) {\n y = b.top + b.height;\n }\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 / b.width);\n const cy = clamp(y / b.height);\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, _keyboard} = that;\n _.off(document, ['keydown', 'keyup'], _keyboard);\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, _keyboard} = that;\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\n passive: false\n });\n\n _.on(document, ['keydown', 'keyup'], _keyboard);\n\n return that;\n}\n","import * as _ from '../utils/utils';\n\nexport default function Selectable(opt = {}) {\n opt = Object.assign({\n onchange: () => 0,\n className: '',\n elements: []\n }, opt);\n\n const onTap = _.on(opt.elements, 'click', evt => {\n opt.elements.forEach(e =>\n e.classList[evt.target === e ? 'add' : 'remove'](opt.className)\n );\n\n opt.onchange(evt);\n\n // Fix for https://github.com/Simonwep/pickr/issues/243\n evt.stopPropagation();\n });\n\n return {\n destroy: () => _.off(...onTap)\n };\n}\n","import * as _ from './utils/utils';\n\nexport default instance => {\n\n const {\n components,\n useAsButton,\n inline,\n appClass,\n theme,\n lockOpacity\n } = instance.options;\n\n // Utils\n const hidden = con => con ? '' : 'style=\"display:none\" hidden';\n const t = str => instance._t(str);\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 // Append method to find currently active option\n int.type = () => int.options.find(e => e.classList.contains('active'));\n return root;\n};\n","type Direction = 'top' | 'left' | 'bottom' | 'right';\ntype Alignment = 'start' | 'middle' | 'end';\n\nexport type VariantFlipOrder = {\n start: string;\n middle: string;\n end: string;\n};\n\nexport type PositionFlipOrder = {\n top: string;\n right: string;\n bottom: string;\n left: string;\n};\n\nexport type NanoPopPosition = `${Direction}-${Alignment}` | Direction;\n\nexport type NanoPopOptions = {\n container: DOMRect;\n position: NanoPopPosition;\n variantFlipOrder: VariantFlipOrder;\n positionFlipOrder: PositionFlipOrder;\n margin: number;\n reference?: HTMLElement;\n popper?: HTMLElement;\n arrow?: HTMLElement;\n padding?: number;\n};\n\ntype AvailablePositions = {\n t: number;\n b: number;\n l: number;\n r: number;\n};\n\ntype AvailableVariants = {\n vs: number;\n vm: number;\n ve: number;\n hs: number;\n hm: number;\n he: number;\n};\n\ntype PositionPairs = [Direction, Direction];\n\nexport type PositionMatch = 'ts' | 'tm' | 'te' | 'bs' | 'bm' | 'be' | 'ls' | 'lm' | 'le' | 'rs' | 'rm' | 're';\n\nexport interface NanoPop {\n update(updatedOptions?: Partial): PositionMatch | null;\n}\n\nexport interface NanoPopConstructor {\n\n /**\n * @param reference Reference element\n * @param popper Actual popper element\n * @param options Optional options\n */\n (reference: HTMLElement, popper: HTMLElement, options?: Partial): NanoPop;\n\n /**\n * @param options Partial options which get merged with the current one\n */\n (options?: Partial): NanoPop;\n}\n\n// Export current version\nexport const version = VERSION;\n\n// Export default\nexport const defaults = {\n variantFlipOrder: {start: 'sme', middle: 'mse', end: 'ems'},\n positionFlipOrder: {top: 'tbrl', right: 'rltb', bottom: 'btrl', left: 'lrbt'},\n position: 'bottom',\n margin: 8,\n padding: 0\n};\n\n/**\n * Repositions an element once using the provided options and elements.\n * @param reference Reference element\n * @param popper Popper element\n * @param opt Optional, additional options\n */\nexport const reposition = (\n reference: HTMLElement,\n popper: HTMLElement,\n opt?: Partial\n): PositionMatch | null => {\n const {\n container,\n arrow,\n margin,\n padding,\n position,\n variantFlipOrder,\n positionFlipOrder\n } = {\n container: document.documentElement.getBoundingClientRect(),\n ...defaults,\n ...opt\n };\n\n /**\n * Reset position to resolve viewport\n * See https://developer.mozilla.org/en-US/docs/Web/CSS/position#fixed\n */\n const {left: originalLeft, top: originalTop} = popper.style;\n popper.style.left = '0';\n popper.style.top = '0';\n\n const refBox = reference.getBoundingClientRect();\n const popBox = popper.getBoundingClientRect();\n\n /**\n * Holds coordinates of top, left, bottom and right alignment\n */\n const positionStore: AvailablePositions = {\n t: refBox.top - popBox.height - margin,\n b: refBox.bottom + margin,\n r: refBox.right + margin,\n l: refBox.left - popBox.width - margin\n };\n\n /**\n * Holds corresponding variants (start, middle, end).\n * The values depend on horizontal / vertical orientation\n */\n const variantStore: AvailableVariants = {\n vs: refBox.left,\n vm: refBox.left + refBox.width / 2 - popBox.width / 2,\n ve: refBox.left + refBox.width - popBox.width,\n hs: refBox.top,\n hm: refBox.bottom - refBox.height / 2 - popBox.height / 2,\n he: refBox.bottom - popBox.height\n };\n\n // Extract position and variant\n // Top-start -> top is \"position\" and \"start\" is the variant\n const [posKey, varKey = 'middle'] = position.split('-');\n const positions = positionFlipOrder[posKey as keyof PositionFlipOrder];\n const variants = variantFlipOrder[varKey as keyof VariantFlipOrder];\n\n // Try out all possible combinations, starting with the preferred one.\n const {top, left, bottom, right} = container;\n\n for (const p of positions) {\n const vertical = (p === 't' || p === 'b');\n\n // The position-value\n let positionVal = positionStore[p as keyof AvailablePositions];\n\n // Which property has to be changes.\n const [positionKey, variantKey] = (vertical ? ['top', 'left'] : ['left', 'top']) as PositionPairs;\n\n /**\n * box refers to the size of the popper element. Depending on the orientation this is width or height.\n * The limit is the corresponding, maximum value for this position.\n */\n const [positionSize, variantSize] = vertical ? [popBox.height, popBox.width] : [popBox.width, popBox.height];\n\n const [positionMaximum, variantMaximum] = vertical ? [bottom, right] : [right, bottom];\n const [positionMinimum, variantMinimum] = vertical ? [top, left] : [left, top];\n\n // Skip pre-clipped values\n if (positionVal < positionMinimum || (positionVal + positionSize + padding) > positionMaximum) {\n continue;\n }\n\n for (const v of variants) {\n\n // The position-value, the related size value of the popper and the limit\n let variantVal = variantStore[((vertical ? 'v' : 'h') + v) as keyof AvailableVariants];\n\n if (variantVal < variantMinimum || (variantVal + variantSize + padding) > variantMaximum) {\n continue;\n }\n\n // Subtract popBox's initial position\n variantVal -= popBox[variantKey];\n positionVal -= popBox[positionKey];\n\n // Apply styles and normalize viewport\n popper.style[variantKey] = `${variantVal}px`;\n popper.style[positionKey] = `${positionVal}px`;\n\n if (arrow) {\n // Calculate refBox's center offset from its variant position for arrow positioning\n const refBoxCenterOffset = vertical ? refBox.width / 2 : refBox.height / 2;\n\n // When refBox is larger than popBox, have the arrow's variant position be the center of popBox instead.\n const arrowVariantVal = refBoxCenterOffset * 2 < variantSize ?\n refBox[variantKey] + refBoxCenterOffset : variantVal + variantSize / 2;\n\n // Arrow position is either on one side of the popBox or the other.\n if (positionVal < refBox[positionKey]) {\n positionVal += positionSize;\n }\n\n // Apply styles to arrow\n arrow.style[variantKey] = `${arrowVariantVal}px`;\n arrow.style[positionKey] = `${positionVal}px`;\n }\n\n return (p + v) as PositionMatch;\n }\n }\n\n // Revert style values (won't work with styled-elements or similar systems)\n // \"Fix\" for https://github.com/Simonwep/nanopop/issues/7\n popper.style.left = originalLeft;\n popper.style.top = originalTop;\n\n return null;\n};\n\n/**\n * Creates a stateful popper.\n * You can either...\n * ... pass an options object: createPopper()\n * ... pass both the reference and popper: create(, , )\n * ... pass nothing, in this case you'll have to set at least both a reference and a popper in update.\n *\n * @param reference | options Reference element or options\n * @param popper Popper element\n * @param options Optional additional options\n */\nexport const createPopper: NanoPopConstructor = (\n reference?: HTMLElement | Partial,\n popper?: HTMLElement,\n options?: Partial\n): NanoPop => {\n\n // Resolve options\n const baseOptions: Partial = typeof reference === 'object' && !(reference instanceof HTMLElement) ?\n reference : {reference, popper, ...options};\n\n return {\n\n /**\n * Repositions the current popper.\n * @param options Optional options which get merged with the current ones.\n */\n update(options: Partial = baseOptions): PositionMatch | null {\n const {reference, popper} = Object.assign(baseOptions, options);\n\n if (!popper || !reference) {\n throw new Error('Popper- or reference-element missing.');\n }\n\n return reposition(reference, popper, baseOptions);\n }\n };\n};\n","import * as _ from './utils/utils';\nimport {parseToHSVA} from './utils/color';\nimport {HSVaColor} from './utils/hsvacolor';\nimport Moveable from './libs/moveable';\nimport Selectable from './libs/selectable';\nimport buildPickr from './template';\nimport {createPopper} from 'nanopop';\n\nexport default class Pickr {\n\n // Expose pickr utils\n static utils = _;\n\n // Assign version and export\n static version = VERSION;\n\n // Default strings\n static I18N_DEFAULTS = {\n\n // Strings visible in the UI\n 'ui:dialog': 'color picker dialog',\n 'btn:toggle': 'toggle color picker dialog',\n 'btn:swatch': 'color swatch',\n 'btn:last-color': 'use previous color',\n 'btn:save': 'Save',\n 'btn:cancel': 'Cancel',\n 'btn:clear': 'Clear',\n\n // Strings used for aria-labels\n 'aria:btn:save': 'save and close',\n 'aria:btn:cancel': 'cancel and close',\n 'aria:btn:clear': 'clear and close',\n 'aria:input': 'color input field',\n 'aria:palette': 'color selection area',\n 'aria:hue': 'hue selection slider',\n 'aria:opacity': 'selection slider'\n };\n\n // Default options\n static DEFAULT_OPTIONS = {\n appClass: null,\n theme: 'classic',\n useAsButton: false,\n padding: 8,\n disabled: false,\n comparison: true,\n closeOnScroll: false,\n outputPrecision: 0,\n lockOpacity: false,\n autoReposition: true,\n container: 'body',\n\n components: {\n interaction: {}\n },\n\n i18n: {},\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 };\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 // Positioning engine and DOM-Tree\n _nanopop = null;\n _root = null;\n\n // Current and last color for comparison\n _color = HSVaColor();\n _lastColor = HSVaColor();\n _swatchColors = [];\n\n // Animation frame used for setup.\n // Will be cancelled in case of destruction.\n _setupAnimationFrame = null;\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({...Pickr.DEFAULT_OPTIONS}, opt);\n\n const {swatches, components, theme, sliders, lockOpacity, padding} = 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 const {button, app} = this._root;\n this._nanopop = createPopper(button, app, {\n margin: padding\n });\n\n // Initialize accessibility\n button.setAttribute('role', 'button');\n button.setAttribute('aria-label', this._t('btn:toggle'));\n\n // Initilization is finish, pickr is visible and ready for usage\n const that = this;\n this._setupAnimationFrame = requestAnimationFrame((function cb() {\n\n // TODO: Performance issue due to high call-rate?\n if (!app.offsetWidth) {\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 // Create instance via method\n static create = options => new Pickr(options);\n\n // Does only the absolutly basic thing to initialize the components\n _preBuild() {\n const {options} = this;\n\n // Resolve elements\n for (const type of ['el', 'container']) {\n options[type] = _.resolveElement(options[type]);\n }\n\n // Create element and append it to body to\n // Prevent initialization errors\n this._root = buildPickr(this);\n\n // Check if a custom button is used\n if (options.useAsButton) {\n this._root.button = options.el; // Replace button with customized button\n }\n\n options.container.appendChild(this._root.root);\n }\n\n _finalBuild() {\n const opt = this.options;\n const root = this._root;\n\n // Remove from body\n opt.container.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 opt.container.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\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 // Re-assign if null\n const getColor = () =>\n this._color || (this._color = this._lastColor.clone());\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', 'slider', inst),\n onchange(x, y) {\n if (!cs.palette) {\n return;\n }\n\n const color = getColor();\n const {_root, options} = inst;\n const {lastColor, currentColor} = _root.preview;\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('slider');\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.setProperty('--pcr-color', cssRGBaString);\n\n // If the user changes the color, remove the cleared icon\n _root.button.classList.remove('clear');\n } else if (!options.useAsButton && !inst._lastColor) {\n\n // Apply color to both the last and current color since the current state is cleared\n lastColor.style.setProperty('--pcr-color', cssRGBaString);\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 currentColor.style.setProperty('--pcr-color', cssRGBaString);\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', 'slider', inst),\n onchange(v) {\n if (!cs.hue || !cs.palette) {\n return;\n }\n\n const color = getColor();\n\n // Calculate hue\n if (inst._recalc) {\n color.h = v * 360;\n }\n\n // Update color\n this.element.style.backgroundColor = `hsl(${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', 'slider', inst),\n onchange(v) {\n if (!cs.opacity || !cs.palette) {\n return;\n }\n\n const color = getColor();\n\n // Calculate opacity\n if (inst._recalc) {\n color.a = Math.round(v * 1e2) / 100;\n }\n\n // Update color\n this.element.style.background = `rgba(0, 0, 0, ${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('swatch');\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.setHSVA(...(this._lastColor || this._color).toHSVA(), true);\n this._emit('cancel');\n }),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n // User input\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, 'input', this);\n this._emit('changestop', 'input', this);\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(null);\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, {passive: 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\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\n return o;\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 success = this._nanopop.update({\n container: document.body.getBoundingClientRect(),\n position: options.position\n });\n\n if (!success) {\n const el = this._root.app;\n const eb = el.getBoundingClientRect();\n el.style.top = `${(window.innerHeight - eb.height) / 2}px`;\n el.style.left = `${(window.innerWidth - eb.width) / 2}px`;\n }\n }\n }\n\n _updateOutput(eventSource) {\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, eventSource, this);\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.setProperty('--pcr-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 this._lastColor = null;\n if (!this._initializingActive && !silent) {\n\n // Fire listener\n this._emit('save', null);\n this._emit('clear');\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 _t(key) {\n return this.options.i18n[key] || Pickr.I18N_DEFAULTS[key];\n }\n\n _emit(event, ...args) {\n this._eventListener[event].forEach(cb => cb(...args, this));\n }\n\n on(event, cb) {\n this._eventListener[event].push(cb);\n return this;\n }\n\n off(event, cb) {\n const callBacks = (this._eventListener[event] || []);\n const index = callBacks.indexOf(cb);\n\n if (~index) {\n callBacks.splice(index, 1);\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 `