From 01e98c4db84a706c9d364b4ac8174a62426b293f Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 17 Jul 2019 15:56:56 +0200 Subject: [PATCH] Publish 1.2.2 --- dist/pickr.es5.min.js | 4 ++-- dist/pickr.es5.min.js.map | 2 +- dist/pickr.min.js | 4 ++-- dist/pickr.min.js.map | 2 +- dist/themes/classic.min.css | 2 +- dist/themes/monolith.min.css | 2 +- dist/themes/nano.min.css | 2 +- package-lock.json | 2 +- package.json | 2 +- src/js/pickr.js | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dist/pickr.es5.min.js b/dist/pickr.es5.min.js index 668ec655..21668ddf 100644 --- a/dist/pickr.es5.min.js +++ b/dist/pickr.es5.min.js @@ -1,3 +1,3 @@ -/*! Pickr 1.2.1 MIT | https://github.com/Simonwep/pickr */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Pickr=e():t.Pickr=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);var r={};function o(t,e){var n=Object.keys(t);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(t)),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n}function i(t){for(var e=1;e4&&void 0!==arguments[4]?arguments[4]:{};e instanceof HTMLCollection||e instanceof NodeList?e=Array.from(e):Array.isArray(e)||(e=[e]),Array.isArray(n)||(n=[n]);var a=!0,c=!1,l=void 0;try{for(var u,s=e[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var p=u.value,h=!0,d=!1,f=void 0;try{for(var v,y=n[Symbol.iterator]();!(h=(v=y.next()).done);h=!0){var m=v.value;p[t](m,r,i({capture:!1},o))}}catch(t){d=!0,f=t}finally{try{h||null==y.return||y.return()}finally{if(d)throw f}}}}catch(t){c=!0,l=t}finally{try{a||null==s.return||s.return()}finally{if(c)throw l}}return Array.prototype.slice.call(arguments,1)}function s(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstElementChild}function p(t,e){var n=t.getAttribute(e);return t.removeAttribute(e),n}function h(t){return function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=p(e,"data-con"),o=p(e,"data-key");o&&(n[o]=e);for(var i=r?n[r]={}:n,a=0,c=Array.from(e.children);a1&&void 0!==arguments[1]?arguments[1]:function(t){return t};function n(n){var r=[.001,.01,.1][Number(n.shiftKey||2*n.ctrlKey)]*(n.deltaY<0?1:-1),o=0,i=t.selectionStart;t.value=t.value.replace(/[\d.]+/g,function(t,n){return n<=i&&n+t.length>=i?(i=n,e(Number(t),r,o)):(o++,t)}),t.focus(),t.setSelectionRange(i,i),n.preventDefault(),t.dispatchEvent(new Event("input"))}c(t,"focus",function(){return c(window,"wheel",n,{passive:!1})}),c(t,"blur",function(){return l(window,"wheel",n)})}function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=t[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function y(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&(r-=1)}return[360*r,100*o,100*a]}function A(t,e,n,r){return e/=100,n/=100,y(k(255*(1-m(1,(t/=100)*(1-(r/=100))+r)),255*(1-m(1,e*(1-r)+r)),255*(1-m(1,n*(1-r)+r))))}function C(t,e,n){return e/=100,[t,2*(e*=(n/=100)<.5?n:1-n)/(n+e)*100,100*(n+e)]}function S(t){return k.apply(void 0,y(t.match(/.{2}/g).map(function(t){return parseInt(t,16)})))}function O(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if("black"===t.toLowerCase())return"#000000";var e=document.createElement("canvas").getContext("2d");return e.fillStyle=t,"#000000"===e.fillStyle?null:e.fillStyle}(t):t;var e,n={cmyk:/^cmyk[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)/i,rgba:/^((rgba)|rgb)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsla:/^((hsla)|hsl)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsva:/^((hsva)|hsv)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hexa:/^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i},r=function(t){return t.map(function(t){return/^(|\d+)\.\d+|\d+$/.test(t)?Number(t):void 0})};t:for(var o in n)if(e=n[o].exec(t)){var i=!!e[2];switch(o){case"cmyk":var a=v(r(e),5),c=a[1],l=a[2],u=a[3],s=a[4];if(c>100||l>100||u>100||s>100)break t;return{values:A(c,l,u,s),type:o};case"rgba":var p=v(r(e),7),h=p[3],d=p[4],f=p[5],m=p[6];if(h>255||d>255||f>255||m<0||m>1||i===!m)break t;return{values:[].concat(y(k(h,d,f)),[m]),a:m,type:o};case"hexa":var b=v(e,2)[1];4!==b.length&&3!==b.length||(b=b.split("").map(function(t){return t+t}).join(""));var g=b.substring(0,6),_=b.substring(6);return _=_?parseInt(_,16)/255:void 0,{values:[].concat(y(S(g)),[_]),a:_,type:o};case"hsla":var w=v(r(e),7),O=w[3],j=w[4],E=w[5],P=w[6];if(O>360||j>100||E>100||P<0||P>1||i===!P)break t;return{values:[].concat(y(C(O,j,E)),[P]),a:P,type:o};case"hsva":var x=v(r(e),7),L=x[3],B=x[4],R=x[5],H=x[6];if(L>360||B>100||R>100||H<0||H>1||i===!H)break t;return{values:[L,B,R,H],a:H,type:o}}}return{values:null,type:null}}function j(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=function(t,e){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;return e(~n?t.map(function(t){return Number(t.toFixed(n))}):t)}},i={h:t,s:e,v:n,a:r,toHSVA:function(){var t=[i.h,i.s,i.v,i.a];return t.toString=o(t,function(t){return"hsva(".concat(t[0],", ").concat(t[1],"%, ").concat(t[2],"%, ").concat(i.a,")")}),t},toHSLA:function(){var t=[].concat(j(function(t,e,n){var r=(2-(e/=100))*(n/=100)/2;return 0!==r&&(e=1===r?0:r<.5?e*n/(2*r):e*n/(2-2*r)),[t,100*e,100*r]}(i.h,i.s,i.v)),[i.a]);return t.toString=o(t,function(t){return"hsla(".concat(t[0],", ").concat(t[1],"%, ").concat(t[2],"%, ").concat(i.a,")")}),t},toRGBA:function(){var t=[].concat(j(w(i.h,i.s,i.v)),[i.a]);return t.toString=o(t,function(t){return"rgba(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(i.a,")")}),t},toCMYK:function(){var t=function(t,e,n){var r,o=w(t,e,n),i=o[0]/255,a=o[1]/255,c=o[2]/255;return[100*(1===(r=m(1-i,1-a,1-c))?0:(1-i-r)/(1-r)),100*(1===r?0:(1-a-r)/(1-r)),100*(1===r?0:(1-c-r)/(1-r)),100*r]}(i.h,i.s,i.v);return t.toString=o(t,function(t){return"cmyk(".concat(t[0],"%, ").concat(t[1],"%, ").concat(t[2],"%, ").concat(t[3],"%)")}),t},toHEXA:function(){var t=function(t,e,n){return w(t,e,n).map(function(t){return _(t).toString(16).padStart(2,"0")})}(i.h,i.s,i.v),e=i.a>=1?"":Number((255*i.a).toFixed(0)).toString(16).toUpperCase().padStart(2,"0");return e&&t.push(e),t.toString=function(){return"#".concat(t.join("").toUpperCase())},t},clone:function(){return E(i.h,i.s,i.v,i.a)}};return i}var P=function(t){return Math.max(Math.min(t,1),0)};function x(t){var e={options:Object.assign({lock:null,onchange:function(){return 0}},t),_tapstart:function(t){c(document,["mouseup","touchend","touchcancel"],e._tapstop),c(document,["mousemove","touchmove"],e._tapmove),t.preventDefault(),e._tapmove(t)},_tapmove:function(t){var r=e.options.lock,o=e.cache,i=n.element,a=n.wrapper,c=a.getBoundingClientRect(),l=0,u=0;if(t){var s=t&&t.touches&&t.touches[0];l=t?(s||t).clientX:0,u=t?(s||t).clientY:0,lc.left+c.width&&(l=c.left+c.width),uc.top+c.height&&(u=c.top+c.height),l-=c.left,u-=c.top}else o&&(l=o.x*c.width,u=o.y*c.height);"h"!==r&&(i.style.left="calc(".concat(l/c.width*100,"% - ").concat(i.offsetWidth/2,"px)")),"v"!==r&&(i.style.top="calc(".concat(u/c.height*100,"% - ").concat(i.offsetHeight/2,"px)")),e.cache={x:l/c.width,y:u/c.height};var p=P(l/a.offsetWidth),h=P(u/a.offsetHeight);switch(r){case"v":return n.onchange(p);case"h":return n.onchange(h);default:return n.onchange(p,h)}},_tapstop:function(){l(document,["mouseup","touchend","touchcancel"],e._tapstop),l(document,["mousemove","touchmove"],e._tapmove)},trigger:function(){e._tapmove()},update:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.options.wrapper.getBoundingClientRect(),o=r.left,i=r.top,a=r.width,c=r.height;"h"===e.options.lock&&(n=t),e._tapmove({clientX:o+a*t,clientY:i+c*n})},destroy:function(){var t=e.options,n=e._tapstart;l([t.wrapper,t.element],"mousedown",n),l([t.wrapper,t.element],"touchstart",n,{passive:!1})}},n=e.options,r=e._tapstart;return c([n.wrapper,n.element],"mousedown",r),c([n.wrapper,n.element],"touchstart",r,{passive:!1}),e}function L(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:{};t=Object.assign({onchange:function(){return 0},className:"",elements:[]},t);var e=c(t.elements,"click",function(e){t.elements.forEach(function(n){return n.classList[e.target===n?"add":"remove"](t.className)}),t.onchange(e)});return{destroy:function(){return l.apply(r,L(e))}}}function R(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=t[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function H(t){var e=t.el,n=t.reference,r=t.padding,o=void 0===r?8:r,i={start:"sme",middle:"mse",end:"ems"},a={top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t[e];if(n)return n;var r=e.split("-"),o=R(r,2),i=o[0],a=o[1],c=void 0===a?"middle":a,l="top"===i||"bottom"===i;return t[e]={position:i,variant:c,isVertical:l}}}();return{update:function(t){var r=c(t),l=r.position,u=r.variant,s=r.isVertical,p=n.getBoundingClientRect(),h=e.getBoundingClientRect(),d=function(t){for(var e=0,n=0;t=t.parentElement;)e+=t.scrollTop,n+=t.scrollLeft;return{top:e,left:n}}(e),f=function(t){return t?{s:p.left+p.width-h.width+d.left,m:-h.width/2+(p.left+p.width/2)+d.left,e:p.left+d.left}:{s:p.bottom-h.height+d.top,m:p.bottom-p.height/2-h.height/2+d.top,e:p.bottom-p.height+d.top}};function v(t,n,r){var o="top"===r,i=o?h.height:h.width,a=window[o?"innerHeight":"innerWidth"]+(o?d.top:d.left),c=!0,l=!1,u=void 0;try{for(var s,p=t[Symbol.iterator]();!(c=(s=p.next()).done);c=!0){var f=n[s.value];if(f-(o?d.top:d.left)>0&&f+i>/g).reduce(function(t,e,n,r){return t=t.querySelector(e),n\n\n '.concat(r?"":'','\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 ")),(s=u.interaction).options.find(function(t){return!t.hidden&&!t.classList.add("active")}),s.type=function(){return s.options.find(function(t){return t.classList.contains("active")})},u),p.useAsButton&&(this._root.button=p.el),document.body.appendChild(this._root.root)}},{key:"_finalBuild",value:function(){var t=this.options,e=this._root;if(document.body.removeChild(e.root),t.inline){var n=t.el.parentElement;n.lastChild===t.el?n.appendChild(e.app):n.insertBefore(e.app,t.el.nextSibling)}else document.body.appendChild(e.app);t.useAsButton||t.el.parentNode.replaceChild(e.root,t.el),t.disabled&&this.disable(),t.comparison||(e.button.style.transition="none",t.useAsButton||(e.preview.lastColor.style.transition="none")),this.hide()}},{key:"_buildComponents",value:function(){var t=this,e=this.options.components,n=function(){var e=t.options.sliders,n="v",r="v";if(e&&e.match(/^[vh]+$/g))if(e.length>1){var o=M(e,2);n=o[0],r=o[1]}else n=r=e;var i={v:"h",h:"v"};return[i[n],i[r]]}(),r=M(n,2),o=r[0],i=r[1],a={palette:x({element:t._root.palette.picker,wrapper:t._root.palette.palette,onchange:function(n,r){if(e.palette){var o=t._color,i=t._root,a=t.options;t._recalc&&(o.s=100*n,o.v=100-100*r,o.v<0&&(o.v=0),t._updateOutput());var c=o.toRGBA().toString(0);this.element.style.background=c,this.wrapper.style.background="\n linear-gradient(to top, rgba(0, 0, 0, ".concat(o.a,"), transparent),\n linear-gradient(to left, hsla(").concat(o.h,", 100%, 50%, ").concat(o.a,"), rgba(255, 255, 255, ").concat(o.a,"))\n "),a.comparison||(i.button.style.color=c,a.useAsButton||(i.preview.lastColor.style.color=c)),i.preview.currentColor.style.color=c,t.options.comparison||i.button.classList.remove("clear")}}}),hue:x({lock:i,element:t._root.hue.picker,wrapper:t._root.hue.slider,onchange:function(n){e.hue&&e.palette&&(t._recalc&&(t._color.h=360*n),this.element.style.backgroundColor="hsl(".concat(t._color.h,", 100%, 50%)"),a.palette.trigger())}}),opacity:x({lock:o,element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onchange:function(n){e.opacity&&e.palette&&(t._recalc&&(t._color.a=Math.round(100*n)/100),this.element.style.background="rgba(0, 0, 0, ".concat(t._color.a,")"),a.palette.trigger())}}),selectable:B({elements:t._root.interaction.options,className:"active",onchange:function(e){t._representation=e.target.getAttribute("data-type").toUpperCase(),t._updateOutput()}})};this._components=a}},{key:"_bindEvents",value:function(){var t=this,e=this._root,n=this.options,r=[c(e.interaction.clear,"click",function(){return t._clearColor()}),c([e.interaction.cancel,e.preview.lastColor],"click",function(){return t.setHSVA.apply(t,D(t._lastColor.toHSVA()))}),c(e.interaction.save,"click",function(){!t.applyColor()&&!n.showAlways&&t.hide()}),c(e.interaction.result,["keyup","input"],function(e){t._recalc=!1,t.setColor(e.target.value,!0)&&!t._initializingActive&&t._emit("change",t._color),e.stopImmediatePropagation()}),c([e.palette.palette,e.palette.picker,e.hue.slider,e.hue.picker,e.opacity.slider,e.opacity.picker],["mousedown","touchstart"],function(){return t._recalc=!0})];if(!n.showAlways){var o=n.closeWithKey;r.push(c(e.button,"click",function(){return t.isOpen()?t.hide():t.show()}),c(document,"keyup",function(e){return t.isOpen()&&(e.key===o||e.code===o)&&t.hide()}),c(document,["touchstart","mousedown"],function(n){t.isOpen()&&!d(n).some(function(t){return t===e.app||t===e.button})&&t.hide()},{capture:!0}))}if(n.adjustableNumbers){var i={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};f(e.interaction.result,function(e,n,r){var o=i[t.getColorRepresentation().toLowerCase()];if(o){var a=o[r],c=e+(a>=100?1e3*n:n);return c<=0?0:Number((c0&&void 0!==arguments[0]&&arguments[0],e=this._root,n=this.options;n.useAsButton||(e.button.style.color="rgba(0, 0, 0, 0.15)"),e.button.classList.add("clear"),n.showAlways||this.hide(),this._initializingActive||t||this._emit("save",null)}},{key:"_emit",value:function(t){for(var e=this,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o'));return o.swatches.appendChild(a),r.push({element:a,hsvaColorObject:i}),this._eventBindings.push(c(a,"click",function(){e.setHSVA.apply(e,D(i.toHSVA()).concat([!0])),e._emit("swatchselect",i),e._emit("change",i)})),!0}return!1}},{key:"removeSwatch",value:function(t){var e=this._swatchColors[t];if(e){var n=e.element;return this._root.swatches.removeChild(n),this._swatchColors.splice(t,1),!0}return!1}},{key:"applyColor",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this._root,n=e.preview,r=e.button,o=this._color.toRGBA().toString();n.lastColor.style.color=o,this.options.useAsButton||(r.style.color=o),r.classList.remove("clear"),this._lastColor=this._color.clone(),this._initializingActive||t||this._emit("save",this._color)}},{key:"destroy",value:function(){var t=this;this._eventBindings.forEach(function(t){return l.apply(r,D(t))}),Object.keys(this._components).forEach(function(e){return t._components[e].destroy()})}},{key:"destroyAndRemove",value:function(){var t=this;this.destroy();var e=this._root,n=e.root,r=e.app;n.parentElement&&n.parentElement.removeChild(n),r.parentElement.removeChild(r),Object.keys(this).forEach(function(e){return t[e]=null})}},{key:"hide",value:function(){return this._root.app.classList.remove("visible"),this}},{key:"show",value:function(){if(!this.options.disabled)return this._root.app.classList.add("visible"),this._rePositioningPicker(),this}},{key:"isOpen",value:function(){return this._root.app.classList.contains("visible")}},{key:"setHSVA",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:360,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=this._recalc;if(this._recalc=!1,t<0||t>360||e<0||e>100||n<0||n>100||r<0||r>1)return!1;this._color=E(t,e,n,r);var a=this._components,c=a.hue,l=a.opacity,u=a.palette;return c.update(t/360),l.update(r),u.update(e/100,1-n/100),o||this.applyColor(),i&&this._updateOutput(),this._recalc=i,!0}},{key:"setColor",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null===t)return this._clearColor(e),!0;var n=this._parseLocalColor(t),r=n.values,o=n.type;if(r){var i=o.toUpperCase(),a=this._root.interaction.options,c=a.find(function(t){return t.getAttribute("data-type")===i});if(c&&!c.hidden){var l=!0,u=!1,s=void 0;try{for(var p,h=a[Symbol.iterator]();!(l=(p=h.next()).done);l=!0){var d=p.value;d.classList[d===c?"add":"remove"]("active")}}catch(t){u=!0,s=t}finally{try{l||null==h.return||h.return()}finally{if(u)throw s}}}return this.setHSVA.apply(this,D(r).concat([e]))}return!1}},{key:"setColorRepresentation",value:function(t){return t=t.toUpperCase(),!!this._root.interaction.options.find(function(e){return e.getAttribute("data-type").startsWith(t)&&!e.click()})}},{key:"getColorRepresentation",value:function(){return this._representation}},{key:"getColor",value:function(){return this._color}},{key:"getRoot",value:function(){return this._root}},{key:"disable",value:function(){return this.hide(),this.options.disabled=!0,this._root.button.classList.add("disabled"),this}},{key:"enable",value:function(){return this.options.disabled=!1,this._root.button.classList.remove("disabled"),this}}])&&T(e.prototype,n),o&&T(e,o),t}();V.utils=r,V.libs={Moveable:x,Nanopop:H,Selectable:B},V.create=function(t){return new V(t)},V.version="1.2.1";e.default=V}]).default}); +/*! Pickr 1.2.2 MIT | https://github.com/Simonwep/pickr */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Pickr=e():t.Pickr=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);var r={};function o(t,e){var n=Object.keys(t);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(t)),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n}function i(t){for(var e=1;e4&&void 0!==arguments[4]?arguments[4]:{};e instanceof HTMLCollection||e instanceof NodeList?e=Array.from(e):Array.isArray(e)||(e=[e]),Array.isArray(n)||(n=[n]);var a=!0,c=!1,l=void 0;try{for(var u,s=e[Symbol.iterator]();!(a=(u=s.next()).done);a=!0){var p=u.value,h=!0,d=!1,f=void 0;try{for(var v,y=n[Symbol.iterator]();!(h=(v=y.next()).done);h=!0){var m=v.value;p[t](m,r,i({capture:!1},o))}}catch(t){d=!0,f=t}finally{try{h||null==y.return||y.return()}finally{if(d)throw f}}}}catch(t){c=!0,l=t}finally{try{a||null==s.return||s.return()}finally{if(c)throw l}}return Array.prototype.slice.call(arguments,1)}function s(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstElementChild}function p(t,e){var n=t.getAttribute(e);return t.removeAttribute(e),n}function h(t){return function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=p(e,"data-con"),o=p(e,"data-key");o&&(n[o]=e);for(var i=r?n[r]={}:n,a=0,c=Array.from(e.children);a1&&void 0!==arguments[1]?arguments[1]:function(t){return t};function n(n){var r=[.001,.01,.1][Number(n.shiftKey||2*n.ctrlKey)]*(n.deltaY<0?1:-1),o=0,i=t.selectionStart;t.value=t.value.replace(/[\d.]+/g,function(t,n){return n<=i&&n+t.length>=i?(i=n,e(Number(t),r,o)):(o++,t)}),t.focus(),t.setSelectionRange(i,i),n.preventDefault(),t.dispatchEvent(new Event("input"))}c(t,"focus",function(){return c(window,"wheel",n,{passive:!1})}),c(t,"blur",function(){return l(window,"wheel",n)})}function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=t[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function y(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&(r-=1)}return[360*r,100*o,100*a]}function A(t,e,n,r){return e/=100,n/=100,y(k(255*(1-m(1,(t/=100)*(1-(r/=100))+r)),255*(1-m(1,e*(1-r)+r)),255*(1-m(1,n*(1-r)+r))))}function C(t,e,n){return e/=100,[t,2*(e*=(n/=100)<.5?n:1-n)/(n+e)*100,100*(n+e)]}function S(t){return k.apply(void 0,y(t.match(/.{2}/g).map(function(t){return parseInt(t,16)})))}function O(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if("black"===t.toLowerCase())return"#000000";var e=document.createElement("canvas").getContext("2d");return e.fillStyle=t,"#000000"===e.fillStyle?null:e.fillStyle}(t):t;var e,n={cmyk:/^cmyk[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)/i,rgba:/^((rgba)|rgb)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsla:/^((hsla)|hsl)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsva:/^((hsva)|hsv)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hexa:/^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i},r=function(t){return t.map(function(t){return/^(|\d+)\.\d+|\d+$/.test(t)?Number(t):void 0})};t:for(var o in n)if(e=n[o].exec(t)){var i=!!e[2];switch(o){case"cmyk":var a=v(r(e),5),c=a[1],l=a[2],u=a[3],s=a[4];if(c>100||l>100||u>100||s>100)break t;return{values:A(c,l,u,s),type:o};case"rgba":var p=v(r(e),7),h=p[3],d=p[4],f=p[5],m=p[6];if(h>255||d>255||f>255||m<0||m>1||i===!m)break t;return{values:[].concat(y(k(h,d,f)),[m]),a:m,type:o};case"hexa":var b=v(e,2)[1];4!==b.length&&3!==b.length||(b=b.split("").map(function(t){return t+t}).join(""));var g=b.substring(0,6),_=b.substring(6);return _=_?parseInt(_,16)/255:void 0,{values:[].concat(y(S(g)),[_]),a:_,type:o};case"hsla":var w=v(r(e),7),O=w[3],j=w[4],E=w[5],P=w[6];if(O>360||j>100||E>100||P<0||P>1||i===!P)break t;return{values:[].concat(y(C(O,j,E)),[P]),a:P,type:o};case"hsva":var x=v(r(e),7),L=x[3],B=x[4],R=x[5],H=x[6];if(L>360||B>100||R>100||H<0||H>1||i===!H)break t;return{values:[L,B,R,H],a:H,type:o}}}return{values:null,type:null}}function j(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=function(t,e){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;return e(~n?t.map(function(t){return Number(t.toFixed(n))}):t)}},i={h:t,s:e,v:n,a:r,toHSVA:function(){var t=[i.h,i.s,i.v,i.a];return t.toString=o(t,function(t){return"hsva(".concat(t[0],", ").concat(t[1],"%, ").concat(t[2],"%, ").concat(i.a,")")}),t},toHSLA:function(){var t=[].concat(j(function(t,e,n){var r=(2-(e/=100))*(n/=100)/2;return 0!==r&&(e=1===r?0:r<.5?e*n/(2*r):e*n/(2-2*r)),[t,100*e,100*r]}(i.h,i.s,i.v)),[i.a]);return t.toString=o(t,function(t){return"hsla(".concat(t[0],", ").concat(t[1],"%, ").concat(t[2],"%, ").concat(i.a,")")}),t},toRGBA:function(){var t=[].concat(j(w(i.h,i.s,i.v)),[i.a]);return t.toString=o(t,function(t){return"rgba(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(i.a,")")}),t},toCMYK:function(){var t=function(t,e,n){var r,o=w(t,e,n),i=o[0]/255,a=o[1]/255,c=o[2]/255;return[100*(1===(r=m(1-i,1-a,1-c))?0:(1-i-r)/(1-r)),100*(1===r?0:(1-a-r)/(1-r)),100*(1===r?0:(1-c-r)/(1-r)),100*r]}(i.h,i.s,i.v);return t.toString=o(t,function(t){return"cmyk(".concat(t[0],"%, ").concat(t[1],"%, ").concat(t[2],"%, ").concat(t[3],"%)")}),t},toHEXA:function(){var t=function(t,e,n){return w(t,e,n).map(function(t){return _(t).toString(16).padStart(2,"0")})}(i.h,i.s,i.v),e=i.a>=1?"":Number((255*i.a).toFixed(0)).toString(16).toUpperCase().padStart(2,"0");return e&&t.push(e),t.toString=function(){return"#".concat(t.join("").toUpperCase())},t},clone:function(){return E(i.h,i.s,i.v,i.a)}};return i}var P=function(t){return Math.max(Math.min(t,1),0)};function x(t){var e={options:Object.assign({lock:null,onchange:function(){return 0}},t),_tapstart:function(t){c(document,["mouseup","touchend","touchcancel"],e._tapstop),c(document,["mousemove","touchmove"],e._tapmove),t.preventDefault(),e._tapmove(t)},_tapmove:function(t){var r=e.options.lock,o=e.cache,i=n.element,a=n.wrapper,c=a.getBoundingClientRect(),l=0,u=0;if(t){var s=t&&t.touches&&t.touches[0];l=t?(s||t).clientX:0,u=t?(s||t).clientY:0,lc.left+c.width&&(l=c.left+c.width),uc.top+c.height&&(u=c.top+c.height),l-=c.left,u-=c.top}else o&&(l=o.x*c.width,u=o.y*c.height);"h"!==r&&(i.style.left="calc(".concat(l/c.width*100,"% - ").concat(i.offsetWidth/2,"px)")),"v"!==r&&(i.style.top="calc(".concat(u/c.height*100,"% - ").concat(i.offsetHeight/2,"px)")),e.cache={x:l/c.width,y:u/c.height};var p=P(l/a.offsetWidth),h=P(u/a.offsetHeight);switch(r){case"v":return n.onchange(p);case"h":return n.onchange(h);default:return n.onchange(p,h)}},_tapstop:function(){l(document,["mouseup","touchend","touchcancel"],e._tapstop),l(document,["mousemove","touchmove"],e._tapmove)},trigger:function(){e._tapmove()},update:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.options.wrapper.getBoundingClientRect(),o=r.left,i=r.top,a=r.width,c=r.height;"h"===e.options.lock&&(n=t),e._tapmove({clientX:o+a*t,clientY:i+c*n})},destroy:function(){var t=e.options,n=e._tapstart;l([t.wrapper,t.element],"mousedown",n),l([t.wrapper,t.element],"touchstart",n,{passive:!1})}},n=e.options,r=e._tapstart;return c([n.wrapper,n.element],"mousedown",r),c([n.wrapper,n.element],"touchstart",r,{passive:!1}),e}function L(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:{};t=Object.assign({onchange:function(){return 0},className:"",elements:[]},t);var e=c(t.elements,"click",function(e){t.elements.forEach(function(n){return n.classList[e.target===n?"add":"remove"](t.className)}),t.onchange(e)});return{destroy:function(){return l.apply(r,L(e))}}}function R(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=t[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function H(t){var e=t.el,n=t.reference,r=t.padding,o=void 0===r?8:r,i={start:"sme",middle:"mse",end:"ems"},a={top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},c=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t[e];if(n)return n;var r=e.split("-"),o=R(r,2),i=o[0],a=o[1],c=void 0===a?"middle":a,l="top"===i||"bottom"===i;return t[e]={position:i,variant:c,isVertical:l}}}();return{update:function(t){var r=c(t),l=r.position,u=r.variant,s=r.isVertical,p=n.getBoundingClientRect(),h=e.getBoundingClientRect(),d=function(t){for(var e=0,n=0;t=t.parentElement;)e+=t.scrollTop,n+=t.scrollLeft;return{top:e,left:n}}(e),f=function(t){return t?{s:p.left+p.width-h.width+d.left,m:-h.width/2+(p.left+p.width/2)+d.left,e:p.left+d.left}:{s:p.bottom-h.height+d.top,m:p.bottom-p.height/2-h.height/2+d.top,e:p.bottom-p.height+d.top}};function v(t,n,r){var o="top"===r,i=o?h.height:h.width,a=window[o?"innerHeight":"innerWidth"]+(o?d.top:d.left),c=!0,l=!1,u=void 0;try{for(var s,p=t[Symbol.iterator]();!(c=(s=p.next()).done);c=!0){var f=n[s.value];if(f-(o?d.top:d.left)>0&&f+i>/g).reduce(function(t,e,n,r){return t=t.querySelector(e),n\n\n '.concat(r?"":'','\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 ")),(s=u.interaction).options.find(function(t){return!t.hidden&&!t.classList.add("active")}),s.type=function(){return s.options.find(function(t){return t.classList.contains("active")})},u),p.useAsButton&&(this._root.button=p.el),document.body.appendChild(this._root.root)}},{key:"_finalBuild",value:function(){var t=this.options,e=this._root;if(document.body.removeChild(e.root),t.inline){var n=t.el.parentElement;n.lastChild===t.el?n.appendChild(e.app):n.insertBefore(e.app,t.el.nextSibling)}else document.body.appendChild(e.app);t.useAsButton||t.el.parentNode.replaceChild(e.root,t.el),t.disabled&&this.disable(),t.comparison||(e.button.style.transition="none",t.useAsButton||(e.preview.lastColor.style.transition="none")),this.hide()}},{key:"_buildComponents",value:function(){var t=this,e=this.options.components,n=function(){var e=t.options.sliders,n="v",r="v";if(e&&e.match(/^[vh]+$/g))if(e.length>1){var o=M(e,2);n=o[0],r=o[1]}else n=r=e;var i={v:"h",h:"v"};return[i[n],i[r]]}(),r=M(n,2),o=r[0],i=r[1],a={palette:x({element:t._root.palette.picker,wrapper:t._root.palette.palette,onchange:function(n,r){if(e.palette){var o=t._color,i=t._root,a=t.options;t._recalc&&(o.s=100*n,o.v=100-100*r,o.v<0&&(o.v=0),t._updateOutput());var c=o.toRGBA().toString(0);this.element.style.background=c,this.wrapper.style.background="\n linear-gradient(to top, rgba(0, 0, 0, ".concat(o.a,"), transparent),\n linear-gradient(to left, hsla(").concat(o.h,", 100%, 50%, ").concat(o.a,"), rgba(255, 255, 255, ").concat(o.a,"))\n "),a.comparison||(i.button.style.color=c,a.useAsButton||(i.preview.lastColor.style.color=c)),i.preview.currentColor.style.color=c,t.options.comparison||i.button.classList.remove("clear")}}}),hue:x({lock:i,element:t._root.hue.picker,wrapper:t._root.hue.slider,onchange:function(n){e.hue&&e.palette&&(t._recalc&&(t._color.h=360*n),this.element.style.backgroundColor="hsl(".concat(t._color.h,", 100%, 50%)"),a.palette.trigger())}}),opacity:x({lock:o,element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onchange:function(n){e.opacity&&e.palette&&(t._recalc&&(t._color.a=Math.round(100*n)/100),this.element.style.background="rgba(0, 0, 0, ".concat(t._color.a,")"),a.palette.trigger())}}),selectable:B({elements:t._root.interaction.options,className:"active",onchange:function(e){t._representation=e.target.getAttribute("data-type").toUpperCase(),t._updateOutput()}})};this._components=a}},{key:"_bindEvents",value:function(){var t=this,e=this._root,n=this.options,r=[c(e.interaction.clear,"click",function(){return t._clearColor()}),c([e.interaction.cancel,e.preview.lastColor],"click",function(){return t.setHSVA.apply(t,D(t._lastColor.toHSVA()))}),c(e.interaction.save,"click",function(){!t.applyColor()&&!n.showAlways&&t.hide()}),c(e.interaction.result,["keyup","input"],function(e){t._recalc=!1,t.setColor(e.target.value,!0)&&!t._initializingActive&&t._emit("change",t._color),e.stopImmediatePropagation()}),c([e.palette.palette,e.palette.picker,e.hue.slider,e.hue.picker,e.opacity.slider,e.opacity.picker],["mousedown","touchstart"],function(){return t._recalc=!0})];if(!n.showAlways){var o=n.closeWithKey;r.push(c(e.button,"click",function(){return t.isOpen()?t.hide():t.show()}),c(document,"keyup",function(e){return t.isOpen()&&(e.key===o||e.code===o)&&t.hide()}),c(document,["touchstart","mousedown"],function(n){t.isOpen()&&!d(n).some(function(t){return t===e.app||t===e.button})&&t.hide()},{capture:!0}))}if(n.adjustableNumbers){var i={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};f(e.interaction.result,function(e,n,r){var o=i[t.getColorRepresentation().toLowerCase()];if(o){var a=o[r],c=e+(a>=100?1e3*n:n);return c<=0?0:Number((c0&&void 0!==arguments[0]&&arguments[0],e=this._root,n=this.options;n.useAsButton||(e.button.style.color="rgba(0, 0, 0, 0.15)"),e.button.classList.add("clear"),n.showAlways||this.hide(),this._initializingActive||t||this._emit("save",null)}},{key:"_emit",value:function(t){for(var e=this,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o'));return o.swatches.appendChild(a),r.push({element:a,hsvaColorObject:i}),this._eventBindings.push(c(a,"click",function(){e.setHSVA.apply(e,D(i.toHSVA()).concat([!0])),e._emit("swatchselect",i),e._emit("change",i)})),!0}return!1}},{key:"removeSwatch",value:function(t){var e=this._swatchColors[t];if(e){var n=e.element;return this._root.swatches.removeChild(n),this._swatchColors.splice(t,1),!0}return!1}},{key:"applyColor",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this._root,n=e.preview,r=e.button,o=this._color.toRGBA().toString();n.lastColor.style.color=o,this.options.useAsButton||(r.style.color=o),r.classList.remove("clear"),this._lastColor=this._color.clone(),this._initializingActive||t||this._emit("save",this._color)}},{key:"destroy",value:function(){var t=this;this._eventBindings.forEach(function(t){return l.apply(r,D(t))}),Object.keys(this._components).forEach(function(e){return t._components[e].destroy()})}},{key:"destroyAndRemove",value:function(){var t=this;this.destroy();var e=this._root,n=e.root,r=e.app;n.parentElement&&n.parentElement.removeChild(n),r.parentElement.removeChild(r),Object.keys(this).forEach(function(e){return t[e]=null})}},{key:"hide",value:function(){return this._root.app.classList.remove("visible"),this}},{key:"show",value:function(){if(!this.options.disabled)return this._root.app.classList.add("visible"),this._rePositioningPicker(),this}},{key:"isOpen",value:function(){return this._root.app.classList.contains("visible")}},{key:"setHSVA",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:360,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=this._recalc;if(this._recalc=!1,t<0||t>360||e<0||e>100||n<0||n>100||r<0||r>1)return!1;this._color=E(t,e,n,r);var a=this._components,c=a.hue,l=a.opacity,u=a.palette;return c.update(t/360),l.update(r),u.update(e/100,1-n/100),o||this.applyColor(),i&&this._updateOutput(),this._recalc=i,!0}},{key:"setColor",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null===t)return this._clearColor(e),!0;var n=this._parseLocalColor(t),r=n.values,o=n.type;if(r){var i=o.toUpperCase(),a=this._root.interaction.options,c=a.find(function(t){return t.getAttribute("data-type")===i});if(c&&!c.hidden){var l=!0,u=!1,s=void 0;try{for(var p,h=a[Symbol.iterator]();!(l=(p=h.next()).done);l=!0){var d=p.value;d.classList[d===c?"add":"remove"]("active")}}catch(t){u=!0,s=t}finally{try{l||null==h.return||h.return()}finally{if(u)throw s}}}return this.setHSVA.apply(this,D(r).concat([e]))}return!1}},{key:"setColorRepresentation",value:function(t){return t=t.toUpperCase(),!!this._root.interaction.options.find(function(e){return e.getAttribute("data-type").startsWith(t)&&!e.click()})}},{key:"getColorRepresentation",value:function(){return this._representation}},{key:"getColor",value:function(){return this._color}},{key:"getRoot",value:function(){return this._root}},{key:"disable",value:function(){return this.hide(),this.options.disabled=!0,this._root.button.classList.add("disabled"),this}},{key:"enable",value:function(){return this.options.disabled=!1,this._root.button.classList.remove("disabled"),this}}])&&T(e.prototype,n),o&&T(e,o),t}();V.utils=r,V.libs={Moveable:x,Nanopop:H,Selectable:B},V.create=function(t){return new V(t)},V.version="1.2.2";e.default=V}]).default}); //# sourceMappingURL=pickr.es5.min.js.map \ No newline at end of file diff --git a/dist/pickr.es5.min.js.map b/dist/pickr.es5.min.js.map index 0bf74486..a4a836d9 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","push","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","_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","so","scrollTop","scrollLeft","getScrollOffset","variants","vertical","bevs","vars","styleprop","adder","win","_i2","_arr2","rot","v2Ok","v1Ok","Pickr","_this","this","_classCallCheck","pickr_defineProperty","swatchselect","change","save","init","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","offsetParent","body","setColor","_rePositioningPicker","_representation","setColorRepresentation","show","_initializingActive","_emit","lo","hidden","int","reduce","pv","cv","ci","querySelector","shadowRoot","keys","input","cancel","clear","find","add","contains","appendChild","removeChild","lastChild","insertBefore","nextSibling","parentNode","replaceChild","disable","transition","lastColor","hide","inst","cs","sh","_sliders","pickr_slicedToArray","opposite","_ref2","picker","_color","_recalc","_updateOutput","cssRGBaString","background","currentColor","remove","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","silent","event","_this3","_len","args","_key","_eventListener","_parseToHSVA","alphaMakesAChange","callBacks","indexOf","splice","_this4","_parseLocalColor","_swatchColors","hsvaColorObject","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","/**\r\n * Add event(s) to element(s).\r\n * @param elements DOM-Elements\r\n * @param events Event names\r\n * @param fn Callback\r\n * @param options Optional options\r\n * @return Array passed arguments\r\n */\r\nexport const on = eventListener.bind(null, 'addEventListener');\r\n\r\n/**\r\n * Remove event(s) from element(s).\r\n * @param elements DOM-Elements\r\n * @param events Event names\r\n * @param fn Callback\r\n * @param options Optional options\r\n * @return Array passed arguments\r\n */\r\nexport const off = eventListener.bind(null, 'removeEventListener');\r\n\r\nfunction eventListener(method, elements, events, fn, options = {}) {\r\n\r\n // Normalize array\r\n if (elements instanceof HTMLCollection || elements instanceof NodeList) {\r\n elements = Array.from(elements);\r\n } else if (!Array.isArray(elements)) {\r\n elements = [elements];\r\n }\r\n\r\n if (!Array.isArray(events)) {\r\n events = [events];\r\n }\r\n\r\n for (const el of elements) {\r\n for (const ev of events) {\r\n el[method](ev, fn, {capture: false, ...options});\r\n }\r\n }\r\n\r\n return Array.prototype.slice.call(arguments, 1);\r\n}\r\n\r\n/**\r\n * Creates an DOM-Element out of a string (Single element).\r\n * @param html HTML representing a single element\r\n * @returns {Element | null} The element.\r\n */\r\nexport function createElementFromString(html) {\r\n const div = document.createElement('div');\r\n div.innerHTML = html.trim();\r\n return div.firstElementChild;\r\n}\r\n\r\n/**\r\n * Removes an attribute from a HTMLElement and returns the value.\r\n * @param el\r\n * @param name\r\n * @return {string}\r\n */\r\nexport function removeAttribute(el, name) {\r\n const value = el.getAttribute(name);\r\n el.removeAttribute(name);\r\n return value;\r\n}\r\n\r\n/**\r\n * Creates a new html element, every element which has\r\n * a 'data-key' attribute will be saved in a object (which will be returned)\r\n * where the value of 'data-key' ist the object-key and the value the HTMLElement.\r\n *\r\n * It's possible to create a hierarchy if you add a 'data-con' attribute. Every\r\n * sibling will be added to the object which will get the name from the 'data-con' attribute.\r\n *\r\n * If you want to create an Array out of multiple elements, you can use the 'data-arr' attribute,\r\n * the value defines the key and all elements, which has the same parent and the same 'data-arr' attribute,\r\n * would be added to it.\r\n *\r\n * @param str - The HTML String.\r\n */\r\nexport function createFromTemplate(str) {\r\n\r\n // Recursive function to resolve template\r\n function resolve(element, base = {}) {\r\n\r\n // Check key and container attribute\r\n const con = removeAttribute(element, 'data-con');\r\n const key = removeAttribute(element, 'data-key');\r\n\r\n // Check and save element\r\n if (key) {\r\n base[key] = element;\r\n }\r\n\r\n // Check all children\r\n const subtree = con ? (base[con] = {}) : base;\r\n for (let child of Array.from(element.children)) {\r\n\r\n // Check if element should be saved as array\r\n const arr = removeAttribute(child, 'data-arr');\r\n if (arr) {\r\n\r\n // Check if there is already an array and add element\r\n (subtree[arr] || (subtree[arr] = [])).push(child);\r\n } else {\r\n resolve(child, subtree);\r\n }\r\n }\r\n\r\n return base;\r\n }\r\n\r\n return resolve(createElementFromString(str));\r\n}\r\n\r\n/**\r\n * Polyfill for safari & firefox for the eventPath event property.\r\n * @param evt The event object.\r\n * @return [String] event path.\r\n */\r\nexport function eventPath(evt) {\r\n let path = evt.path || (evt.composedPath && evt.composedPath());\r\n if (path) return path;\r\n\r\n let el = evt.target.parentElement;\r\n path = [evt.target, el];\r\n while (el = el.parentElement) path.push(el);\r\n\r\n path.push(document, window);\r\n return path;\r\n}\r\n\r\n/**\r\n * Creates the ability to change numbers in an input field with the scroll-wheel.\r\n * @param el\r\n * @param mapper\r\n */\r\nexport function adjustableInputNumbers(el, mapper = v => v) {\r\n\r\n function handleScroll(e) {\r\n const inc = ([0.001, 0.01, 0.1])[Number(e.shiftKey || e.ctrlKey * 2)] * (e.deltaY < 0 ? 1 : -1);\r\n\r\n let index = 0;\r\n let off = el.selectionStart;\r\n el.value = el.value.replace(/[\\d.]+/g, (v, i) => {\r\n\r\n // Check if number is in cursor range and increase it\r\n if (i <= off && i + v.length >= off) {\r\n off = i;\r\n return mapper(Number(v), inc, index);\r\n }\r\n\r\n index++;\r\n return v;\r\n });\r\n\r\n el.focus();\r\n el.setSelectionRange(off, off);\r\n\r\n // Prevent default and trigger input event\r\n e.preventDefault();\r\n el.dispatchEvent(new Event('input'));\r\n }\r\n\r\n // Bind events\r\n on(el, 'focus', () => on(window, 'wheel', handleScroll, {passive: false}));\r\n on(el, 'blur', () => off(window, 'wheel', handleScroll));\r\n}\r\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 '#000000';\n }\n\n const ctx = document.createElement('canvas').getContext('2d');\n ctx.fillStyle = name;\n return ctx.fillStyle === '#000000' ? 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 let i = floor(h);\n\n let f = h - i;\n let p = v * (1 - s);\n let q = v * (1 - f * s);\n let t = v * (1 - (1 - f) * s);\n\n let mod = i % 6;\n let r = [v, q, p, p, t, v][mod];\n let g = [t, v, v, q, p, p][mod];\n let b = [p, p, t, v, v, q][mod];\n\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\n\n/**\n * Convert HSV spectrum to Hex.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @returns {string[]} Hex values\n */\nexport function hsvToHex(h, s, v) {\n return hsvToRgb(h, s, v).map(v =>\n 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 let l = (2 - s) * v / 2;\n\n if (l !== 0) {\n if (l === 1) {\n s = 0;\n } else if (l < 0.5) {\n s = s * v / (l * 2);\n } else {\n s = s * v / (2 - l * 2);\n }\n }\n\n return [\n h,\n s * 100,\n l * 100\n ];\n}\n\n/**\n * Convert RGB to HSV.\n * @param r Red\n * @param g Green\n * @param b Blue\n * @return {number[]} HSV values.\n */\nfunction rgbToHsv(r, g, b) {\n r /= 255, g /= 255, b /= 255;\n\n let h, s, v;\n const minVal = min(r, g, b);\n const maxVal = max(r, g, b);\n const delta = maxVal - minVal;\n\n v = maxVal;\n if (delta === 0) {\n h = s = 0;\n } else {\n s = delta / maxVal;\n let dr = (((maxVal - r) / 6) + (delta / 2)) / delta;\n let dg = (((maxVal - g) / 6) + (delta / 2)) / delta;\n let db = (((maxVal - b) / 6) + (delta / 2)) / delta;\n\n if (r === maxVal) {\n h = db - dg;\n } else if (g === maxVal) {\n h = (1 / 3) + dr - db;\n } else if (b === maxVal) {\n h = (2 / 3) + dg - dr;\n }\n\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n\n return [\n h * 360,\n s * 100,\n v * 100\n ];\n}\n\n/**\n * Convert CMYK to HSV.\n * @param c Cyan\n * @param m Magenta\n * @param y Yellow\n * @param k Key (Black)\n * @return {number[]} HSV values.\n */\nfunction cmykToHsv(c, m, y, k) {\n c /= 100;\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 let ns = (2 * s / (l + s)) * 100;\n let v = (l + s) * 100;\n return [h, ns, v];\n}\n\n/**\n * Convert HEX to HSV.\n * @param hex Hexadecimal string of rgb colors, can have length 3 or 6.\n * @return {number[]} HSV values.\n */\nfunction hexToHsv(hex) {\n return rgbToHsv(...hex.match(/.{2}/g).map(v => parseInt(v, 16)));\n}\n\n/**\n * Try's to parse a string which represents a color to a HSV array.\n * Current supported types are cmyk, rgba, hsla and hexadecimal.\n * @param str\n * @return {*}\n */\nexport function 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 let [, 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 let [, , , 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 let [, , , 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 let [, , , 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';\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';\r\n\r\nconst clamp = v => Math.max(Math.min(v, 1), 0);\r\nexport default function Moveable(opt) {\r\n\r\n const that = {\r\n\r\n // Assign default values\r\n options: Object.assign({\r\n lock: null,\r\n onchange: () => 0\r\n }, opt),\r\n\r\n _tapstart(evt) {\r\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\r\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\r\n\r\n // Prevent default touch event\r\n evt.preventDefault();\r\n\r\n // Trigger\r\n that._tapmove(evt);\r\n },\r\n\r\n _tapmove(evt) {\r\n const {options: {lock}, cache} = that;\r\n const {element, wrapper} = options;\r\n const b = wrapper.getBoundingClientRect();\r\n\r\n let x = 0, y = 0;\r\n if (evt) {\r\n const touch = evt && evt.touches && evt.touches[0];\r\n x = evt ? (touch || evt).clientX : 0;\r\n y = evt ? (touch || evt).clientY : 0;\r\n\r\n // Reset to bounds\r\n if (x < b.left) x = b.left;\r\n else if (x > b.left + b.width) x = b.left + b.width;\r\n if (y < b.top) y = b.top;\r\n else if (y > b.top + b.height) y = b.top + b.height;\r\n\r\n // Normalize\r\n x -= b.left;\r\n y -= b.top;\r\n } else if (cache) {\r\n x = cache.x * b.width;\r\n y = cache.y * b.height;\r\n }\r\n\r\n if (lock !== 'h') {\r\n element.style.left = `calc(${x / b.width * 100}% - ${element.offsetWidth / 2}px)`;\r\n }\r\n\r\n if (lock !== 'v') {\r\n element.style.top = `calc(${y / b.height * 100}% - ${element.offsetHeight / 2}px)`;\r\n }\r\n\r\n that.cache = {x: x / b.width, y: y / b.height};\r\n const cx = clamp(x / wrapper.offsetWidth);\r\n const cy = clamp(y / wrapper.offsetHeight);\r\n\r\n switch (lock) {\r\n case 'v':\r\n return options.onchange(cx);\r\n case 'h':\r\n return options.onchange(cy);\r\n default:\r\n return options.onchange(cx, cy);\r\n }\r\n },\r\n\r\n _tapstop() {\r\n _.off(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\r\n _.off(document, ['mousemove', 'touchmove'], that._tapmove);\r\n },\r\n\r\n trigger() {\r\n that._tapmove();\r\n },\r\n\r\n update(x = 0, y = 0) {\r\n const {left, top, width, height} = that.options.wrapper.getBoundingClientRect();\r\n\r\n if (that.options.lock === 'h') {\r\n y = x;\r\n }\r\n\r\n that._tapmove({\r\n clientX: left + width * x,\r\n clientY: top + height * y\r\n });\r\n },\r\n\r\n destroy() {\r\n const {options, _tapstart} = that;\r\n _.off([options.wrapper, options.element], 'mousedown', _tapstart);\r\n _.off([options.wrapper, options.element], 'touchstart', _tapstart, {\r\n passive: false\r\n });\r\n }\r\n };\r\n\r\n // Initilize\r\n const {options, _tapstart} = that;\r\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\r\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\r\n passive: false\r\n });\r\n\r\n return that;\r\n}\r\n","import * as _ from '../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","/**\n * Micro positioning-engine\n * @param el\n * @param reference\n * @param pos\n * @param padding\n * @returns {{update(): void}}\n * @constructor\n */\nexport default function Nanopop({el, reference, padding = 8}) {\n const vBehaviour = {start: 'sme', middle: 'mse', end: 'ems'};\n const hBehaviour = {top: 'tbrl', right: 'rltb', bottom: 'btrl', left: 'lrbt'};\n\n const getInfo = ((cache = {}) => (pos, cached = cache[pos]) => {\n if (cached) return cached;\n const [position, variant = 'middle'] = pos.split('-');\n const isVertical = (position === 'top' || position === 'bottom');\n\n return cache[pos] = {\n position,\n variant,\n isVertical\n };\n })();\n\n const getScrollOffset = el => {\n let top = 0, left = 0;\n\n while (el = el.parentElement) {\n top += el.scrollTop;\n left += el.scrollLeft;\n }\n\n return {top, left};\n };\n\n return {\n update(pos) {\n const {position, variant, isVertical} = getInfo(pos);\n const rb = reference.getBoundingClientRect();\n const eb = el.getBoundingClientRect();\n const so = getScrollOffset(el);\n\n const positions = vertical => vertical ? {\n t: rb.top - eb.height - padding + so.top,\n b: rb.bottom + padding + so.top\n } : {\n r: rb.right + padding + so.left,\n l: rb.left - eb.width - padding + so.left\n };\n\n const variants = vertical => vertical ? {\n s: rb.left + rb.width - eb.width + so.left,\n m: (-eb.width / 2) + (rb.left + rb.width / 2) + so.left,\n e: rb.left + so.left\n } : {\n s: rb.bottom - eb.height + so.top,\n m: rb.bottom - rb.height / 2 - eb.height / 2 + so.top,\n e: rb.bottom - rb.height + so.top\n };\n\n function apply(bevs, vars, styleprop) {\n const vertical = styleprop === 'top';\n const adder = vertical ? eb.height : eb.width;\n const win = window[vertical ? 'innerHeight' : 'innerWidth'] + (vertical ? so.top : so.left);\n\n for (const ch of bevs) {\n const v = vars[ch];\n\n if ((v - (vertical ? so.top : so.left)) > 0 && (v + adder) < win) {\n el.style[styleprop] = `${v}px`;\n return true;\n }\n }\n\n return false;\n }\n\n for (const rot of [isVertical, !isVertical]) {\n const v2Ok = apply(hBehaviour[position], positions(rot), rot ? 'top' : 'left');\n const v1Ok = apply(vBehaviour[variant], variants(rot), rot ? 'left' : 'top');\n if (v2Ok && v1Ok) {\n return;\n }\n }\n }\n };\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 'swatchselect': [],\n 'change': [],\n 'save': [],\n 'init': []\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, inline, 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 // Per default enabled if inline\n if (inline) {\n opt.showAlways = true;\n }\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\n\n // Finalize build\n this._finalBuild();\n\n // Append pre-defined swatch colors\n if (swatches && swatches.length) {\n swatches.forEach(color => this.addSwatch(color));\n }\n\n // 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 {button} = this._root;\n const that = this;\n requestAnimationFrame((function cb() {\n\n // offsetParent of body is always 0. So check if it is the body\n if (button.offsetParent === null && button !== document.body) {\n return requestAnimationFrame(cb);\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 {parentElement} = opt.el;\n\n if (parentElement.lastChild === opt.el) {\n parentElement.appendChild(root.app);\n } else {\n parentElement.insertBefore(root.app, opt.el.nextSibling);\n }\n } else {\n document.body.appendChild(root.app);\n }\n\n // Don't replace the the element if a custom button is used\n if (!opt.useAsButton) {\n\n // Replace element with actual color-picker\n opt.el.parentNode.replaceChild(root.root, opt.el);\n }\n\n // Call disable to also add the disabled class\n if (opt.disabled) {\n this.disable();\n }\n\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\n if (!opt.comparison) {\n root.button.style.transition = 'none';\n if (!opt.useAsButton) {\n root.preview.lastColor.style.transition = 'none';\n }\n }\n\n this.hide();\n }\n\n _buildComponents() {\n\n // Instance reference\n const inst = this;\n const cs = this.options.components;\n const [so, sh] = (() => {\n const {sliders} = inst.options;\n let so = 'v', sh = 'v';\n\n if (sliders && sliders.match(/^[vh]+$/g)) {\n if (sliders.length > 1) {\n [so, sh] = sliders;\n } else {\n so = sh = sliders;\n }\n }\n\n const opposite = {v: 'h', h: 'v'};\n return [opposite[so], opposite[sh]];\n })();\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onchange(x, y) {\n if (!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 let 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 // 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,\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\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,\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\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 onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._updateOutput();\n }\n })\n };\n\n this._components = components;\n }\n\n _bindEvents() {\n const {_root, options} = this;\n\n const eventBindings = [\n\n // Clear color\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\n\n // Select last color on click\n _.on([\n _root.interaction.cancel,\n _root.preview.lastColor\n ], 'click', () => this.setHSVA(...this._lastColor.toHSVA())),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\n this._recalc = false;\n\n // Fire listener if initialization is finish and changed color was valid\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\n this._emit('change', this._color);\n }\n\n e.stopImmediatePropagation();\n }),\n\n // Cancel input detection on color change\n _.on([\n _root.palette.palette,\n _root.palette.picker,\n _root.hue.slider,\n _root.hue.picker,\n _root.opacity.slider,\n _root.opacity.picker\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\n ];\n\n // Provide hiding / showing abilities only if showAlways is false\n if (!options.showAlways) {\n const ck = options.closeWithKey;\n\n eventBindings.push(\n // Save and hide / show picker\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\n\n // Close with escape key\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\n\n // Cancel selecting if the user taps behind the color picker\n _.on(document, ['touchstart', 'mousedown'], e => {\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\n this.hide();\n }\n }, {capture: true})\n );\n }\n\n // Make input adjustable if enabled\n if (options.adjustableNumbers) {\n 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 } else {\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 this._nanopop.update(options.position);\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 }\n }\n\n _emit(event, ...args) {\n this._eventListener[event].forEach(cb => cb(...args, this));\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 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 hsvaColorObject = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const element = _.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","push","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","_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","so","scrollTop","scrollLeft","getScrollOffset","variants","vertical","bevs","vars","styleprop","adder","win","_i2","_arr2","rot","v2Ok","v1Ok","Pickr","_this","this","_classCallCheck","pickr_defineProperty","swatchselect","change","save","init","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","offsetParent","body","setColor","_rePositioningPicker","_representation","setColorRepresentation","show","_initializingActive","_emit","lo","hidden","int","reduce","pv","cv","ci","querySelector","shadowRoot","keys","input","cancel","clear","find","add","contains","appendChild","removeChild","lastChild","insertBefore","nextSibling","parentNode","replaceChild","disable","transition","lastColor","hide","inst","cs","sh","_sliders","pickr_slicedToArray","opposite","_ref2","picker","_color","_recalc","_updateOutput","cssRGBaString","background","currentColor","remove","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","silent","event","_this3","_len","args","_key","_eventListener","_parseToHSVA","alphaMakesAChange","callBacks","indexOf","splice","_this4","_parseLocalColor","_swatchColors","hsvaColorObject","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","/**\r\n * Add event(s) to element(s).\r\n * @param elements DOM-Elements\r\n * @param events Event names\r\n * @param fn Callback\r\n * @param options Optional options\r\n * @return Array passed arguments\r\n */\r\nexport const on = eventListener.bind(null, 'addEventListener');\r\n\r\n/**\r\n * Remove event(s) from element(s).\r\n * @param elements DOM-Elements\r\n * @param events Event names\r\n * @param fn Callback\r\n * @param options Optional options\r\n * @return Array passed arguments\r\n */\r\nexport const off = eventListener.bind(null, 'removeEventListener');\r\n\r\nfunction eventListener(method, elements, events, fn, options = {}) {\r\n\r\n // Normalize array\r\n if (elements instanceof HTMLCollection || elements instanceof NodeList) {\r\n elements = Array.from(elements);\r\n } else if (!Array.isArray(elements)) {\r\n elements = [elements];\r\n }\r\n\r\n if (!Array.isArray(events)) {\r\n events = [events];\r\n }\r\n\r\n for (const el of elements) {\r\n for (const ev of events) {\r\n el[method](ev, fn, {capture: false, ...options});\r\n }\r\n }\r\n\r\n return Array.prototype.slice.call(arguments, 1);\r\n}\r\n\r\n/**\r\n * Creates an DOM-Element out of a string (Single element).\r\n * @param html HTML representing a single element\r\n * @returns {Element | null} The element.\r\n */\r\nexport function createElementFromString(html) {\r\n const div = document.createElement('div');\r\n div.innerHTML = html.trim();\r\n return div.firstElementChild;\r\n}\r\n\r\n/**\r\n * Removes an attribute from a HTMLElement and returns the value.\r\n * @param el\r\n * @param name\r\n * @return {string}\r\n */\r\nexport function removeAttribute(el, name) {\r\n const value = el.getAttribute(name);\r\n el.removeAttribute(name);\r\n return value;\r\n}\r\n\r\n/**\r\n * Creates a new html element, every element which has\r\n * a 'data-key' attribute will be saved in a object (which will be returned)\r\n * where the value of 'data-key' ist the object-key and the value the HTMLElement.\r\n *\r\n * It's possible to create a hierarchy if you add a 'data-con' attribute. Every\r\n * sibling will be added to the object which will get the name from the 'data-con' attribute.\r\n *\r\n * If you want to create an Array out of multiple elements, you can use the 'data-arr' attribute,\r\n * the value defines the key and all elements, which has the same parent and the same 'data-arr' attribute,\r\n * would be added to it.\r\n *\r\n * @param str - The HTML String.\r\n */\r\nexport function createFromTemplate(str) {\r\n\r\n // Recursive function to resolve template\r\n function resolve(element, base = {}) {\r\n\r\n // Check key and container attribute\r\n const con = removeAttribute(element, 'data-con');\r\n const key = removeAttribute(element, 'data-key');\r\n\r\n // Check and save element\r\n if (key) {\r\n base[key] = element;\r\n }\r\n\r\n // Check all children\r\n const subtree = con ? (base[con] = {}) : base;\r\n for (let child of Array.from(element.children)) {\r\n\r\n // Check if element should be saved as array\r\n const arr = removeAttribute(child, 'data-arr');\r\n if (arr) {\r\n\r\n // Check if there is already an array and add element\r\n (subtree[arr] || (subtree[arr] = [])).push(child);\r\n } else {\r\n resolve(child, subtree);\r\n }\r\n }\r\n\r\n return base;\r\n }\r\n\r\n return resolve(createElementFromString(str));\r\n}\r\n\r\n/**\r\n * Polyfill for safari & firefox for the eventPath event property.\r\n * @param evt The event object.\r\n * @return [String] event path.\r\n */\r\nexport function eventPath(evt) {\r\n let path = evt.path || (evt.composedPath && evt.composedPath());\r\n if (path) return path;\r\n\r\n let el = evt.target.parentElement;\r\n path = [evt.target, el];\r\n while (el = el.parentElement) path.push(el);\r\n\r\n path.push(document, window);\r\n return path;\r\n}\r\n\r\n/**\r\n * Creates the ability to change numbers in an input field with the scroll-wheel.\r\n * @param el\r\n * @param mapper\r\n */\r\nexport function adjustableInputNumbers(el, mapper = v => v) {\r\n\r\n function handleScroll(e) {\r\n const inc = ([0.001, 0.01, 0.1])[Number(e.shiftKey || e.ctrlKey * 2)] * (e.deltaY < 0 ? 1 : -1);\r\n\r\n let index = 0;\r\n let off = el.selectionStart;\r\n el.value = el.value.replace(/[\\d.]+/g, (v, i) => {\r\n\r\n // Check if number is in cursor range and increase it\r\n if (i <= off && i + v.length >= off) {\r\n off = i;\r\n return mapper(Number(v), inc, index);\r\n }\r\n\r\n index++;\r\n return v;\r\n });\r\n\r\n el.focus();\r\n el.setSelectionRange(off, off);\r\n\r\n // Prevent default and trigger input event\r\n e.preventDefault();\r\n el.dispatchEvent(new Event('input'));\r\n }\r\n\r\n // Bind events\r\n on(el, 'focus', () => on(window, 'wheel', handleScroll, {passive: false}));\r\n on(el, 'blur', () => off(window, 'wheel', handleScroll));\r\n}\r\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 '#000000';\n }\n\n const ctx = document.createElement('canvas').getContext('2d');\n ctx.fillStyle = name;\n return ctx.fillStyle === '#000000' ? 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 let i = floor(h);\n\n let f = h - i;\n let p = v * (1 - s);\n let q = v * (1 - f * s);\n let t = v * (1 - (1 - f) * s);\n\n let mod = i % 6;\n let r = [v, q, p, p, t, v][mod];\n let g = [t, v, v, q, p, p][mod];\n let b = [p, p, t, v, v, q][mod];\n\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\n\n/**\n * Convert HSV spectrum to Hex.\n * @param h Hue\n * @param s Saturation\n * @param v Value\n * @returns {string[]} Hex values\n */\nexport function hsvToHex(h, s, v) {\n return hsvToRgb(h, s, v).map(v =>\n 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 let l = (2 - s) * v / 2;\n\n if (l !== 0) {\n if (l === 1) {\n s = 0;\n } else if (l < 0.5) {\n s = s * v / (l * 2);\n } else {\n s = s * v / (2 - l * 2);\n }\n }\n\n return [\n h,\n s * 100,\n l * 100\n ];\n}\n\n/**\n * Convert RGB to HSV.\n * @param r Red\n * @param g Green\n * @param b Blue\n * @return {number[]} HSV values.\n */\nfunction rgbToHsv(r, g, b) {\n r /= 255, g /= 255, b /= 255;\n\n let h, s, v;\n const minVal = min(r, g, b);\n const maxVal = max(r, g, b);\n const delta = maxVal - minVal;\n\n v = maxVal;\n if (delta === 0) {\n h = s = 0;\n } else {\n s = delta / maxVal;\n let dr = (((maxVal - r) / 6) + (delta / 2)) / delta;\n let dg = (((maxVal - g) / 6) + (delta / 2)) / delta;\n let db = (((maxVal - b) / 6) + (delta / 2)) / delta;\n\n if (r === maxVal) {\n h = db - dg;\n } else if (g === maxVal) {\n h = (1 / 3) + dr - db;\n } else if (b === maxVal) {\n h = (2 / 3) + dg - dr;\n }\n\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n\n return [\n h * 360,\n s * 100,\n v * 100\n ];\n}\n\n/**\n * Convert CMYK to HSV.\n * @param c Cyan\n * @param m Magenta\n * @param y Yellow\n * @param k Key (Black)\n * @return {number[]} HSV values.\n */\nfunction cmykToHsv(c, m, y, k) {\n c /= 100;\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 let ns = (2 * s / (l + s)) * 100;\n let v = (l + s) * 100;\n return [h, ns, v];\n}\n\n/**\n * Convert HEX to HSV.\n * @param hex Hexadecimal string of rgb colors, can have length 3 or 6.\n * @return {number[]} HSV values.\n */\nfunction hexToHsv(hex) {\n return rgbToHsv(...hex.match(/.{2}/g).map(v => parseInt(v, 16)));\n}\n\n/**\n * Try's to parse a string which represents a color to a HSV array.\n * Current supported types are cmyk, rgba, hsla and hexadecimal.\n * @param str\n * @return {*}\n */\nexport function 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 let [, 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 let [, , , 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 let [, , , 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 let [, , , 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';\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';\r\n\r\nconst clamp = v => Math.max(Math.min(v, 1), 0);\r\nexport default function Moveable(opt) {\r\n\r\n const that = {\r\n\r\n // Assign default values\r\n options: Object.assign({\r\n lock: null,\r\n onchange: () => 0\r\n }, opt),\r\n\r\n _tapstart(evt) {\r\n _.on(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\r\n _.on(document, ['mousemove', 'touchmove'], that._tapmove);\r\n\r\n // Prevent default touch event\r\n evt.preventDefault();\r\n\r\n // Trigger\r\n that._tapmove(evt);\r\n },\r\n\r\n _tapmove(evt) {\r\n const {options: {lock}, cache} = that;\r\n const {element, wrapper} = options;\r\n const b = wrapper.getBoundingClientRect();\r\n\r\n let x = 0, y = 0;\r\n if (evt) {\r\n const touch = evt && evt.touches && evt.touches[0];\r\n x = evt ? (touch || evt).clientX : 0;\r\n y = evt ? (touch || evt).clientY : 0;\r\n\r\n // Reset to bounds\r\n if (x < b.left) x = b.left;\r\n else if (x > b.left + b.width) x = b.left + b.width;\r\n if (y < b.top) y = b.top;\r\n else if (y > b.top + b.height) y = b.top + b.height;\r\n\r\n // Normalize\r\n x -= b.left;\r\n y -= b.top;\r\n } else if (cache) {\r\n x = cache.x * b.width;\r\n y = cache.y * b.height;\r\n }\r\n\r\n if (lock !== 'h') {\r\n element.style.left = `calc(${x / b.width * 100}% - ${element.offsetWidth / 2}px)`;\r\n }\r\n\r\n if (lock !== 'v') {\r\n element.style.top = `calc(${y / b.height * 100}% - ${element.offsetHeight / 2}px)`;\r\n }\r\n\r\n that.cache = {x: x / b.width, y: y / b.height};\r\n const cx = clamp(x / wrapper.offsetWidth);\r\n const cy = clamp(y / wrapper.offsetHeight);\r\n\r\n switch (lock) {\r\n case 'v':\r\n return options.onchange(cx);\r\n case 'h':\r\n return options.onchange(cy);\r\n default:\r\n return options.onchange(cx, cy);\r\n }\r\n },\r\n\r\n _tapstop() {\r\n _.off(document, ['mouseup', 'touchend', 'touchcancel'], that._tapstop);\r\n _.off(document, ['mousemove', 'touchmove'], that._tapmove);\r\n },\r\n\r\n trigger() {\r\n that._tapmove();\r\n },\r\n\r\n update(x = 0, y = 0) {\r\n const {left, top, width, height} = that.options.wrapper.getBoundingClientRect();\r\n\r\n if (that.options.lock === 'h') {\r\n y = x;\r\n }\r\n\r\n that._tapmove({\r\n clientX: left + width * x,\r\n clientY: top + height * y\r\n });\r\n },\r\n\r\n destroy() {\r\n const {options, _tapstart} = that;\r\n _.off([options.wrapper, options.element], 'mousedown', _tapstart);\r\n _.off([options.wrapper, options.element], 'touchstart', _tapstart, {\r\n passive: false\r\n });\r\n }\r\n };\r\n\r\n // Initilize\r\n const {options, _tapstart} = that;\r\n _.on([options.wrapper, options.element], 'mousedown', _tapstart);\r\n _.on([options.wrapper, options.element], 'touchstart', _tapstart, {\r\n passive: false\r\n });\r\n\r\n return that;\r\n}\r\n","import * as _ from '../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","/**\n * Micro positioning-engine\n * @param el\n * @param reference\n * @param pos\n * @param padding\n * @returns {{update(): void}}\n * @constructor\n */\nexport default function Nanopop({el, reference, padding = 8}) {\n const vBehaviour = {start: 'sme', middle: 'mse', end: 'ems'};\n const hBehaviour = {top: 'tbrl', right: 'rltb', bottom: 'btrl', left: 'lrbt'};\n\n const getInfo = ((cache = {}) => (pos, cached = cache[pos]) => {\n if (cached) return cached;\n const [position, variant = 'middle'] = pos.split('-');\n const isVertical = (position === 'top' || position === 'bottom');\n\n return cache[pos] = {\n position,\n variant,\n isVertical\n };\n })();\n\n const getScrollOffset = el => {\n let top = 0, left = 0;\n\n while (el = el.parentElement) {\n top += el.scrollTop;\n left += el.scrollLeft;\n }\n\n return {top, left};\n };\n\n return {\n update(pos) {\n const {position, variant, isVertical} = getInfo(pos);\n const rb = reference.getBoundingClientRect();\n const eb = el.getBoundingClientRect();\n const so = getScrollOffset(el);\n\n const positions = vertical => vertical ? {\n t: rb.top - eb.height - padding + so.top,\n b: rb.bottom + padding + so.top\n } : {\n r: rb.right + padding + so.left,\n l: rb.left - eb.width - padding + so.left\n };\n\n const variants = vertical => vertical ? {\n s: rb.left + rb.width - eb.width + so.left,\n m: (-eb.width / 2) + (rb.left + rb.width / 2) + so.left,\n e: rb.left + so.left\n } : {\n s: rb.bottom - eb.height + so.top,\n m: rb.bottom - rb.height / 2 - eb.height / 2 + so.top,\n e: rb.bottom - rb.height + so.top\n };\n\n function apply(bevs, vars, styleprop) {\n const vertical = styleprop === 'top';\n const adder = vertical ? eb.height : eb.width;\n const win = window[vertical ? 'innerHeight' : 'innerWidth'] + (vertical ? so.top : so.left);\n\n for (const ch of bevs) {\n const v = vars[ch];\n\n if ((v - (vertical ? so.top : so.left)) > 0 && (v + adder) < win) {\n el.style[styleprop] = `${v}px`;\n return true;\n }\n }\n\n return false;\n }\n\n for (const rot of [isVertical, !isVertical]) {\n const v2Ok = apply(hBehaviour[position], positions(rot), rot ? 'top' : 'left');\n const v1Ok = apply(vBehaviour[variant], variants(rot), rot ? 'left' : 'top');\n if (v2Ok && v1Ok) {\n return;\n }\n }\n }\n };\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 'swatchselect': [],\n 'change': [],\n 'save': [],\n 'init': []\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, inline, 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 // Per default enabled if inline\n if (inline) {\n opt.showAlways = true;\n }\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\n\n // Finalize build\n this._finalBuild();\n\n // Append pre-defined swatch colors\n if (swatches && swatches.length) {\n swatches.forEach(color => this.addSwatch(color));\n }\n\n // 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 {button} = this._root;\n const that = this;\n requestAnimationFrame((function cb() {\n\n // offsetParent of body is always 0. So check if it is the body\n if (button.offsetParent === null && button !== document.body) {\n return requestAnimationFrame(cb);\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 {parentElement} = opt.el;\n\n if (parentElement.lastChild === opt.el) {\n parentElement.appendChild(root.app);\n } else {\n parentElement.insertBefore(root.app, opt.el.nextSibling);\n }\n } else {\n document.body.appendChild(root.app);\n }\n\n // Don't replace the the element if a custom button is used\n if (!opt.useAsButton) {\n\n // Replace element with actual color-picker\n opt.el.parentNode.replaceChild(root.root, opt.el);\n }\n\n // Call disable to also add the disabled class\n if (opt.disabled) {\n this.disable();\n }\n\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\n if (!opt.comparison) {\n root.button.style.transition = 'none';\n if (!opt.useAsButton) {\n root.preview.lastColor.style.transition = 'none';\n }\n }\n\n this.hide();\n }\n\n _buildComponents() {\n\n // Instance reference\n const inst = this;\n const cs = this.options.components;\n const [so, sh] = (() => {\n const {sliders} = inst.options;\n let so = 'v', sh = 'v';\n\n if (sliders && sliders.match(/^[vh]+$/g)) {\n if (sliders.length > 1) {\n [so, sh] = sliders;\n } else {\n so = sh = sliders;\n }\n }\n\n const opposite = {v: 'h', h: 'v'};\n return [opposite[so], opposite[sh]];\n })();\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onchange(x, y) {\n if (!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 let 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 // 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,\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\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,\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\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 onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._updateOutput();\n }\n })\n };\n\n this._components = components;\n }\n\n _bindEvents() {\n const {_root, options} = this;\n\n const eventBindings = [\n\n // Clear color\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\n\n // Select last color on click\n _.on([\n _root.interaction.cancel,\n _root.preview.lastColor\n ], 'click', () => this.setHSVA(...this._lastColor.toHSVA())),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\n this._recalc = false;\n\n // Fire listener if initialization is finish and changed color was valid\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\n this._emit('change', this._color);\n }\n\n e.stopImmediatePropagation();\n }),\n\n // Cancel input detection on color change\n _.on([\n _root.palette.palette,\n _root.palette.picker,\n _root.hue.slider,\n _root.hue.picker,\n _root.opacity.slider,\n _root.opacity.picker\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\n ];\n\n // Provide hiding / showing abilities only if showAlways is false\n if (!options.showAlways) {\n const ck = options.closeWithKey;\n\n eventBindings.push(\n // Save and hide / show picker\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\n\n // Close with escape key\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\n\n // Cancel selecting if the user taps behind the color picker\n _.on(document, ['touchstart', 'mousedown'], e => {\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\n this.hide();\n }\n }, {capture: true})\n );\n }\n\n // Make input adjustable if enabled\n if (options.adjustableNumbers) {\n 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 } else {\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 this._nanopop.update(options.position);\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 }\n }\n\n _emit(event, ...args) {\n this._eventListener[event].forEach(cb => cb(...args, this));\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 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 hsvaColorObject = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const element = _.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 diff --git a/dist/pickr.min.js b/dist/pickr.min.js index 00b1e0da..55eb386d 100644 --- a/dist/pickr.min.js +++ b/dist/pickr.min.js @@ -1,3 +1,3 @@ -/*! Pickr 1.2.1 MIT | https://github.com/Simonwep/pickr */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Pickr=e():t.Pickr=e()}(window,function(){return function(t){var e={};function o(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,o),i.l=!0,i.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)o.d(n,i,function(e){return t[e]}.bind(null,i));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=0)}([function(t,e,o){"use strict";o.r(e);var n={};function i(t,e){var o=Object.keys(t);return Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(t)),e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o}function r(t){for(var e=1;et)){function o(o){const n=[.001,.01,.1][Number(o.shiftKey||2*o.ctrlKey)]*(o.deltaY<0?1:-1);let i=0,r=t.selectionStart;t.value=t.value.replace(/[\d.]+/g,(t,o)=>o<=r&&o+t.length>=r?(r=o,e(Number(t),n,i)):(i++,t)),t.focus(),t.setSelectionRange(r,r),o.preventDefault(),t.dispatchEvent(new Event("input"))}a(t,"focus",()=>a(window,"wheel",o,{passive:!1})),a(t,"blur",()=>c(window,"wheel",o))}const{min:m,max:v,floor:y,round:b}=Math;function g(t,e,o){e/=100,o/=100;let n=y(t=t/360*6),i=t-n,r=o*(1-e),s=o*(1-i*e),a=o*(1-(1-i)*e),c=n%6;return[255*[o,s,r,r,a,o][c],255*[a,o,o,s,r,r][c],255*[r,r,a,o,o,s][c]]}function _(t,e,o){let n=(2-(e/=100))*(o/=100)/2;return 0!==n&&(e=1===n?0:n<.5?e*o/(2*n):e*o/(2-2*n)),[t,100*e,100*n]}function w(t,e,o){let n,i,r;const s=m(t/=255,e/=255,o/=255),a=v(t,e,o),c=a-s;if(0===c)n=i=0;else{i=c/a;let r=((a-t)/6+c/2)/c,s=((a-e)/6+c/2)/c,l=((a-o)/6+c/2)/c;t===a?n=l-s:e===a?n=1/3+r-l:o===a&&(n=2/3+s-r),n<0?n+=1:n>1&&(n-=1)}return[360*n,100*i,100*(r=a)]}function k(t,e,o,n){return e/=100,o/=100,[...w(255*(1-m(1,(t/=100)*(1-(n/=100))+n)),255*(1-m(1,e*(1-n)+n)),255*(1-m(1,o*(1-n)+n)))]}function C(t,e,o){return e/=100,[t,2*(e*=(o/=100)<.5?o:1-o)/(o+e)*100,100*(o+e)]}function A(t){return w(...t.match(/.{2}/g).map(t=>parseInt(t,16)))}function S(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if("black"===t.toLowerCase())return"#000000";const e=document.createElement("canvas").getContext("2d");return e.fillStyle=t,"#000000"===e.fillStyle?null:e.fillStyle}(t):t;const e={cmyk:/^cmyk[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)/i,rgba:/^((rgba)|rgb)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsla:/^((hsla)|hsl)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsva:/^((hsva)|hsv)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hexa:/^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i},o=t=>t.map(t=>/^(|\d+)\.\d+|\d+$/.test(t)?Number(t):void 0);let n;t:for(const i in e){if(!(n=e[i].exec(t)))continue;const r=!!n[2];switch(i){case"cmyk":{let[,t,e,r,s]=o(n);if(t>100||e>100||r>100||s>100)break t;return{values:k(t,e,r,s),type:i}}case"rgba":{let[,,,t,e,s,a]=o(n);if(t>255||e>255||s>255||a<0||a>1||r===!a)break t;return{values:[...w(t,e,s),a],a:a,type:i}}case"hexa":{let[,t]=n;4!==t.length&&3!==t.length||(t=t.split("").map(t=>t+t).join(""));const e=t.substring(0,6);let o=t.substring(6);return o=o?parseInt(o,16)/255:void 0,{values:[...A(e),o],a:o,type:i}}case"hsla":{let[,,,t,e,s,a]=o(n);if(t>360||e>100||s>100||a<0||a>1||r===!a)break t;return{values:[...C(t,e,s),a],a:a,type:i}}case"hsva":{let[,,,t,e,s,a]=o(n);if(t>360||e>100||s>100||a<0||a>1||r===!a)break t;return{values:[t,e,s,a],a:a,type:i}}}}return{values:null,type:null}}function O(t=0,e=0,o=0,n=1){const i=(t,e)=>(o=-1)=>e(~o?t.map(t=>Number(t.toFixed(o))):t),r={h:t,s:e,v:o,a:n,toHSVA(){const t=[r.h,r.s,r.v,r.a];return t.toString=i(t,t=>"hsva(".concat(t[0],", ").concat(t[1],"%, ").concat(t[2],"%, ").concat(r.a,")")),t},toHSLA(){const t=[..._(r.h,r.s,r.v),r.a];return t.toString=i(t,t=>"hsla(".concat(t[0],", ").concat(t[1],"%, ").concat(t[2],"%, ").concat(r.a,")")),t},toRGBA(){const t=[...g(r.h,r.s,r.v),r.a];return t.toString=i(t,t=>"rgba(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(r.a,")")),t},toCMYK(){const t=function(t,e,o){const n=g(t,e,o),i=n[0]/255,r=n[1]/255,s=n[2]/255;let a,c,l,p;return[100*(c=1===(a=m(1-i,1-r,1-s))?0:(1-i-a)/(1-a)),100*(l=1===a?0:(1-r-a)/(1-a)),100*(p=1===a?0:(1-s-a)/(1-a)),100*a]}(r.h,r.s,r.v);return t.toString=i(t,t=>"cmyk(".concat(t[0],"%, ").concat(t[1],"%, ").concat(t[2],"%, ").concat(t[3],"%)")),t},toHEXA(){const t=function(t,e,o){return g(t,e,o).map(t=>b(t).toString(16).padStart(2,"0"))}(r.h,r.s,r.v),e=r.a>=1?"":Number((255*r.a).toFixed(0)).toString(16).toUpperCase().padStart(2,"0");return e&&t.push(e),t.toString=()=>"#".concat(t.join("").toUpperCase()),t},clone:()=>O(r.h,r.s,r.v,r.a)};return r}const j=t=>Math.max(Math.min(t,1),0);function P(t){const e={options:Object.assign({lock:null,onchange:()=>0},t),_tapstart(t){a(document,["mouseup","touchend","touchcancel"],e._tapstop),a(document,["mousemove","touchmove"],e._tapmove),t.preventDefault(),e._tapmove(t)},_tapmove(t){const{options:{lock:n},cache:i}=e,{element:r,wrapper:s}=o,a=s.getBoundingClientRect();let c=0,l=0;if(t){const e=t&&t.touches&&t.touches[0];c=t?(e||t).clientX:0,l=t?(e||t).clientY:0,ca.left+a.width&&(c=a.left+a.width),la.top+a.height&&(l=a.top+a.height),c-=a.left,l-=a.top}else i&&(c=i.x*a.width,l=i.y*a.height);"h"!==n&&(r.style.left="calc(".concat(c/a.width*100,"% - ").concat(r.offsetWidth/2,"px)")),"v"!==n&&(r.style.top="calc(".concat(l/a.height*100,"% - ").concat(r.offsetHeight/2,"px)")),e.cache={x:c/a.width,y:l/a.height};const p=j(c/s.offsetWidth),u=j(l/s.offsetHeight);switch(n){case"v":return o.onchange(p);case"h":return o.onchange(u);default:return o.onchange(p,u)}},_tapstop(){c(document,["mouseup","touchend","touchcancel"],e._tapstop),c(document,["mousemove","touchmove"],e._tapmove)},trigger(){e._tapmove()},update(t=0,o=0){const{left:n,top:i,width:r,height:s}=e.options.wrapper.getBoundingClientRect();"h"===e.options.lock&&(o=t),e._tapmove({clientX:n+r*t,clientY:i+s*o})},destroy(){const{options:t,_tapstart:o}=e;c([t.wrapper,t.element],"mousedown",o),c([t.wrapper,t.element],"touchstart",o,{passive:!1})}},{options:o,_tapstart:n}=e;return a([o.wrapper,o.element],"mousedown",n),a([o.wrapper,o.element],"touchstart",n,{passive:!1}),e}function L(t={}){t=Object.assign({onchange:()=>0,className:"",elements:[]},t);const e=a(t.elements,"click",e=>{t.elements.forEach(o=>o.classList[e.target===o?"add":"remove"](t.className)),t.onchange(e)});return{destroy:()=>c(...e)}}function E({el:t,reference:e,padding:o=8}){const n={start:"sme",middle:"mse",end:"ems"},i={top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},r=((t={})=>(e,o=t[e])=>{if(o)return o;const[n,i="middle"]=e.split("-"),r="top"===n||"bottom"===n;return t[e]={position:n,variant:i,isVertical:r}})();return{update(s){const{position:a,variant:c,isVertical:l}=r(s),p=e.getBoundingClientRect(),u=t.getBoundingClientRect(),h=(t=>{let e=0,o=0;for(;t=t.parentElement;)e+=t.scrollTop,o+=t.scrollLeft;return{top:e,left:o}})(t),d=t=>t?{t:p.top-u.height-o+h.top,b:p.bottom+o+h.top}:{r:p.right+o+h.left,l:p.left-u.width-o+h.left},f=t=>t?{s:p.left+p.width-u.width+h.left,m:-u.width/2+(p.left+p.width/2)+h.left,e:p.left+h.left}:{s:p.bottom-u.height+h.top,m:p.bottom-p.height/2-u.height/2+h.top,e:p.bottom-p.height+h.top};function m(e,o,n){const i="top"===n,r=i?u.height:u.width,s=window[i?"innerHeight":"innerWidth"]+(i?h.top:h.left);for(const a of e){const e=o[a];if(e-(i?h.top:h.left)>0&&e+r{const a=t=>t?"":'style="display:none" hidden',c=h('\n
\n\n '.concat(o?"":'','\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 ")),l=c.interaction;return l.options.find(t=>!t.hidden&&!t.classList.add("active")),l.type=()=>l.options.find(t=>t.classList.contains("active")),c};function x(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class R{constructor(t){x(this,"_initializingActive",!0),x(this,"_recalc",!0),x(this,"_color",O()),x(this,"_lastColor",O()),x(this,"_swatchColors",[]),x(this,"_eventListener",{swatchselect:[],change:[],save:[],init:[]}),this.options=t=Object.assign({appClass:null,theme:"classic",useAsButton:!1,disabled:!1,comparison:!0,closeOnScroll:!1,outputPrecision:0,lockOpacity:!1,autoReposition:!0,components:{interaction:{}},strings:{},swatches:null,inline:!1,sliders:null,default:"#42445a",defaultRepresentation:null,position:"bottom-middle",adjustableNumbers:!0,showAlways:!1,closeWithKey:"Escape"},t);const{swatches:e,inline:o,components:n,theme:i,sliders:r,lockOpacity:s}=t;["nano","monolith"].includes(i)&&!r&&(t.sliders="h"),n.interaction||(n.interaction={});const{preview:a,opacity:c,hue:l,palette:p}=n;n.opacity=!s&&c,n.palette=p||a||c||l,o&&(t.showAlways=!0),this._preBuild(),this._buildComponents(),this._bindEvents(),this._finalBuild(),e&&e.length&&e.forEach(t=>this.addSwatch(t)),this._nanopop=E({reference:this._root.button,el:this._root.app});const{button:u}=this._root,h=this;requestAnimationFrame(function e(){if(null===u.offsetParent&&u!==document.body)return requestAnimationFrame(e);h.setColor(t.default),h._rePositioningPicker(),t.defaultRepresentation&&(h._representation=t.defaultRepresentation,h.setColorRepresentation(h._representation)),t.showAlways&&h.show(),h._initializingActive=!1,h._emit("init")})}_preBuild(){const t=this.options;"string"==typeof t.el&&(t.el=t.el.split(/>>/g).reduce((t,e,o,n)=>(t=t.querySelector(e),o{const{sliders:e}=t.options;let o="v",n="v";e&&e.match(/^[vh]+$/g)&&(e.length>1?[o,n]=e:o=n=e);const i={v:"h",h:"v"};return[i[o],i[n]]})(),i={palette:P({element:t._root.palette.picker,wrapper:t._root.palette.palette,onchange(o,n){if(!e.palette)return;const{_color:i,_root:r,options:s}=t;t._recalc&&(i.s=100*o,i.v=100-100*n,i.v<0&&(i.v=0),t._updateOutput());let a=i.toRGBA().toString(0);this.element.style.background=a,this.wrapper.style.background="\n linear-gradient(to top, rgba(0, 0, 0, ".concat(i.a,"), transparent),\n linear-gradient(to left, hsla(").concat(i.h,", 100%, 50%, ").concat(i.a,"), rgba(255, 255, 255, ").concat(i.a,"))\n "),s.comparison||(r.button.style.color=a,s.useAsButton||(r.preview.lastColor.style.color=a)),r.preview.currentColor.style.color=a,t.options.comparison||r.button.classList.remove("clear")}}),hue:P({lock:n,element:t._root.hue.picker,wrapper:t._root.hue.slider,onchange(o){e.hue&&e.palette&&(t._recalc&&(t._color.h=360*o),this.element.style.backgroundColor="hsl(".concat(t._color.h,", 100%, 50%)"),i.palette.trigger())}}),opacity:P({lock:o,element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onchange(o){e.opacity&&e.palette&&(t._recalc&&(t._color.a=Math.round(100*o)/100),this.element.style.background="rgba(0, 0, 0, ".concat(t._color.a,")"),i.palette.trigger())}}),selectable:L({elements:t._root.interaction.options,className:"active",onchange(e){t._representation=e.target.getAttribute("data-type").toUpperCase(),t._updateOutput()}})};this._components=i}_bindEvents(){const{_root:t,options:e}=this,o=[a(t.interaction.clear,"click",()=>this._clearColor()),a([t.interaction.cancel,t.preview.lastColor],"click",()=>this.setHSVA(...this._lastColor.toHSVA())),a(t.interaction.save,"click",()=>{!this.applyColor()&&!e.showAlways&&this.hide()}),a(t.interaction.result,["keyup","input"],t=>{this._recalc=!1,this.setColor(t.target.value,!0)&&!this._initializingActive&&this._emit("change",this._color),t.stopImmediatePropagation()}),a([t.palette.palette,t.palette.picker,t.hue.slider,t.hue.picker,t.opacity.slider,t.opacity.picker],["mousedown","touchstart"],()=>this._recalc=!0)];if(!e.showAlways){const n=e.closeWithKey;o.push(a(t.button,"click",()=>this.isOpen()?this.hide():this.show()),a(document,"keyup",t=>this.isOpen()&&(t.key===n||t.code===n)&&this.hide()),a(document,["touchstart","mousedown"],e=>{this.isOpen()&&!d(e).some(e=>e===t.app||e===t.button)&&this.hide()},{capture:!0}))}if(e.adjustableNumbers){const e={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};f(t.interaction.result,(t,o,n)=>{const i=e[this.getColorRepresentation().toLowerCase()];if(i){const e=i[n],r=t+(e>=100?1e3*o:o);return r<=0?0:Number((r{n.isOpen()&&(e.closeOnScroll&&n.hide(),null===t?(t=setTimeout(()=>t=null,100),requestAnimationFrame(function e(){n._rePositioningPicker(),null!==t&&requestAnimationFrame(e)})):(clearTimeout(t),t=setTimeout(()=>t=null,100)))},{capture:!0}))}this._eventBindings=o}_rePositioningPicker(){const{options:t}=this;t.inline||this._nanopop.update(t.position)}_updateOutput(){const{_root:t,_color:e,options:o}=this;if(t.interaction.type()){const n="to".concat(t.interaction.type().getAttribute("data-type"));t.interaction.result.value="function"==typeof e[n]?e[n]().toString(o.outputPrecision):""}!this._initializingActive&&this._recalc&&this._emit("change",e)}_clearColor(t=!1){const{_root:e,options:o}=this;o.useAsButton||(e.button.style.color="rgba(0, 0, 0, 0.15)"),e.button.classList.add("clear"),o.showAlways||this.hide(),this._initializingActive||t||this._emit("save",null)}_emit(t,...e){this._eventListener[t].forEach(t=>t(...e,this))}_parseLocalColor(t){const{values:e,type:o,a:n}=S(t),{lockOpacity:i}=this.options,r=void 0!==n&&1!==n;return e&&3===e.length&&(e[3]=void 0),{values:!e||i&&r?null:e,type:o}}on(t,e){return"function"==typeof e&&"string"==typeof t&&t in this._eventListener&&this._eventListener[t].push(e),this}off(t,e){const o=this._eventListener[t];if(o){const t=o.indexOf(e);~t&&o.splice(t,1)}return this}addSwatch(t){const{values:e}=this._parseLocalColor(t);if(e){const{_swatchColors:t,_root:o}=this,n=O(...e),i=p('','\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 ")),l=c.interaction;return l.options.find(t=>!t.hidden&&!t.classList.add("active")),l.type=()=>l.options.find(t=>t.classList.contains("active")),c};function x(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class R{constructor(t){x(this,"_initializingActive",!0),x(this,"_recalc",!0),x(this,"_color",O()),x(this,"_lastColor",O()),x(this,"_swatchColors",[]),x(this,"_eventListener",{swatchselect:[],change:[],save:[],init:[]}),this.options=t=Object.assign({appClass:null,theme:"classic",useAsButton:!1,disabled:!1,comparison:!0,closeOnScroll:!1,outputPrecision:0,lockOpacity:!1,autoReposition:!0,components:{interaction:{}},strings:{},swatches:null,inline:!1,sliders:null,default:"#42445a",defaultRepresentation:null,position:"bottom-middle",adjustableNumbers:!0,showAlways:!1,closeWithKey:"Escape"},t);const{swatches:e,inline:o,components:n,theme:i,sliders:r,lockOpacity:s}=t;["nano","monolith"].includes(i)&&!r&&(t.sliders="h"),n.interaction||(n.interaction={});const{preview:a,opacity:c,hue:l,palette:p}=n;n.opacity=!s&&c,n.palette=p||a||c||l,o&&(t.showAlways=!0),this._preBuild(),this._buildComponents(),this._bindEvents(),this._finalBuild(),e&&e.length&&e.forEach(t=>this.addSwatch(t)),this._nanopop=E({reference:this._root.button,el:this._root.app});const{button:u}=this._root,h=this;requestAnimationFrame(function e(){if(null===u.offsetParent&&u!==document.body)return requestAnimationFrame(e);h.setColor(t.default),h._rePositioningPicker(),t.defaultRepresentation&&(h._representation=t.defaultRepresentation,h.setColorRepresentation(h._representation)),t.showAlways&&h.show(),h._initializingActive=!1,h._emit("init")})}_preBuild(){const t=this.options;"string"==typeof t.el&&(t.el=t.el.split(/>>/g).reduce((t,e,o,n)=>(t=t.querySelector(e),o{const{sliders:e}=t.options;let o="v",n="v";e&&e.match(/^[vh]+$/g)&&(e.length>1?[o,n]=e:o=n=e);const i={v:"h",h:"v"};return[i[o],i[n]]})(),i={palette:P({element:t._root.palette.picker,wrapper:t._root.palette.palette,onchange(o,n){if(!e.palette)return;const{_color:i,_root:r,options:s}=t;t._recalc&&(i.s=100*o,i.v=100-100*n,i.v<0&&(i.v=0),t._updateOutput());let a=i.toRGBA().toString(0);this.element.style.background=a,this.wrapper.style.background="\n linear-gradient(to top, rgba(0, 0, 0, ".concat(i.a,"), transparent),\n linear-gradient(to left, hsla(").concat(i.h,", 100%, 50%, ").concat(i.a,"), rgba(255, 255, 255, ").concat(i.a,"))\n "),s.comparison||(r.button.style.color=a,s.useAsButton||(r.preview.lastColor.style.color=a)),r.preview.currentColor.style.color=a,t.options.comparison||r.button.classList.remove("clear")}}),hue:P({lock:n,element:t._root.hue.picker,wrapper:t._root.hue.slider,onchange(o){e.hue&&e.palette&&(t._recalc&&(t._color.h=360*o),this.element.style.backgroundColor="hsl(".concat(t._color.h,", 100%, 50%)"),i.palette.trigger())}}),opacity:P({lock:o,element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onchange(o){e.opacity&&e.palette&&(t._recalc&&(t._color.a=Math.round(100*o)/100),this.element.style.background="rgba(0, 0, 0, ".concat(t._color.a,")"),i.palette.trigger())}}),selectable:L({elements:t._root.interaction.options,className:"active",onchange(e){t._representation=e.target.getAttribute("data-type").toUpperCase(),t._updateOutput()}})};this._components=i}_bindEvents(){const{_root:t,options:e}=this,o=[a(t.interaction.clear,"click",()=>this._clearColor()),a([t.interaction.cancel,t.preview.lastColor],"click",()=>this.setHSVA(...this._lastColor.toHSVA())),a(t.interaction.save,"click",()=>{!this.applyColor()&&!e.showAlways&&this.hide()}),a(t.interaction.result,["keyup","input"],t=>{this._recalc=!1,this.setColor(t.target.value,!0)&&!this._initializingActive&&this._emit("change",this._color),t.stopImmediatePropagation()}),a([t.palette.palette,t.palette.picker,t.hue.slider,t.hue.picker,t.opacity.slider,t.opacity.picker],["mousedown","touchstart"],()=>this._recalc=!0)];if(!e.showAlways){const n=e.closeWithKey;o.push(a(t.button,"click",()=>this.isOpen()?this.hide():this.show()),a(document,"keyup",t=>this.isOpen()&&(t.key===n||t.code===n)&&this.hide()),a(document,["touchstart","mousedown"],e=>{this.isOpen()&&!d(e).some(e=>e===t.app||e===t.button)&&this.hide()},{capture:!0}))}if(e.adjustableNumbers){const e={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};f(t.interaction.result,(t,o,n)=>{const i=e[this.getColorRepresentation().toLowerCase()];if(i){const e=i[n],r=t+(e>=100?1e3*o:o);return r<=0?0:Number((r{n.isOpen()&&(e.closeOnScroll&&n.hide(),null===t?(t=setTimeout(()=>t=null,100),requestAnimationFrame(function e(){n._rePositioningPicker(),null!==t&&requestAnimationFrame(e)})):(clearTimeout(t),t=setTimeout(()=>t=null,100)))},{capture:!0}))}this._eventBindings=o}_rePositioningPicker(){const{options:t}=this;t.inline||this._nanopop.update(t.position)}_updateOutput(){const{_root:t,_color:e,options:o}=this;if(t.interaction.type()){const n="to".concat(t.interaction.type().getAttribute("data-type"));t.interaction.result.value="function"==typeof e[n]?e[n]().toString(o.outputPrecision):""}!this._initializingActive&&this._recalc&&this._emit("change",e)}_clearColor(t=!1){const{_root:e,options:o}=this;o.useAsButton||(e.button.style.color="rgba(0, 0, 0, 0.15)"),e.button.classList.add("clear"),o.showAlways||this.hide(),this._initializingActive||t||this._emit("save",null)}_emit(t,...e){this._eventListener[t].forEach(t=>t(...e,this))}_parseLocalColor(t){const{values:e,type:o,a:n}=S(t),{lockOpacity:i}=this.options,r=void 0!==n&&1!==n;return e&&3===e.length&&(e[3]=void 0),{values:!e||i&&r?null:e,type:o}}on(t,e){return"function"==typeof e&&"string"==typeof t&&t in this._eventListener&&this._eventListener[t].push(e),this}off(t,e){const o=this._eventListener[t];if(o){const t=o.indexOf(e);~t&&o.splice(t,1)}return this}addSwatch(t){const{values:e}=this._parseLocalColor(t);if(e){const{_swatchColors:t,_root:o}=this,n=O(...e),i=p(''}\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 'swatchselect': [],\n 'change': [],\n 'save': [],\n 'init': []\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, inline, 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 // Per default enabled if inline\n if (inline) {\n opt.showAlways = true;\n }\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\n\n // Finalize build\n this._finalBuild();\n\n // Append pre-defined swatch colors\n if (swatches && swatches.length) {\n swatches.forEach(color => this.addSwatch(color));\n }\n\n // 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 {button} = this._root;\n const that = this;\n requestAnimationFrame((function cb() {\n\n // offsetParent of body is always 0. So check if it is the body\n if (button.offsetParent === null && button !== document.body) {\n return requestAnimationFrame(cb);\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 {parentElement} = opt.el;\n\n if (parentElement.lastChild === opt.el) {\n parentElement.appendChild(root.app);\n } else {\n parentElement.insertBefore(root.app, opt.el.nextSibling);\n }\n } else {\n document.body.appendChild(root.app);\n }\n\n // Don't replace the the element if a custom button is used\n if (!opt.useAsButton) {\n\n // Replace element with actual color-picker\n opt.el.parentNode.replaceChild(root.root, opt.el);\n }\n\n // Call disable to also add the disabled class\n if (opt.disabled) {\n this.disable();\n }\n\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\n if (!opt.comparison) {\n root.button.style.transition = 'none';\n if (!opt.useAsButton) {\n root.preview.lastColor.style.transition = 'none';\n }\n }\n\n this.hide();\n }\n\n _buildComponents() {\n\n // Instance reference\n const inst = this;\n const cs = this.options.components;\n const [so, sh] = (() => {\n const {sliders} = inst.options;\n let so = 'v', sh = 'v';\n\n if (sliders && sliders.match(/^[vh]+$/g)) {\n if (sliders.length > 1) {\n [so, sh] = sliders;\n } else {\n so = sh = sliders;\n }\n }\n\n const opposite = {v: 'h', h: 'v'};\n return [opposite[so], opposite[sh]];\n })();\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onchange(x, y) {\n if (!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 let 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 // 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,\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\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,\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\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 onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._updateOutput();\n }\n })\n };\n\n this._components = components;\n }\n\n _bindEvents() {\n const {_root, options} = this;\n\n const eventBindings = [\n\n // Clear color\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\n\n // Select last color on click\n _.on([\n _root.interaction.cancel,\n _root.preview.lastColor\n ], 'click', () => this.setHSVA(...this._lastColor.toHSVA())),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\n this._recalc = false;\n\n // Fire listener if initialization is finish and changed color was valid\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\n this._emit('change', this._color);\n }\n\n e.stopImmediatePropagation();\n }),\n\n // Cancel input detection on color change\n _.on([\n _root.palette.palette,\n _root.palette.picker,\n _root.hue.slider,\n _root.hue.picker,\n _root.opacity.slider,\n _root.opacity.picker\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\n ];\n\n // Provide hiding / showing abilities only if showAlways is false\n if (!options.showAlways) {\n const ck = options.closeWithKey;\n\n eventBindings.push(\n // Save and hide / show picker\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\n\n // Close with escape key\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\n\n // Cancel selecting if the user taps behind the color picker\n _.on(document, ['touchstart', 'mousedown'], e => {\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\n this.hide();\n }\n }, {capture: true})\n );\n }\n\n // Make input adjustable if enabled\n if (options.adjustableNumbers) {\n 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 } else {\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 this._nanopop.update(options.position);\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 }\n }\n\n _emit(event, ...args) {\n this._eventListener[event].forEach(cb => cb(...args, this));\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 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 hsvaColorObject = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const element = _.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","// 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 'swatchselect': [],\n 'change': [],\n 'save': [],\n 'init': []\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, inline, 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 // Per default enabled if inline\n if (inline) {\n opt.showAlways = true;\n }\n\n // Initialize picker\n this._preBuild();\n this._buildComponents();\n this._bindEvents();\n\n // Finalize build\n this._finalBuild();\n\n // Append pre-defined swatch colors\n if (swatches && swatches.length) {\n swatches.forEach(color => this.addSwatch(color));\n }\n\n // 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 {button} = this._root;\n const that = this;\n requestAnimationFrame((function cb() {\n\n // offsetParent of body is always 0. So check if it is the body\n if (button.offsetParent === null && button !== document.body) {\n return requestAnimationFrame(cb);\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 {parentElement} = opt.el;\n\n if (parentElement.lastChild === opt.el) {\n parentElement.appendChild(root.app);\n } else {\n parentElement.insertBefore(root.app, opt.el.nextSibling);\n }\n } else {\n document.body.appendChild(root.app);\n }\n\n // Don't replace the the element if a custom button is used\n if (!opt.useAsButton) {\n\n // Replace element with actual color-picker\n opt.el.parentNode.replaceChild(root.root, opt.el);\n }\n\n // Call disable to also add the disabled class\n if (opt.disabled) {\n this.disable();\n }\n\n // Check if color comparison is disabled, if yes - remove transitions so everything keeps smoothly\n if (!opt.comparison) {\n root.button.style.transition = 'none';\n if (!opt.useAsButton) {\n root.preview.lastColor.style.transition = 'none';\n }\n }\n\n this.hide();\n }\n\n _buildComponents() {\n\n // Instance reference\n const inst = this;\n const cs = this.options.components;\n const [so, sh] = (() => {\n const {sliders} = inst.options;\n let so = 'v', sh = 'v';\n\n if (sliders && sliders.match(/^[vh]+$/g)) {\n if (sliders.length > 1) {\n [so, sh] = sliders;\n } else {\n so = sh = sliders;\n }\n }\n\n const opposite = {v: 'h', h: 'v'};\n return [opposite[so], opposite[sh]];\n })();\n\n const components = {\n\n palette: Moveable({\n element: inst._root.palette.picker,\n wrapper: inst._root.palette.palette,\n\n onchange(x, y) {\n if (!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 let 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 // 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,\n element: inst._root.hue.picker,\n wrapper: inst._root.hue.slider,\n\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,\n element: inst._root.opacity.picker,\n wrapper: inst._root.opacity.slider,\n\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 onchange(e) {\n inst._representation = e.target.getAttribute('data-type').toUpperCase();\n inst._updateOutput();\n }\n })\n };\n\n this._components = components;\n }\n\n _bindEvents() {\n const {_root, options} = this;\n\n const eventBindings = [\n\n // Clear color\n _.on(_root.interaction.clear, 'click', () => this._clearColor()),\n\n // Select last color on click\n _.on([\n _root.interaction.cancel,\n _root.preview.lastColor\n ], 'click', () => this.setHSVA(...this._lastColor.toHSVA())),\n\n // Save color\n _.on(_root.interaction.save, 'click', () => {\n !this.applyColor() && !options.showAlways && this.hide();\n }),\n\n // Detect user input and disable auto-recalculation\n _.on(_root.interaction.result, ['keyup', 'input'], e => {\n this._recalc = false;\n\n // Fire listener if initialization is finish and changed color was valid\n if (this.setColor(e.target.value, true) && !this._initializingActive) {\n this._emit('change', this._color);\n }\n\n e.stopImmediatePropagation();\n }),\n\n // Cancel input detection on color change\n _.on([\n _root.palette.palette,\n _root.palette.picker,\n _root.hue.slider,\n _root.hue.picker,\n _root.opacity.slider,\n _root.opacity.picker\n ], ['mousedown', 'touchstart'], () => this._recalc = true)\n ];\n\n // Provide hiding / showing abilities only if showAlways is false\n if (!options.showAlways) {\n const ck = options.closeWithKey;\n\n eventBindings.push(\n // Save and hide / show picker\n _.on(_root.button, 'click', () => this.isOpen() ? this.hide() : this.show()),\n\n // Close with escape key\n _.on(document, 'keyup', e => this.isOpen() && (e.key === ck || e.code === ck) && this.hide()),\n\n // Cancel selecting if the user taps behind the color picker\n _.on(document, ['touchstart', 'mousedown'], e => {\n if (this.isOpen() && !_.eventPath(e).some(el => el === _root.app || el === _root.button)) {\n this.hide();\n }\n }, {capture: true})\n );\n }\n\n // Make input adjustable if enabled\n if (options.adjustableNumbers) {\n 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 } else {\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 this._nanopop.update(options.position);\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 }\n }\n\n _emit(event, ...args) {\n this._eventListener[event].forEach(cb => cb(...args, this));\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 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 hsvaColorObject = HSVaColor(...values);\n\n // Create new swatch HTMLElement\n const element = _.createElementFromString(\n `