{"version":3,"file":"iro.es-DqG6q-J1.js","sources":["../../../node_modules/@jaames/iro/dist/iro.es.js"],"sourcesContent":["/*!\n * iro.js v5.5.2\n * 2016-2021 James Daniel\n * Licensed under MPL 2.0\n * github.com/jaames/iro.js\n */\n\nvar n,u,t,i,r,o,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|^--/i;function s(n,l){for(var u in l){ n[u]=l[u]; }return n}function a(n){var l=n.parentNode;l&&l.removeChild(n);}function h(n,l,u){var t,i,r,o,f=arguments;if(l=s({},l),arguments.length>3){ for(u=[u],t=3;t -1;\n var num = parseFloat(str);\n return isPercentage ? max / 100 * num : num;\n}\n/**\r\n * @desc Parse hex str to an int\r\n * @param str - hex string to parse\r\n */\n\n\nfunction parseHexInt(str) {\n return parseInt(str, 16);\n}\n/**\r\n * @desc Convert nunber into to 2-digit hex\r\n * @param int - number to convert\r\n */\n\n\nfunction intToHex(_int) {\n return _int.toString(16).padStart(2, '0');\n}\n\nvar IroColor =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @constructor Color object\r\n * @param value - initial color value\r\n */\n function IroColor(value, onChange) {\n // The default Color value\n this.$ = {\n h: 0,\n s: 0,\n v: 0,\n a: 1\n };\n if (value) { this.set(value); } // The watch callback function for this Color will be stored here\n\n this.onChange = onChange;\n this.initialValue = _extends({}, this.$); // copy initial value\n }\n /**\r\n * @desc Set the Color from any valid value\r\n * @param value - new color value\r\n */\n\n\n var _proto = IroColor.prototype;\n\n _proto.set = function set(value) {\n if (typeof value === 'string') {\n if (/^(?:#?|0x?)[0-9a-fA-F]{3,8}$/.test(value)) {\n this.hexString = value;\n } else if (/^rgba?/.test(value)) {\n this.rgbString = value;\n } else if (/^hsla?/.test(value)) {\n this.hslString = value;\n }\n } else if (typeof value === 'object') {\n if (value instanceof IroColor) {\n this.hsva = value.hsva;\n } else if ('r' in value && 'g' in value && 'b' in value) {\n this.rgb = value;\n } else if ('h' in value && 's' in value && 'v' in value) {\n this.hsv = value;\n } else if ('h' in value && 's' in value && 'l' in value) {\n this.hsl = value;\n } else if ('kelvin' in value) {\n this.kelvin = value.kelvin;\n }\n } else {\n throw new Error('Invalid color value');\n }\n }\n /**\r\n * @desc Shortcut to set a specific channel value\r\n * @param format - hsv | hsl | rgb\r\n * @param channel - individual channel to set, for example if model = hsl, chanel = h | s | l\r\n * @param value - new value for the channel\r\n */\n ;\n\n _proto.setChannel = function setChannel(format, channel, value) {\n var _extends2;\n\n this[format] = _extends({}, this[format], (_extends2 = {}, _extends2[channel] = value, _extends2));\n }\n /**\r\n * @desc Reset color back to its initial value\r\n */\n ;\n\n _proto.reset = function reset() {\n this.hsva = this.initialValue;\n }\n /**\r\n * @desc make new Color instance with the same value as this one\r\n */\n ;\n\n _proto.clone = function clone() {\n return new IroColor(this);\n }\n /**\r\n * @desc remove color onChange\r\n */\n ;\n\n _proto.unbind = function unbind() {\n this.onChange = undefined;\n }\n /**\r\n * @desc Convert hsv object to rgb\r\n * @param hsv - hsv color object\r\n */\n ;\n\n IroColor.hsvToRgb = function hsvToRgb(hsv) {\n var h = hsv.h / 60;\n var s = hsv.s / 100;\n var v = hsv.v / 100;\n var i = floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return {\n r: clamp(r * 255, 0, 255),\n g: clamp(g * 255, 0, 255),\n b: clamp(b * 255, 0, 255)\n };\n }\n /**\r\n * @desc Convert rgb object to hsv\r\n * @param rgb - rgb object\r\n */\n ;\n\n IroColor.rgbToHsv = function rgbToHsv(rgb) {\n var r = rgb.r / 255;\n var g = rgb.g / 255;\n var b = rgb.b / 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var delta = max - min;\n var hue = 0;\n var value = max;\n var saturation = max === 0 ? 0 : delta / max;\n\n switch (max) {\n case min:\n hue = 0; // achromatic\n\n break;\n\n case r:\n hue = (g - b) / delta + (g < b ? 6 : 0);\n break;\n\n case g:\n hue = (b - r) / delta + 2;\n break;\n\n case b:\n hue = (r - g) / delta + 4;\n break;\n }\n\n return {\n h: hue * 60 % 360,\n s: clamp(saturation * 100, 0, 100),\n v: clamp(value * 100, 0, 100)\n };\n }\n /**\r\n * @desc Convert hsv object to hsl\r\n * @param hsv - hsv object\r\n */\n ;\n\n IroColor.hsvToHsl = function hsvToHsl(hsv) {\n var s = hsv.s / 100;\n var v = hsv.v / 100;\n var l = (2 - s) * v;\n var divisor = l <= 1 ? l : 2 - l; // Avoid division by zero when lightness is close to zero\n\n var saturation = divisor < 1e-9 ? 0 : s * v / divisor;\n return {\n h: hsv.h,\n s: clamp(saturation * 100, 0, 100),\n l: clamp(l * 50, 0, 100)\n };\n }\n /**\r\n * @desc Convert hsl object to hsv\r\n * @param hsl - hsl object\r\n */\n ;\n\n IroColor.hslToHsv = function hslToHsv(hsl) {\n var l = hsl.l * 2;\n var s = hsl.s * (l <= 100 ? l : 200 - l) / 100; // Avoid division by zero when l + s is near 0\n\n var saturation = l + s < 1e-9 ? 0 : 2 * s / (l + s);\n return {\n h: hsl.h,\n s: clamp(saturation * 100, 0, 100),\n v: clamp((l + s) / 2, 0, 100)\n };\n }\n /**\r\n * @desc Convert a kelvin temperature to an approx, RGB value\r\n * @param kelvin - kelvin temperature\r\n */\n ;\n\n IroColor.kelvinToRgb = function kelvinToRgb(kelvin) {\n var temp = kelvin / 100;\n var r, g, b;\n\n if (temp < 66) {\n r = 255;\n g = -155.25485562709179 - 0.44596950469579133 * (g = temp - 2) + 104.49216199393888 * log(g);\n b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp - 10) + 115.67994401066147 * log(b);\n } else {\n r = 351.97690566805693 + 0.114206453784165 * (r = temp - 55) - 40.25366309332127 * log(r);\n g = 325.4494125711974 + 0.07943456536662342 * (g = temp - 50) - 28.0852963507957 * log(g);\n b = 255;\n }\n\n return {\n r: clamp(floor(r), 0, 255),\n g: clamp(floor(g), 0, 255),\n b: clamp(floor(b), 0, 255)\n };\n }\n /**\r\n * @desc Convert an RGB color to an approximate kelvin temperature\r\n * @param kelvin - kelvin temperature\r\n */\n ;\n\n IroColor.rgbToKelvin = function rgbToKelvin(rgb) {\n var r = rgb.r,\n b = rgb.b;\n var eps = 0.4;\n var minTemp = KELVIN_MIN;\n var maxTemp = KELVIN_MAX;\n var temp;\n\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n\n var _rgb = IroColor.kelvinToRgb(temp);\n\n if (_rgb.b / _rgb.r >= b / r) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n\n return temp;\n };\n\n _createClass(IroColor, [{\n key: \"hsv\",\n get: function get() {\n // value is cloned to allow changes to be made to the values before passing them back\n var value = this.$;\n return {\n h: value.h,\n s: value.s,\n v: value.v\n };\n },\n set: function set(newValue) {\n var oldValue = this.$;\n newValue = _extends({}, oldValue, newValue); // If this Color is being watched for changes we need to compare the new and old values to check the difference\n // Otherwise we can just be lazy\n\n if (this.onChange) {\n // Compute changed values\n var changes = {\n h: false,\n v: false,\n s: false,\n a: false\n };\n\n for (var key in oldValue) {\n changes[key] = newValue[key] != oldValue[key];\n }\n\n this.$ = newValue; // If the value has changed, call hook callback\n\n if (changes.h || changes.s || changes.v || changes.a) { this.onChange(this, changes); }\n } else {\n this.$ = newValue;\n }\n }\n }, {\n key: \"hsva\",\n get: function get() {\n return _extends({}, this.$);\n },\n set: function set(value) {\n this.hsv = value;\n }\n }, {\n key: \"hue\",\n get: function get() {\n return this.$.h;\n },\n set: function set(value) {\n this.hsv = {\n h: value\n };\n }\n }, {\n key: \"saturation\",\n get: function get() {\n return this.$.s;\n },\n set: function set(value) {\n this.hsv = {\n s: value\n };\n }\n }, {\n key: \"value\",\n get: function get() {\n return this.$.v;\n },\n set: function set(value) {\n this.hsv = {\n v: value\n };\n }\n }, {\n key: \"alpha\",\n get: function get() {\n return this.$.a;\n },\n set: function set(value) {\n this.hsv = _extends({}, this.hsv, {\n a: value\n });\n }\n }, {\n key: \"kelvin\",\n get: function get() {\n return IroColor.rgbToKelvin(this.rgb);\n },\n set: function set(value) {\n this.rgb = IroColor.kelvinToRgb(value);\n }\n }, {\n key: \"red\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.r;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n r: value\n });\n }\n }, {\n key: \"green\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.g;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n g: value\n });\n }\n }, {\n key: \"blue\",\n get: function get() {\n var rgb = this.rgb;\n return rgb.b;\n },\n set: function set(value) {\n this.rgb = _extends({}, this.rgb, {\n b: value\n });\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var _IroColor$hsvToRgb = IroColor.hsvToRgb(this.$),\n r = _IroColor$hsvToRgb.r,\n g = _IroColor$hsvToRgb.g,\n b = _IroColor$hsvToRgb.b;\n\n return {\n r: round(r),\n g: round(g),\n b: round(b)\n };\n },\n set: function set(value) {\n this.hsv = _extends({}, IroColor.rgbToHsv(value), {\n a: value.a === undefined ? 1 : value.a\n });\n }\n }, {\n key: \"rgba\",\n get: function get() {\n return _extends({}, this.rgb, {\n a: this.alpha\n });\n },\n set: function set(value) {\n this.rgb = value;\n }\n }, {\n key: \"hsl\",\n get: function get() {\n var _IroColor$hsvToHsl = IroColor.hsvToHsl(this.$),\n h = _IroColor$hsvToHsl.h,\n s = _IroColor$hsvToHsl.s,\n l = _IroColor$hsvToHsl.l;\n\n return {\n h: round(h),\n s: round(s),\n l: round(l)\n };\n },\n set: function set(value) {\n this.hsv = _extends({}, IroColor.hslToHsv(value), {\n a: value.a === undefined ? 1 : value.a\n });\n }\n }, {\n key: \"hsla\",\n get: function get() {\n return _extends({}, this.hsl, {\n a: this.alpha\n });\n },\n set: function set(value) {\n this.hsl = value;\n }\n }, {\n key: \"rgbString\",\n get: function get() {\n var rgb = this.rgb;\n return \"rgb(\" + rgb.r + \", \" + rgb.g + \", \" + rgb.b + \")\";\n },\n set: function set(value) {\n var match;\n var r,\n g,\n b,\n a = 1;\n\n if (match = REGEX_FUNCTIONAL_RGB.exec(value)) {\n r = parseUnit(match[1], 255);\n g = parseUnit(match[2], 255);\n b = parseUnit(match[3], 255);\n } else if (match = REGEX_FUNCTIONAL_RGBA.exec(value)) {\n r = parseUnit(match[1], 255);\n g = parseUnit(match[2], 255);\n b = parseUnit(match[3], 255);\n a = parseUnit(match[4], 1);\n }\n\n if (match) {\n this.rgb = {\n r: r,\n g: g,\n b: b,\n a: a\n };\n } else {\n throw new Error('Invalid rgb string');\n }\n }\n }, {\n key: \"rgbaString\",\n get: function get() {\n var rgba = this.rgba;\n return \"rgba(\" + rgba.r + \", \" + rgba.g + \", \" + rgba.b + \", \" + rgba.a + \")\";\n },\n set: function set(value) {\n this.rgbString = value;\n }\n }, {\n key: \"hexString\",\n get: function get() {\n var rgb = this.rgb;\n return \"#\" + intToHex(rgb.r) + intToHex(rgb.g) + intToHex(rgb.b);\n },\n set: function set(value) {\n var match;\n var r,\n g,\n b,\n a = 255;\n\n if (match = REGEX_HEX_3.exec(value)) {\n r = parseHexInt(match[1]) * 17;\n g = parseHexInt(match[2]) * 17;\n b = parseHexInt(match[3]) * 17;\n } else if (match = REGEX_HEX_4.exec(value)) {\n r = parseHexInt(match[1]) * 17;\n g = parseHexInt(match[2]) * 17;\n b = parseHexInt(match[3]) * 17;\n a = parseHexInt(match[4]) * 17;\n } else if (match = REGEX_HEX_6.exec(value)) {\n r = parseHexInt(match[1]);\n g = parseHexInt(match[2]);\n b = parseHexInt(match[3]);\n } else if (match = REGEX_HEX_8.exec(value)) {\n r = parseHexInt(match[1]);\n g = parseHexInt(match[2]);\n b = parseHexInt(match[3]);\n a = parseHexInt(match[4]);\n }\n\n if (match) {\n this.rgb = {\n r: r,\n g: g,\n b: b,\n a: a / 255\n };\n } else {\n throw new Error('Invalid hex string');\n }\n }\n }, {\n key: \"hex8String\",\n get: function get() {\n var rgba = this.rgba;\n return \"#\" + intToHex(rgba.r) + intToHex(rgba.g) + intToHex(rgba.b) + intToHex(floor(rgba.a * 255));\n },\n set: function set(value) {\n this.hexString = value;\n }\n }, {\n key: \"hslString\",\n get: function get() {\n var hsl = this.hsl;\n return \"hsl(\" + hsl.h + \", \" + hsl.s + \"%, \" + hsl.l + \"%)\";\n },\n set: function set(value) {\n var match;\n var h,\n s,\n l,\n a = 1;\n\n if (match = REGEX_FUNCTIONAL_HSL.exec(value)) {\n h = parseUnit(match[1], 360);\n s = parseUnit(match[2], 100);\n l = parseUnit(match[3], 100);\n } else if (match = REGEX_FUNCTIONAL_HSLA.exec(value)) {\n h = parseUnit(match[1], 360);\n s = parseUnit(match[2], 100);\n l = parseUnit(match[3], 100);\n a = parseUnit(match[4], 1);\n }\n\n if (match) {\n this.hsl = {\n h: h,\n s: s,\n l: l,\n a: a\n };\n } else {\n throw new Error('Invalid hsl string');\n }\n }\n }, {\n key: \"hslaString\",\n get: function get() {\n var hsla = this.hsla;\n return \"hsla(\" + hsla.h + \", \" + hsla.s + \"%, \" + hsla.l + \"%, \" + hsla.a + \")\";\n },\n set: function set(value) {\n this.hslString = value;\n }\n }]);\n\n return IroColor;\n}();\n\nvar sliderDefaultOptions = {\n sliderShape: 'bar',\n sliderType: 'value',\n minTemperature: 2200,\n maxTemperature: 11000\n};\n/**\r\n * @desc Get the bounding dimensions of the slider\r\n * @param props - slider props\r\n */\n\nfunction getSliderDimensions(props) {\n var _sliderSize;\n\n var width = props.width,\n sliderSize = props.sliderSize,\n borderWidth = props.borderWidth,\n handleRadius = props.handleRadius,\n padding = props.padding,\n sliderShape = props.sliderShape;\n var ishorizontal = props.layoutDirection === 'horizontal'; // automatically calculate sliderSize if its not defined\n\n sliderSize = (_sliderSize = sliderSize) != null ? _sliderSize : padding * 2 + handleRadius * 2;\n\n if (sliderShape === 'circle') {\n return {\n handleStart: props.padding + props.handleRadius,\n handleRange: width - padding * 2 - handleRadius * 2,\n width: width,\n height: width,\n cx: width / 2,\n cy: width / 2,\n radius: width / 2 - borderWidth / 2\n };\n } else {\n return {\n handleStart: sliderSize / 2,\n handleRange: width - sliderSize,\n radius: sliderSize / 2,\n x: 0,\n y: 0,\n width: ishorizontal ? sliderSize : width,\n height: ishorizontal ? width : sliderSize\n };\n }\n}\n/**\r\n * @desc Get the current slider value for a given color, as a percentage\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getCurrentSliderValue(props, color) {\n var hsva = color.hsva;\n var rgb = color.rgb;\n\n switch (props.sliderType) {\n case 'red':\n return rgb.r / 2.55;\n\n case 'green':\n return rgb.g / 2.55;\n\n case 'blue':\n return rgb.b / 2.55;\n\n case 'alpha':\n return hsva.a * 100;\n\n case 'kelvin':\n var minTemperature = props.minTemperature,\n maxTemperature = props.maxTemperature;\n var temperatureRange = maxTemperature - minTemperature;\n var percent = (color.kelvin - minTemperature) / temperatureRange * 100; // clmap percentage\n\n return Math.max(0, Math.min(percent, 100));\n\n case 'hue':\n return hsva.h /= 3.6;\n\n case 'saturation':\n return hsva.s;\n\n case 'value':\n default:\n return hsva.v;\n }\n}\n/**\r\n * @desc Get the current slider value from user input\r\n * @param props - slider props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getSliderValueFromInput(props, x, y) {\n var _getSliderDimensions = getSliderDimensions(props),\n handleRange = _getSliderDimensions.handleRange,\n handleStart = _getSliderDimensions.handleStart;\n\n var handlePos;\n\n if (props.layoutDirection === 'horizontal') {\n handlePos = -1 * y + handleRange + handleStart;\n } else {\n handlePos = x - handleStart;\n } // clamp handle position\n\n\n handlePos = Math.max(Math.min(handlePos, handleRange), 0);\n var percent = Math.round(100 / handleRange * handlePos);\n\n switch (props.sliderType) {\n case 'kelvin':\n var minTemperature = props.minTemperature,\n maxTemperature = props.maxTemperature;\n var temperatureRange = maxTemperature - minTemperature;\n return minTemperature + temperatureRange * (percent / 100);\n\n case 'alpha':\n return percent / 100;\n\n case 'hue':\n return percent * 3.6;\n\n case 'red':\n case 'blue':\n case 'green':\n return percent * 2.55;\n\n default:\n return percent;\n }\n}\n/**\r\n * @desc Get the current handle position for a given color\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getSliderHandlePosition(props, color) {\n var _getSliderDimensions2 = getSliderDimensions(props),\n width = _getSliderDimensions2.width,\n height = _getSliderDimensions2.height,\n handleRange = _getSliderDimensions2.handleRange,\n handleStart = _getSliderDimensions2.handleStart;\n\n var ishorizontal = props.layoutDirection === 'horizontal';\n var sliderValue = getCurrentSliderValue(props, color);\n var midPoint = ishorizontal ? width / 2 : height / 2;\n var handlePos = handleStart + sliderValue / 100 * handleRange;\n\n if (ishorizontal) {\n handlePos = -1 * handlePos + handleRange + handleStart * 2;\n }\n\n return {\n x: ishorizontal ? midPoint : handlePos,\n y: ishorizontal ? handlePos : midPoint\n };\n}\n/**\r\n * @desc Get the gradient stops for a slider\r\n * @param props - slider props\r\n * @param color\r\n */\n\nfunction getSliderGradient(props, color) {\n var hsv = color.hsv;\n var rgb = color.rgb;\n\n switch (props.sliderType) {\n case 'red':\n return [[0, \"rgb(\" + 0 + \",\" + rgb.g + \",\" + rgb.b + \")\"], [100, \"rgb(\" + 255 + \",\" + rgb.g + \",\" + rgb.b + \")\"]];\n\n case 'green':\n return [[0, \"rgb(\" + rgb.r + \",\" + 0 + \",\" + rgb.b + \")\"], [100, \"rgb(\" + rgb.r + \",\" + 255 + \",\" + rgb.b + \")\"]];\n\n case 'blue':\n return [[0, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + 0 + \")\"], [100, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + 255 + \")\"]];\n\n case 'alpha':\n return [[0, \"rgba(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \",0)\"], [100, \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \")\"]];\n\n case 'kelvin':\n var stops = [];\n var min = props.minTemperature;\n var max = props.maxTemperature;\n var numStops = 8;\n var range = max - min;\n\n for (var kelvin = min, stop = 0; kelvin < max; kelvin += range / numStops, stop += 1) {\n var _IroColor$kelvinToRgb = IroColor.kelvinToRgb(kelvin),\n r = _IroColor$kelvinToRgb.r,\n g = _IroColor$kelvinToRgb.g,\n b = _IroColor$kelvinToRgb.b;\n\n stops.push([100 / numStops * stop, \"rgb(\" + r + \",\" + g + \",\" + b + \")\"]);\n }\n\n return stops;\n\n case 'hue':\n return [[0, '#f00'], [16.666, '#ff0'], [33.333, '#0f0'], [50, '#0ff'], [66.666, '#00f'], [83.333, '#f0f'], [100, '#f00']];\n\n case 'saturation':\n var noSat = IroColor.hsvToHsl({\n h: hsv.h,\n s: 0,\n v: hsv.v\n });\n var fullSat = IroColor.hsvToHsl({\n h: hsv.h,\n s: 100,\n v: hsv.v\n });\n return [[0, \"hsl(\" + noSat.h + \",\" + noSat.s + \"%,\" + noSat.l + \"%)\"], [100, \"hsl(\" + fullSat.h + \",\" + fullSat.s + \"%,\" + fullSat.l + \"%)\"]];\n\n case 'value':\n default:\n var hsl = IroColor.hsvToHsl({\n h: hsv.h,\n s: hsv.s,\n v: 100\n });\n return [[0, '#000'], [100, \"hsl(\" + hsl.h + \",\" + hsl.s + \"%,\" + hsl.l + \"%)\"]];\n }\n}\n\nvar TAU = Math.PI * 2; // javascript's modulo operator doesn't produce positive numbers with negative input\n// https://dev.to/maurobringolf/a-neat-trick-to-compute-modulo-of-negative-numbers-111e\n\nvar mod = function mod(a, n) {\n return (a % n + n) % n;\n}; // distance between points (x, y) and (0, 0)\n\n\nvar dist = function dist(x, y) {\n return Math.sqrt(x * x + y * y);\n};\n/**\r\n * @param props - wheel props\r\n * @internal\r\n */\n\n\nfunction getHandleRange(props) {\n return props.width / 2 - props.padding - props.handleRadius - props.borderWidth;\n}\n/**\r\n * Returns true if point (x, y) lands inside the wheel\r\n * @param props - wheel props\r\n * @param x\r\n * @param y\r\n */\n\n\nfunction isInputInsideWheel(props, x, y) {\n var _getWheelDimensions = getWheelDimensions(props),\n cx = _getWheelDimensions.cx,\n cy = _getWheelDimensions.cy;\n\n var r = props.width / 2;\n return dist(cx - x, cy - y) < r;\n}\n/**\r\n * @desc Get the point as the center of the wheel\r\n * @param props - wheel props\r\n */\n\nfunction getWheelDimensions(props) {\n var r = props.width / 2;\n return {\n width: props.width,\n radius: r - props.borderWidth,\n cx: r,\n cy: r\n };\n}\n/**\r\n * @desc Translate an angle according to wheelAngle and wheelDirection\r\n * @param props - wheel props\r\n * @param angle - input angle\r\n */\n\nfunction translateWheelAngle(props, angle, invert) {\n var wheelAngle = props.wheelAngle;\n var wheelDirection = props.wheelDirection; // inverted and clockwisee\n\n if (invert && wheelDirection === 'clockwise') { angle = wheelAngle + angle; } // clockwise (input handling)\n else if (wheelDirection === 'clockwise') { angle = 360 - wheelAngle + angle; } // inverted and anticlockwise\n else if (invert && wheelDirection === 'anticlockwise') { angle = wheelAngle + 180 - angle; } // anticlockwise (input handling)\n else if (wheelDirection === 'anticlockwise') { angle = wheelAngle - angle; }\n return mod(angle, 360);\n}\n/**\r\n * @desc Get the current handle position for a given color\r\n * @param props - wheel props\r\n * @param color\r\n */\n\nfunction getWheelHandlePosition(props, color) {\n var hsv = color.hsv;\n\n var _getWheelDimensions2 = getWheelDimensions(props),\n cx = _getWheelDimensions2.cx,\n cy = _getWheelDimensions2.cy;\n\n var handleRange = getHandleRange(props);\n var handleAngle = (180 + translateWheelAngle(props, hsv.h, true)) * (TAU / 360);\n var handleDist = hsv.s / 100 * handleRange;\n var direction = props.wheelDirection === 'clockwise' ? -1 : 1;\n return {\n x: cx + handleDist * Math.cos(handleAngle) * direction,\n y: cy + handleDist * Math.sin(handleAngle) * direction\n };\n}\n/**\r\n * @desc Get the current wheel value from user input\r\n * @param props - wheel props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getWheelValueFromInput(props, x, y) {\n var _getWheelDimensions3 = getWheelDimensions(props),\n cx = _getWheelDimensions3.cx,\n cy = _getWheelDimensions3.cy;\n\n var handleRange = getHandleRange(props);\n x = cx - x;\n y = cy - y; // Calculate the hue by converting the angle to radians\n\n var hue = translateWheelAngle(props, Math.atan2(-y, -x) * (360 / TAU)); // Find the point's distance from the center of the wheel\n // This is used to show the saturation level\n\n var handleDist = Math.min(dist(x, y), handleRange);\n return {\n h: Math.round(hue),\n s: Math.round(100 / handleRange * handleDist)\n };\n}\n/**\r\n * @desc Get the bounding dimensions of the box\r\n * @param props - box props\r\n */\n\nfunction getBoxDimensions(props) {\n var width = props.width,\n boxHeight = props.boxHeight,\n padding = props.padding,\n handleRadius = props.handleRadius;\n return {\n width: width,\n height: boxHeight != null ? boxHeight : width,\n radius: padding + handleRadius\n };\n}\n/**\r\n * @desc Get the current box value from user input\r\n * @param props - box props\r\n * @param x - global input x position\r\n * @param y - global input y position\r\n */\n\nfunction getBoxValueFromInput(props, x, y) {\n var _getBoxDimensions = getBoxDimensions(props),\n width = _getBoxDimensions.width,\n height = _getBoxDimensions.height,\n radius = _getBoxDimensions.radius;\n\n var handleStart = radius;\n var handleRangeX = width - radius * 2;\n var handleRangeY = height - radius * 2;\n var percentX = (x - handleStart) / handleRangeX * 100;\n var percentY = (y - handleStart) / handleRangeY * 100;\n return {\n s: Math.max(0, Math.min(percentX, 100)),\n v: Math.max(0, Math.min(100 - percentY, 100))\n };\n}\n/**\r\n * @desc Get the current box handle position for a given color\r\n * @param props - box props\r\n * @param color\r\n */\n\nfunction getBoxHandlePosition(props, color) {\n var _getBoxDimensions2 = getBoxDimensions(props),\n width = _getBoxDimensions2.width,\n height = _getBoxDimensions2.height,\n radius = _getBoxDimensions2.radius;\n\n var hsv = color.hsv;\n var handleStart = radius;\n var handleRangeX = width - radius * 2;\n var handleRangeY = height - radius * 2;\n return {\n x: handleStart + hsv.s / 100 * handleRangeX,\n y: handleStart + (handleRangeY - hsv.v / 100 * handleRangeY)\n };\n}\n/**\r\n * @desc Get the gradient stops for a box\r\n * @param props - box props\r\n * @param color\r\n */\n\nfunction getBoxGradients(props, color) {\n var hue = color.hue;\n return [// saturation gradient\n [[0, '#fff'], [100, \"hsl(\" + hue + \",100%,50%)\"]], // lightness gradient\n [[0, 'rgba(0,0,0,0)'], [100, '#000']]];\n}\n\n// Keep track of html elements for resolveSvgUrl\n// getElementsByTagName returns a live HTMLCollection, which stays in sync with the DOM tree\n// So it only needs to be called once\nvar BASE_ELEMENTS;\n/**\r\n * @desc Resolve an SVG reference URL\r\n * This is required to work around how Safari and iOS webviews handle gradient URLS under certain conditions\r\n * If a page is using a client-side routing library which makes use of the HTML tag,\r\n * Safari won't be able to render SVG gradients properly (as they are referenced by URLs)\r\n * More info on the problem:\r\n * https://stackoverflow.com/questions/19742805/angular-and-svg-filters/19753427#19753427\r\n * https://github.com/jaames/iro.js/issues/18\r\n * https://github.com/jaames/iro.js/issues/45\r\n * https://github.com/jaames/iro.js/pull/89\r\n * @props url - SVG reference URL\r\n */\n\nfunction resolveSvgUrl(url) {\n if (!BASE_ELEMENTS) { BASE_ELEMENTS = document.getElementsByTagName('base'); } // Sniff useragent string to check if the user is running Safari\n\n var ua = window.navigator.userAgent;\n var isSafari = /^((?!chrome|android).)*safari/i.test(ua);\n var isIos = /iPhone|iPod|iPad/i.test(ua);\n var location = window.location;\n return (isSafari || isIos) && BASE_ELEMENTS.length > 0 ? location.protocol + \"//\" + location.host + location.pathname + location.search + url : url;\n}\n/**\r\n * @desc Given a specifc (x, y) position, test if there's a handle there and return its index, else return null.\r\n * This is used for components like the box and wheel which support multiple handles when multicolor is active\r\n * @props x - point x position\r\n * @props y - point y position\r\n * @props handlePositions - array of {x, y} coords for each handle\r\n */\n\nfunction getHandleAtPoint(props, x, y, handlePositions) {\n for (var i = 0; i < handlePositions.length; i++) {\n var dX = handlePositions[i].x - x;\n var dY = handlePositions[i].y - y;\n var dist = Math.sqrt(dX * dX + dY * dY);\n\n if (dist < props.handleRadius) {\n return i;\n }\n }\n\n return null;\n}\n\nfunction cssBorderStyles(props) {\n return {\n boxSizing: 'border-box',\n border: props.borderWidth + \"px solid \" + props.borderColor\n };\n}\nfunction cssGradient(type, direction, stops) {\n return type + \"-gradient(\" + direction + \", \" + stops.map(function (_ref) {\n var o = _ref[0],\n col = _ref[1];\n return col + \" \" + o + \"%\";\n }).join(',') + \")\";\n}\nfunction cssValue(value) {\n if (typeof value === 'string') { return value; }\n return value + \"px\";\n}\n\nvar iroColorPickerOptionDefaults = {\n width: 300,\n height: 300,\n color: '#fff',\n colors: [],\n padding: 6,\n layoutDirection: 'vertical',\n borderColor: '#fff',\n borderWidth: 0,\n handleRadius: 8,\n activeHandleRadius: null,\n handleSvg: null,\n handleProps: {\n x: 0,\n y: 0\n },\n wheelLightness: true,\n wheelAngle: 0,\n wheelDirection: 'anticlockwise',\n sliderSize: null,\n sliderMargin: 12,\n boxHeight: null\n};\n\nvar SECONDARY_EVENTS = [\"mousemove\" /* MouseMove */, \"touchmove\" /* TouchMove */, \"mouseup\" /* MouseUp */, \"touchend\" /* TouchEnd */];\r\n// Base component class for iro UI components\r\n// This extends the Preact component class to allow them to react to mouse/touch input events by themselves\r\nvar IroComponentWrapper = /*@__PURE__*/(function (Component) {\n function IroComponentWrapper(props) {\r\n Component.call(this, props);\r\n // Generate unique ID for the component\r\n // This can be used to generate unique IDs for gradients, etc\r\n this.uid = (Math.random() + 1).toString(36).substring(5);\r\n }\n\n if ( Component ) IroComponentWrapper.__proto__ = Component;\n IroComponentWrapper.prototype = Object.create( Component && Component.prototype );\n IroComponentWrapper.prototype.constructor = IroComponentWrapper;\r\n IroComponentWrapper.prototype.render = function render (props) {\r\n var eventHandler = this.handleEvent.bind(this);\r\n var rootProps = {\r\n onMouseDown: eventHandler,\r\n // https://github.com/jaames/iro.js/issues/126\r\n // https://github.com/preactjs/preact/issues/2113#issuecomment-553408767\r\n ontouchstart: eventHandler,\r\n };\r\n var isHorizontal = props.layoutDirection === 'horizontal';\r\n var margin = props.margin === null ? props.sliderMargin : props.margin;\r\n var rootStyles = {\r\n overflow: 'visible',\r\n display: isHorizontal ? 'inline-block' : 'block'\r\n };\r\n // first component shouldn't have any margin\r\n if (props.index > 0) {\r\n rootStyles[isHorizontal ? 'marginLeft' : 'marginTop'] = margin;\r\n }\r\n return (h(d, null, props.children(this.uid, rootProps, rootStyles)));\r\n };\r\n // More info on handleEvent:\r\n // https://medium.com/@WebReflection/dom-handleevent-a-cross-platform-standard-since-year-2000-5bf17287fd38\r\n // TL;DR this lets us have a single point of entry for multiple events, and we can avoid callback/binding hell\r\n IroComponentWrapper.prototype.handleEvent = function handleEvent (e) {\n var this$1 = this;\n\r\n var inputHandler = this.props.onInput;\r\n // Get the screen position of the component\r\n var bounds = this.base.getBoundingClientRect();\r\n // Prefect default browser action\r\n e.preventDefault();\r\n // Detect if the event is a touch event by checking if it has the `touches` property\r\n // If it is a touch event, use the first touch input\r\n var point = e.touches ? e.changedTouches[0] : e;\r\n var x = point.clientX - bounds.left;\r\n var y = point.clientY - bounds.top;\r\n switch (e.type) {\r\n case \"mousedown\" /* MouseDown */:\r\n case \"touchstart\" /* TouchStart */:\r\n var result = inputHandler(x, y, 0 /* Start */);\r\n if (result !== false) {\r\n SECONDARY_EVENTS.forEach(function (event) {\r\n document.addEventListener(event, this$1, { passive: false });\r\n });\r\n }\r\n break;\r\n case \"mousemove\" /* MouseMove */:\r\n case \"touchmove\" /* TouchMove */:\r\n inputHandler(x, y, 1 /* Move */);\r\n break;\r\n case \"mouseup\" /* MouseUp */:\r\n case \"touchend\" /* TouchEnd */:\r\n inputHandler(x, y, 2 /* End */);\r\n SECONDARY_EVENTS.forEach(function (event) {\r\n document.removeEventListener(event, this$1, { passive: false });\r\n });\r\n break;\r\n }\r\n };\n\n return IroComponentWrapper;\n}(m));\n\nfunction IroHandle(props) {\r\n var radius = props.r;\r\n var url = props.url;\r\n var cx = radius;\r\n var cy = radius;\r\n return (h(\"svg\", { className: (\"IroHandle IroHandle--\" + (props.index) + \" \" + (props.isActive ? 'IroHandle--isActive' : '')), style: {\r\n '-webkit-tap-highlight-color': 'rgba(0, 0, 0, 0);',\r\n transform: (\"translate(\" + (cssValue(props.x)) + \", \" + (cssValue(props.y)) + \")\"),\r\n willChange: 'transform',\r\n top: cssValue(-radius),\r\n left: cssValue(-radius),\r\n width: cssValue(radius * 2),\r\n height: cssValue(radius * 2),\r\n position: 'absolute',\r\n overflow: 'visible'\r\n } },\r\n url && (h(\"use\", Object.assign({ xlinkHref: resolveSvgUrl(url) }, props.props))),\r\n !url && (h(\"circle\", { cx: cx, cy: cy, r: radius, fill: \"none\", \"stroke-width\": 2, stroke: \"#000\" })),\r\n !url && (h(\"circle\", { cx: cx, cy: cy, r: radius - 2, fill: props.fill, \"stroke-width\": 2, stroke: \"#fff\" }))));\r\n}\r\nIroHandle.defaultProps = {\r\n fill: 'none',\r\n x: 0,\r\n y: 0,\r\n r: 8,\r\n url: null,\r\n props: { x: 0, y: 0 }\r\n};\n\nfunction IroSlider(props) {\r\n var activeIndex = props.activeIndex;\r\n var activeColor = (activeIndex !== undefined && activeIndex < props.colors.length) ? props.colors[activeIndex] : props.color;\r\n var ref = getSliderDimensions(props);\n var width = ref.width;\n var height = ref.height;\n var radius = ref.radius;\r\n var handlePos = getSliderHandlePosition(props, activeColor);\r\n var gradient = getSliderGradient(props, activeColor);\r\n function handleInput(x, y, type) {\r\n var value = getSliderValueFromInput(props, x, y);\r\n props.parent.inputActive = true;\r\n activeColor[props.sliderType] = value;\r\n props.onInput(type, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroSlider\", style: Object.assign({}, {position: 'relative',\r\n width: cssValue(width),\r\n height: cssValue(height),\r\n borderRadius: cssValue(radius),\r\n // checkered bg to represent alpha\r\n background: \"conic-gradient(#ccc 25%, #fff 0 50%, #ccc 0 75%, #fff 0)\",\r\n backgroundSize: '8px 8px'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroSliderGradient\", style: Object.assign({}, {position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: cssValue(radius),\r\n background: cssGradient('linear', props.layoutDirection === 'horizontal' ? 'to top' : 'to right', gradient)},\r\n cssBorderStyles(props)) }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePos.x, y: handlePos.y }))); }));\r\n}\r\nIroSlider.defaultProps = Object.assign({}, sliderDefaultOptions);\n\nfunction IroBox(props) {\r\n var ref = getBoxDimensions(props);\n var width = ref.width;\n var height = ref.height;\n var radius = ref.radius;\r\n var colors = props.colors;\r\n var colorPicker = props.parent;\r\n var activeIndex = props.activeIndex;\r\n var activeColor = (activeIndex !== undefined && activeIndex < props.colors.length) ? props.colors[activeIndex] : props.color;\r\n var gradients = getBoxGradients(props, activeColor);\r\n var handlePositions = colors.map(function (color) { return getBoxHandlePosition(props, color); });\r\n function handleInput(x, y, inputType) {\r\n if (inputType === 0 /* Start */) {\r\n // getHandleAtPoint() returns the index for the handle if the point 'hits' it, or null otherwise\r\n var activeHandle = getHandleAtPoint(props, x, y, handlePositions);\r\n // If the input hit a handle, set it as the active handle, but don't update the color\r\n if (activeHandle !== null) {\r\n colorPicker.setActiveColor(activeHandle);\r\n }\r\n // If the input didn't hit a handle, set the currently active handle to that position\r\n else {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getBoxValueFromInput(props, x, y);\r\n props.onInput(inputType, props.id);\r\n }\r\n }\r\n // move is fired when the user has started dragging\r\n else if (inputType === 1 /* Move */) {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getBoxValueFromInput(props, x, y);\r\n }\r\n // let the color picker fire input:start, input:move or input:end events\r\n props.onInput(inputType, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroBox\", style: Object.assign({}, {width: cssValue(width),\r\n height: cssValue(height),\r\n position: 'relative'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroBox\", style: Object.assign({}, {width: '100%',\r\n height: '100%',\r\n borderRadius: cssValue(radius)},\r\n cssBorderStyles(props),\r\n {background: cssGradient('linear', 'to bottom', gradients[1])\r\n + ',' +\r\n cssGradient('linear', 'to right', gradients[0])}) }),\r\n colors.filter(function (color) { return color !== activeColor; }).map(function (color) { return (h(IroHandle, { isActive: false, index: color.index, fill: color.hslString, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[color.index].x, y: handlePositions[color.index].y })); }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, fill: activeColor.hslString, r: props.activeHandleRadius || props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[activeColor.index].x, y: handlePositions[activeColor.index].y }))); }));\r\n}\n\nvar HUE_GRADIENT_CLOCKWISE = 'conic-gradient(red, yellow, lime, aqua, blue, magenta, red)';\r\nvar HUE_GRADIENT_ANTICLOCKWISE = 'conic-gradient(red, magenta, blue, aqua, lime, yellow, red)';\r\nfunction IroWheel(props) {\r\n var ref = getWheelDimensions(props);\n var width = ref.width;\n var colors = props.colors;\n var borderWidth = props.borderWidth;\r\n var colorPicker = props.parent;\r\n var activeColor = props.color;\r\n var hsv = activeColor.hsv;\r\n var handlePositions = colors.map(function (color) { return getWheelHandlePosition(props, color); });\r\n var circleStyles = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n boxSizing: 'border-box'\r\n };\r\n function handleInput(x, y, inputType) {\r\n if (inputType === 0 /* Start */) {\r\n // input hitbox is a square, \r\n // so we want to ignore any initial clicks outside the circular shape of the wheel\r\n if (!isInputInsideWheel(props, x, y)) {\r\n // returning false will cease all event handling for this interaction\r\n return false;\r\n }\r\n // getHandleAtPoint() returns the index for the handle if the point 'hits' it, or null otherwise\r\n var activeHandle = getHandleAtPoint(props, x, y, handlePositions);\r\n // If the input hit a handle, set it as the active handle, but don't update the color\r\n if (activeHandle !== null) {\r\n colorPicker.setActiveColor(activeHandle);\r\n }\r\n // If the input didn't hit a handle, set the currently active handle to that position\r\n else {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getWheelValueFromInput(props, x, y);\r\n props.onInput(inputType, props.id);\r\n }\r\n }\r\n // move is fired when the user has started dragging\r\n else if (inputType === 1 /* Move */) {\r\n colorPicker.inputActive = true;\r\n activeColor.hsv = getWheelValueFromInput(props, x, y);\r\n }\r\n // let the color picker fire input:start, input:move or input:end events\r\n props.onInput(inputType, props.id);\r\n }\r\n return (h(IroComponentWrapper, Object.assign({}, props, { onInput: handleInput }), function (uid, rootProps, rootStyles) { return (h(\"div\", Object.assign({}, rootProps, { className: \"IroWheel\", style: Object.assign({}, {width: cssValue(width),\r\n height: cssValue(width),\r\n position: 'relative'},\r\n rootStyles) }),\r\n h(\"div\", { className: \"IroWheelHue\", style: Object.assign({}, circleStyles,\r\n {transform: (\"rotateZ(\" + (props.wheelAngle + 90) + \"deg)\"),\r\n background: props.wheelDirection === 'clockwise' ? HUE_GRADIENT_CLOCKWISE : HUE_GRADIENT_ANTICLOCKWISE}) }),\r\n h(\"div\", { className: \"IroWheelSaturation\", style: Object.assign({}, circleStyles,\r\n {background: 'radial-gradient(circle closest-side, #fff, transparent)'}) }),\r\n props.wheelLightness && (h(\"div\", { className: \"IroWheelLightness\", style: Object.assign({}, circleStyles,\r\n {background: '#000',\r\n opacity: 1 - hsv.v / 100}) })),\r\n h(\"div\", { className: \"IroWheelBorder\", style: Object.assign({}, circleStyles,\r\n cssBorderStyles(props)) }),\r\n colors.filter(function (color) { return color !== activeColor; }).map(function (color) { return (h(IroHandle, { isActive: false, index: color.index, fill: color.hslString, r: props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[color.index].x, y: handlePositions[color.index].y })); }),\r\n h(IroHandle, { isActive: true, index: activeColor.index, fill: activeColor.hslString, r: props.activeHandleRadius || props.handleRadius, url: props.handleSvg, props: props.handleProps, x: handlePositions[activeColor.index].x, y: handlePositions[activeColor.index].y }))); }));\r\n}\n\nfunction createWidget(WidgetComponent) {\r\n var widgetFactory = function (parent, props) {\r\n var widget; // will become an instance of the widget component class\r\n var widgetRoot = document.createElement('div');\r\n // Render widget into a temp DOM node\r\n I(h(WidgetComponent, Object.assign({}, {ref: function (ref) { return widget = ref; }},\r\n props)), widgetRoot);\r\n function mountWidget() {\r\n var container = parent instanceof Element ? parent : document.querySelector(parent);\r\n container.appendChild(widget.base);\r\n widget.onMount(container);\r\n }\r\n // Mount it into the DOM when the page document is ready\r\n if (document.readyState !== 'loading') {\r\n mountWidget();\r\n }\r\n else {\r\n document.addEventListener('DOMContentLoaded', mountWidget);\r\n }\r\n return widget;\r\n };\r\n // Allow the widget factory to inherit component prototype + static class methods\r\n // This makes it easier for plugin authors to extend the base widget component\r\n widgetFactory.prototype = WidgetComponent.prototype;\r\n Object.assign(widgetFactory, WidgetComponent);\r\n // Add reference to base component too\r\n widgetFactory.__component = WidgetComponent;\r\n return widgetFactory;\r\n}\n\nvar IroColorPicker = /*@__PURE__*/(function (Component) {\n function IroColorPicker(props) {\n var this$1 = this;\n\r\n Component.call(this, props);\r\n this.colors = [];\r\n this.inputActive = false;\r\n this.events = {};\r\n this.activeEvents = {};\r\n this.deferredEvents = {};\r\n this.id = props.id;\r\n var colors = props.colors.length > 0 ? props.colors : [props.color];\r\n colors.forEach(function (colorValue) { return this$1.addColor(colorValue); });\r\n this.setActiveColor(0);\r\n // Pass all the props into the component's state,\r\n // Except we want to add the color object and make sure that refs aren't passed down to children\r\n this.state = Object.assign({}, props,\r\n {color: this.color,\r\n colors: this.colors,\r\n layout: props.layout});\r\n }\n\n if ( Component ) IroColorPicker.__proto__ = Component;\n IroColorPicker.prototype = Object.create( Component && Component.prototype );\n IroColorPicker.prototype.constructor = IroColorPicker;\r\n // Plubic multicolor API\r\n /**\r\n * @desc Add a color to the color picker\r\n * @param color new color to add\r\n * @param index optional color index\r\n */\r\n IroColorPicker.prototype.addColor = function addColor (color, index) {\n if ( index === void 0 ) index = this.colors.length;\n\r\n // Create a new iro.Color\r\n // Also bind it to onColorChange, so whenever the color changes it updates the color picker\r\n var newColor = new IroColor(color, this.onColorChange.bind(this));\r\n // Insert color @ the given index\r\n this.colors.splice(index, 0, newColor);\r\n // Reindex colors\r\n this.colors.forEach(function (color, index) { return color.index = index; });\r\n // Update picker state if necessary\r\n if (this.state) {\r\n this.setState({ colors: this.colors });\r\n }\r\n // Fire color init event\r\n this.deferredEmit('color:init', newColor);\r\n };\r\n /**\r\n * @desc Remove a color from the color picker\r\n * @param index color index\r\n */\r\n IroColorPicker.prototype.removeColor = function removeColor (index) {\r\n var color = this.colors.splice(index, 1)[0];\r\n // Destroy the color object -- this unbinds it from the color picker\r\n color.unbind();\r\n // Reindex colors\r\n this.colors.forEach(function (color, index) { return color.index = index; });\r\n // Update picker state if necessary\r\n if (this.state) {\r\n this.setState({ colors: this.colors });\r\n }\r\n // If the active color was removed, default active color to 0\r\n if (color.index === this.color.index) {\r\n this.setActiveColor(0);\r\n }\r\n // Fire color remove event\r\n this.emit('color:remove', color);\r\n };\r\n /**\r\n * @desc Set the currently active color\r\n * @param index color index\r\n */\r\n IroColorPicker.prototype.setActiveColor = function setActiveColor (index) {\r\n this.color = this.colors[index];\r\n if (this.state) {\r\n this.setState({ color: this.color });\r\n }\r\n // Fire color switch event\r\n this.emit('color:setActive', this.color);\r\n };\r\n /**\r\n * @desc Replace all of the current colorPicker colors\r\n * @param newColorValues list of new colors to add\r\n */\r\n IroColorPicker.prototype.setColors = function setColors (newColorValues, activeColorIndex) {\n var this$1 = this;\n if ( activeColorIndex === void 0 ) activeColorIndex = 0;\n\r\n // Unbind color events\r\n this.colors.forEach(function (color) { return color.unbind(); });\r\n // Destroy old colors\r\n this.colors = [];\r\n // Add new colors\r\n newColorValues.forEach(function (colorValue) { return this$1.addColor(colorValue); });\r\n // Reset active color\r\n this.setActiveColor(activeColorIndex);\r\n this.emit('color:setAll', this.colors);\r\n };\r\n // Public ColorPicker events API\r\n /**\r\n * @desc Set a callback function for an event\r\n * @param eventList event(s) to listen to\r\n * @param callback - Function called when the event is fired\r\n */\r\n IroColorPicker.prototype.on = function on (eventList, callback) {\n var this$1 = this;\n\r\n var events = this.events;\r\n // eventList can be an eventType string or an array of eventType strings\r\n (!Array.isArray(eventList) ? [eventList] : eventList).forEach(function (eventType) {\r\n // Add event callback\r\n (events[eventType] || (events[eventType] = [])).push(callback);\r\n // Call deferred events\r\n // These are events that can be stored until a listener for them is added\r\n if (this$1.deferredEvents[eventType]) {\r\n // Deffered events store an array of arguments from when the event was called\r\n this$1.deferredEvents[eventType].forEach(function (args) {\r\n callback.apply(null, args);\r\n });\r\n // Clear deferred events\r\n this$1.deferredEvents[eventType] = [];\r\n }\r\n });\r\n };\r\n /**\r\n * @desc Remove a callback function for an event added with on()\r\n * @param eventList - event(s) to listen to\r\n * @param callback - original callback function to remove\r\n */\r\n IroColorPicker.prototype.off = function off (eventList, callback) {\n var this$1 = this;\n\r\n (!Array.isArray(eventList) ? [eventList] : eventList).forEach(function (eventType) {\r\n var callbackList = this$1.events[eventType];\r\n // this.emitHook('event:off', eventType, callback);\r\n if (callbackList)\r\n { callbackList.splice(callbackList.indexOf(callback), 1); }\r\n });\r\n };\r\n /**\r\n * @desc Emit an event\r\n * @param eventType event to emit\r\n */\r\n IroColorPicker.prototype.emit = function emit (eventType) {\n var this$1 = this;\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\r\n var activeEvents = this.activeEvents;\r\n var isEventActive = activeEvents.hasOwnProperty(eventType) ? activeEvents[eventType] : false;\r\n // Prevent event callbacks from firing if the event is already active\r\n // This stops infinite loops if something in an event callback causes the same event to be fired again\r\n // (e.g. setting the color inside a color:change callback)\r\n if (!isEventActive) {\r\n activeEvents[eventType] = true;\r\n var callbackList = this.events[eventType] || [];\r\n callbackList.forEach(function (fn) { return fn.apply(this$1, args); });\r\n activeEvents[eventType] = false;\r\n }\r\n };\r\n /**\r\n * @desc Emit an event now, or save it for when the relevent event listener is added\r\n * @param eventType - The name of the event to emit\r\n */\r\n IroColorPicker.prototype.deferredEmit = function deferredEmit (eventType) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\r\n var deferredEvents = this.deferredEvents;\r\n (ref = this).emit.apply(ref, [ eventType ].concat( args ));\r\n (deferredEvents[eventType] || (deferredEvents[eventType] = [])).push(args);\r\n };\r\n // Public utility methods\r\n IroColorPicker.prototype.setOptions = function setOptions (newOptions) {\r\n this.setState(newOptions);\r\n };\r\n /**\r\n * @desc Resize the color picker\r\n * @param width - new width\r\n */\r\n IroColorPicker.prototype.resize = function resize (width) {\r\n this.setOptions({ width: width });\r\n };\r\n /**\r\n * @desc Reset the color picker to the initial color provided in the color picker options\r\n */\r\n IroColorPicker.prototype.reset = function reset () {\r\n this.colors.forEach(function (color) { return color.reset(); });\r\n this.setState({ colors: this.colors });\r\n };\r\n /**\r\n * @desc Called by the createWidget wrapper when the element is mounted into the page\r\n * @param container - the container element for this ColorPicker instance\r\n */\r\n IroColorPicker.prototype.onMount = function onMount (container) {\r\n this.el = container;\r\n this.deferredEmit('mount', this);\r\n };\r\n // Internal methods\r\n /**\r\n * @desc React to a color update\r\n * @param color - current color\r\n * @param changes - shows which h,s,v,a color channels changed\r\n */\r\n IroColorPicker.prototype.onColorChange = function onColorChange (color, changes) {\r\n this.setState({ color: this.color });\r\n if (this.inputActive) {\r\n this.inputActive = false;\r\n this.emit('input:change', color, changes);\r\n }\r\n this.emit('color:change', color, changes);\r\n };\r\n /**\r\n * @desc Handle input from a UI control element\r\n * @param type - event type\r\n */\r\n IroColorPicker.prototype.emitInputEvent = function emitInputEvent (type, originId) {\r\n if (type === 0 /* Start */) {\r\n this.emit('input:start', this.color, originId);\r\n }\r\n else if (type === 1 /* Move */) {\r\n this.emit('input:move', this.color, originId);\r\n }\r\n else if (type === 2 /* End */) {\r\n this.emit('input:end', this.color, originId);\r\n }\r\n };\r\n IroColorPicker.prototype.render = function render (props, state) {\n var this$1 = this;\n\r\n var layout = state.layout;\r\n // use layout shorthands\r\n if (!Array.isArray(layout)) {\r\n switch (layout) {\r\n // TODO: implement some?\r\n default:\r\n layout = [\r\n { component: IroWheel },\r\n { component: IroSlider } ];\r\n }\r\n // add transparency slider to the layout\r\n if (state.transparency) {\r\n layout.push({\r\n component: IroSlider,\r\n options: {\r\n sliderType: 'alpha'\r\n }\r\n });\r\n }\r\n }\r\n return (h(\"div\", { class: \"IroColorPicker\", id: state.id, style: {\r\n display: state.display\r\n } }, layout.map(function (ref, componentIndex) {\n var UiComponent = ref.component;\n var options = ref.options;\n\n return (h(UiComponent, Object.assign({}, state, options, { ref: undefined, onInput: this$1.emitInputEvent.bind(this$1), parent: this$1, index: componentIndex })));\n })));\r\n };\n\n return IroColorPicker;\n}(m));\r\nIroColorPicker.defaultProps = Object.assign({}, iroColorPickerOptionDefaults,\r\n {colors: [],\r\n display: 'block',\r\n id: null,\r\n layout: 'default',\r\n margin: null});\r\nvar IroColorPickerWidget = createWidget(IroColorPicker);\n\nvar iro;\r\n(function (iro) {\r\n iro.version = \"5.5.2\"; // replaced by @rollup/plugin-replace; see rollup.config.js\r\n iro.Color = IroColor;\r\n iro.ColorPicker = IroColorPickerWidget;\r\n var ui;\r\n (function (ui) {\r\n ui.h = h;\r\n ui.ComponentBase = IroComponentWrapper;\r\n ui.Handle = IroHandle;\r\n ui.Slider = IroSlider;\r\n ui.Wheel = IroWheel;\r\n ui.Box = IroBox;\r\n })(ui = iro.ui || (iro.ui = {}));\r\n})(iro || (iro = {}));\r\nvar iro$1 = iro;\n\nexport default iro$1;\n"],"names":["n","u","t","i","r","f","e","c","s","l","a","h","o","v","d","y","m","w","g","k","_","$","j","b","p","x","D","C","N","P","T","H","z","A","I","_defineProperties","target","props","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","arguments$1","source","key","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH_3","PERMISSIVE_MATCH_4","REGEX_FUNCTIONAL_RGB","REGEX_FUNCTIONAL_RGBA","REGEX_FUNCTIONAL_HSL","REGEX_FUNCTIONAL_HSLA","HEX_START","HEX_INT_SINGLE","HEX_INT_DOUBLE","REGEX_HEX_3","REGEX_HEX_4","REGEX_HEX_6","REGEX_HEX_8","KELVIN_MIN","KELVIN_MAX","log","round","floor","clamp","num","min","max","parseUnit","str","isPercentage","parseHexInt","intToHex","_int","IroColor","value","onChange","_proto","format","channel","_extends2","hsv","q","mod","rgb","delta","hue","saturation","divisor","hsl","kelvin","temp","eps","minTemp","maxTemp","_rgb","newValue","oldValue","changes","_IroColor$hsvToRgb","_IroColor$hsvToHsl","match","rgba","hsla","sliderDefaultOptions","getSliderDimensions","_sliderSize","width","sliderSize","borderWidth","handleRadius","padding","sliderShape","ishorizontal","getCurrentSliderValue","color","hsva","minTemperature","maxTemperature","temperatureRange","percent","getSliderValueFromInput","_getSliderDimensions","handleRange","handleStart","handlePos","getSliderHandlePosition","_getSliderDimensions2","height","sliderValue","midPoint","getSliderGradient","stops","numStops","range","stop","_IroColor$kelvinToRgb","noSat","fullSat","TAU","dist","getHandleRange","isInputInsideWheel","_getWheelDimensions","getWheelDimensions","cx","cy","translateWheelAngle","angle","invert","wheelAngle","wheelDirection","getWheelHandlePosition","_getWheelDimensions2","handleAngle","handleDist","direction","getWheelValueFromInput","_getWheelDimensions3","getBoxDimensions","boxHeight","getBoxValueFromInput","_getBoxDimensions","radius","handleRangeX","handleRangeY","percentX","percentY","getBoxHandlePosition","_getBoxDimensions2","getBoxGradients","BASE_ELEMENTS","resolveSvgUrl","url","ua","isSafari","isIos","location","getHandleAtPoint","handlePositions","dX","dY","cssBorderStyles","cssGradient","type","_ref","col","cssValue","iroColorPickerOptionDefaults","SECONDARY_EVENTS","IroComponentWrapper","Component","eventHandler","rootProps","isHorizontal","margin","rootStyles","this$1","inputHandler","bounds","point","result","event","IroHandle","IroSlider","activeIndex","activeColor","ref","gradient","handleInput","uid","IroBox","colors","colorPicker","gradients","inputType","activeHandle","HUE_GRADIENT_CLOCKWISE","HUE_GRADIENT_ANTICLOCKWISE","IroWheel","circleStyles","createWidget","WidgetComponent","widgetFactory","parent","widget","widgetRoot","mountWidget","container","IroColorPicker","colorValue","index","newColor","newColorValues","activeColorIndex","eventList","callback","events","eventType","args","callbackList","len","activeEvents","isEventActive","fn","deferredEvents","newOptions","originId","state","layout","componentIndex","UiComponent","options","IroColorPickerWidget","iro","ui","iro$1"],"mappings":"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","x_google_ignoreList":[0]}