{"version":3,"file":"vendor-BQRTIalW.js","sources":["../../../node_modules/.pnpm/vanilla-picker@2.12.3/node_modules/vanilla-picker/dist/vanilla-picker.mjs","../../../node_modules/.pnpm/remeda@2.18.0/node_modules/remeda/dist/chunk-OIQJEOF7.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper-lite.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/core/utils.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/core/action-details.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/core/holder.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/factory.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/controls/mask-element.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/controls/html-mask-element.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/controls/html-input-mask-element.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/controls/html-contenteditable-mask-element.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/controls/input-history.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/controls/input.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/core/change-details.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/core/continuous-tail-details.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/base.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/pattern/chunk-tail-details.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/pattern/cursor.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/pattern/fixed-definition.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/pattern/input-definition.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/regexp.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/pattern.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/range.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/date.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/dynamic.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/enum.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/function.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/number.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/pipe.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/masked/repeat.js","../../../node_modules/.pnpm/imask@7.6.1/node_modules/imask/esm/index.js","../../../node_modules/.pnpm/ev-emitter@1.1.1/node_modules/ev-emitter/ev-emitter.js","../../../node_modules/.pnpm/get-size@2.0.3/node_modules/get-size/get-size.js","../../../node_modules/.pnpm/desandro-matches-selector@2.0.2/node_modules/desandro-matches-selector/matches-selector.js","../../../node_modules/.pnpm/fizzy-ui-utils@2.0.7/node_modules/fizzy-ui-utils/utils.js","../../../node_modules/.pnpm/outlayer@2.1.1/node_modules/outlayer/item.js","../../../node_modules/.pnpm/outlayer@2.1.1/node_modules/outlayer/outlayer.js","../../../node_modules/.pnpm/masonry-layout@4.2.2/node_modules/masonry-layout/masonry.js","../../../node_modules/.pnpm/ev-emitter@2.1.2/node_modules/ev-emitter/ev-emitter.js","../../../node_modules/.pnpm/imagesloaded@5.0.0/node_modules/imagesloaded/imagesloaded.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/config.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/Observable.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/Subject.js","../../../node_modules/.pnpm/sortablejs@1.15.6/node_modules/sortablejs/modular/sortable.esm.js","../../../node_modules/.pnpm/@remotedevforce+tom-select@2.2.8/node_modules/@remotedevforce/tom-select/dist/esm/tom-select.complete.js","../../../node_modules/.pnpm/@rails+actiontext@8.0.100_trix@2.1.10/node_modules/@rails/actiontext/app/assets/javascripts/actiontext.esm.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/adapters.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/logger.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/connection_monitor.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/internal.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/connection.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/subscription.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/subscription_guarantor.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/subscriptions.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/consumer.js","../../../node_modules/.pnpm/@rails+actioncable@7.2.201/node_modules/@rails/actioncable/src/index.js"],"sourcesContent":["/*!\n * vanilla-picker v2.12.3\n * https://vanilla-picker.js.org\n *\n * Copyright 2017-2024 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate)\n * Released under the ISC license.\n */\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nString.prototype.startsWith = String.prototype.startsWith || function (needle) {\n return this.indexOf(needle) === 0;\n};\nString.prototype.padStart = String.prototype.padStart || function (len, pad) {\n var str = this;while (str.length < len) {\n str = pad + str;\n }return str;\n};\n\nvar colorNames = { cb: '0f8ff', tqw: 'aebd7', q: '-ffff', qmrn: '7fffd4', zr: '0ffff', bg: '5f5dc', bsq: 'e4c4', bck: '---', nch: 'ebcd', b: '--ff', bvt: '8a2be2', brwn: 'a52a2a', brw: 'deb887', ctb: '5f9ea0', hrt: '7fff-', chcT: 'd2691e', cr: '7f50', rnw: '6495ed', crns: '8dc', crms: 'dc143c', cn: '-ffff', Db: '--8b', Dcn: '-8b8b', Dgnr: 'b8860b', Dgr: 'a9a9a9', Dgrn: '-64-', Dkhk: 'bdb76b', Dmgn: '8b-8b', Dvgr: '556b2f', Drng: '8c-', Drch: '9932cc', Dr: '8b--', Dsmn: 'e9967a', Dsgr: '8fbc8f', DsTb: '483d8b', DsTg: '2f4f4f', Dtrq: '-ced1', Dvt: '94-d3', ppnk: '1493', pskb: '-bfff', mgr: '696969', grb: '1e90ff', rbrc: 'b22222', rwht: 'af0', stg: '228b22', chs: '-ff', gnsb: 'dcdcdc', st: '8f8ff', g: 'd7-', gnr: 'daa520', gr: '808080', grn: '-8-0', grnw: 'adff2f', hnw: '0fff0', htpn: '69b4', nnr: 'cd5c5c', ng: '4b-82', vr: '0', khk: '0e68c', vnr: 'e6e6fa', nrb: '0f5', wngr: '7cfc-', mnch: 'acd', Lb: 'add8e6', Lcr: '08080', Lcn: 'e0ffff', Lgnr: 'afad2', Lgr: 'd3d3d3', Lgrn: '90ee90', Lpnk: 'b6c1', Lsmn: 'a07a', Lsgr: '20b2aa', Lskb: '87cefa', LsTg: '778899', Lstb: 'b0c4de', Lw: 'e0', m: '-ff-', mgrn: '32cd32', nn: 'af0e6', mgnt: '-ff', mrn: '8--0', mqm: '66cdaa', mmb: '--cd', mmrc: 'ba55d3', mmpr: '9370db', msg: '3cb371', mmsT: '7b68ee', '': '-fa9a', mtr: '48d1cc', mmvt: 'c71585', mnLb: '191970', ntc: '5fffa', mstr: 'e4e1', mccs: 'e4b5', vjw: 'dead', nv: '--80', c: 'df5e6', v: '808-0', vrb: '6b8e23', rng: 'a5-', rngr: '45-', rch: 'da70d6', pgnr: 'eee8aa', pgrn: '98fb98', ptrq: 'afeeee', pvtr: 'db7093', ppwh: 'efd5', pchp: 'dab9', pr: 'cd853f', pnk: 'c0cb', pm: 'dda0dd', pwrb: 'b0e0e6', prp: '8-080', cc: '663399', r: '--', sbr: 'bc8f8f', rb: '4169e1', sbrw: '8b4513', smn: 'a8072', nbr: '4a460', sgrn: '2e8b57', ssh: '5ee', snn: 'a0522d', svr: 'c0c0c0', skb: '87ceeb', sTb: '6a5acd', sTgr: '708090', snw: 'afa', n: '-ff7f', stb: '4682b4', tn: 'd2b48c', t: '-8080', thst: 'd8bfd8', tmT: '6347', trqs: '40e0d0', vt: 'ee82ee', whT: '5deb3', wht: '', hts: '5f5f5', w: '-', wgrn: '9acd32' };\n\nfunction printNum(num) {\n var decs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var str = decs > 0 ? num.toFixed(decs).replace(/0+$/, '').replace(/\\.$/, '') : num.toString();\n return str || '0';\n}\n\nvar Color = function () {\n function Color(r, g, b, a) {\n classCallCheck(this, Color);\n\n\n var that = this;\n function parseString(input) {\n\n if (input.startsWith('hsl')) {\n var _input$match$map = input.match(/([\\-\\d\\.e]+)/g).map(Number),\n _input$match$map2 = slicedToArray(_input$match$map, 4),\n h = _input$match$map2[0],\n s = _input$match$map2[1],\n l = _input$match$map2[2],\n _a = _input$match$map2[3];\n\n if (_a === undefined) {\n _a = 1;\n }\n\n h /= 360;\n s /= 100;\n l /= 100;\n that.hsla = [h, s, l, _a];\n } else if (input.startsWith('rgb')) {\n var _input$match$map3 = input.match(/([\\-\\d\\.e]+)/g).map(Number),\n _input$match$map4 = slicedToArray(_input$match$map3, 4),\n _r = _input$match$map4[0],\n _g = _input$match$map4[1],\n _b = _input$match$map4[2],\n _a2 = _input$match$map4[3];\n\n if (_a2 === undefined) {\n _a2 = 1;\n }\n\n that.rgba = [_r, _g, _b, _a2];\n } else {\n if (input.startsWith('#')) {\n that.rgba = Color.hexToRgb(input);\n } else {\n that.rgba = Color.nameToRgb(input) || Color.hexToRgb(input);\n }\n }\n }\n\n if (r === undefined) ; else if (Array.isArray(r)) {\n this.rgba = r;\n } else if (b === undefined) {\n var color = r && '' + r;\n if (color) {\n parseString(color.toLowerCase());\n }\n } else {\n this.rgba = [r, g, b, a === undefined ? 1 : a];\n }\n }\n\n createClass(Color, [{\n key: 'printRGB',\n value: function printRGB(alpha) {\n var rgb = alpha ? this.rgba : this.rgba.slice(0, 3),\n vals = rgb.map(function (x, i) {\n return printNum(x, i === 3 ? 3 : 0);\n });\n\n return alpha ? 'rgba(' + vals + ')' : 'rgb(' + vals + ')';\n }\n }, {\n key: 'printHSL',\n value: function printHSL(alpha) {\n var mults = [360, 100, 100, 1],\n suff = ['', '%', '%', ''];\n\n var hsl = alpha ? this.hsla : this.hsla.slice(0, 3),\n vals = hsl.map(function (x, i) {\n return printNum(x * mults[i], i === 3 ? 3 : 1) + suff[i];\n });\n\n return alpha ? 'hsla(' + vals + ')' : 'hsl(' + vals + ')';\n }\n }, {\n key: 'printHex',\n value: function printHex(alpha) {\n var hex = this.hex;\n return alpha ? hex : hex.substring(0, 7);\n }\n }, {\n key: 'rgba',\n get: function get() {\n if (this._rgba) {\n return this._rgba;\n }\n if (!this._hsla) {\n throw new Error('No color is set');\n }\n\n return this._rgba = Color.hslToRgb(this._hsla);\n },\n set: function set(rgb) {\n if (rgb.length === 3) {\n rgb[3] = 1;\n }\n\n this._rgba = rgb;\n this._hsla = null;\n }\n }, {\n key: 'rgbString',\n get: function get() {\n return this.printRGB();\n }\n }, {\n key: 'rgbaString',\n get: function get() {\n return this.printRGB(true);\n }\n }, {\n key: 'hsla',\n get: function get() {\n if (this._hsla) {\n return this._hsla;\n }\n if (!this._rgba) {\n throw new Error('No color is set');\n }\n\n return this._hsla = Color.rgbToHsl(this._rgba);\n },\n set: function set(hsl) {\n if (hsl.length === 3) {\n hsl[3] = 1;\n }\n\n this._hsla = hsl;\n this._rgba = null;\n }\n }, {\n key: 'hslString',\n get: function get() {\n return this.printHSL();\n }\n }, {\n key: 'hslaString',\n get: function get() {\n return this.printHSL(true);\n }\n }, {\n key: 'hex',\n get: function get() {\n var rgb = this.rgba,\n hex = rgb.map(function (x, i) {\n return i < 3 ? x.toString(16) : Math.round(x * 255).toString(16);\n });\n\n return '#' + hex.map(function (x) {\n return x.padStart(2, '0');\n }).join('');\n },\n set: function set(hex) {\n this.rgba = Color.hexToRgb(hex);\n }\n }], [{\n key: 'hexToRgb',\n value: function hexToRgb(input) {\n\n var hex = (input.startsWith('#') ? input.slice(1) : input).replace(/^(\\w{3})$/, '$1F').replace(/^(\\w)(\\w)(\\w)(\\w)$/, '$1$1$2$2$3$3$4$4').replace(/^(\\w{6})$/, '$1FF');\n\n if (!hex.match(/^([0-9a-fA-F]{8})$/)) {\n throw new Error('Unknown hex color; ' + input);\n }\n\n var rgba = hex.match(/^(\\w\\w)(\\w\\w)(\\w\\w)(\\w\\w)$/).slice(1).map(function (x) {\n return parseInt(x, 16);\n });\n\n rgba[3] = rgba[3] / 255;\n return rgba;\n }\n }, {\n key: 'nameToRgb',\n value: function nameToRgb(input) {\n\n var hash = input.toLowerCase().replace('at', 'T').replace(/[aeiouyldf]/g, '').replace('ght', 'L').replace('rk', 'D').slice(-5, 4),\n hex = colorNames[hash];\n return hex === undefined ? hex : Color.hexToRgb(hex.replace(/\\-/g, '00').padStart(6, 'f'));\n }\n }, {\n key: 'rgbToHsl',\n value: function rgbToHsl(_ref) {\n var _ref2 = slicedToArray(_ref, 4),\n r = _ref2[0],\n g = _ref2[1],\n b = _ref2[2],\n a = _ref2[3];\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h = void 0,\n s = void 0,\n l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);break;\n case g:\n h = (b - r) / d + 2;break;\n case b:\n h = (r - g) / d + 4;break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, a];\n }\n }, {\n key: 'hslToRgb',\n value: function hslToRgb(_ref3) {\n var _ref4 = slicedToArray(_ref3, 4),\n h = _ref4[0],\n s = _ref4[1],\n l = _ref4[2],\n a = _ref4[3];\n\n var r = void 0,\n g = void 0,\n b = void 0;\n\n if (s === 0) {\n r = g = b = l;\n } else {\n var hue2rgb = function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s,\n p = 2 * l - q;\n\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n var rgba = [r * 255, g * 255, b * 255].map(Math.round);\n rgba[3] = a;\n\n return rgba;\n }\n }]);\n return Color;\n}();\n\nvar EventBucket = function () {\n function EventBucket() {\n classCallCheck(this, EventBucket);\n\n this._events = [];\n }\n\n createClass(EventBucket, [{\n key: 'add',\n value: function add(target, type, handler) {\n target.addEventListener(type, handler, false);\n this._events.push({\n target: target,\n type: type,\n handler: handler\n });\n }\n }, {\n key: 'remove',\n value: function remove(target, type, handler) {\n this._events = this._events.filter(function (e) {\n var isMatch = true;\n if (target && target !== e.target) {\n isMatch = false;\n }\n if (type && type !== e.type) {\n isMatch = false;\n }\n if (handler && handler !== e.handler) {\n isMatch = false;\n }\n\n if (isMatch) {\n EventBucket._doRemove(e.target, e.type, e.handler);\n }\n return !isMatch;\n });\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this._events.forEach(function (e) {\n return EventBucket._doRemove(e.target, e.type, e.handler);\n });\n this._events = [];\n }\n }], [{\n key: '_doRemove',\n value: function _doRemove(target, type, handler) {\n target.removeEventListener(type, handler, false);\n }\n }]);\n return EventBucket;\n}();\n\nfunction parseHTML(htmlString) {\n\n var div = document.createElement('div');\n div.innerHTML = htmlString;\n return div.firstElementChild;\n}\n\nfunction dragTrack(eventBucket, area, callback) {\n var dragging = false;\n\n function clamp(val, min, max) {\n return Math.max(min, Math.min(val, max));\n }\n\n function onMove(e, info, starting) {\n if (starting) {\n dragging = true;\n }\n if (!dragging) {\n return;\n }\n\n e.preventDefault();\n\n var bounds = area.getBoundingClientRect(),\n w = bounds.width,\n h = bounds.height,\n x = info.clientX,\n y = info.clientY;\n\n var relX = clamp(x - bounds.left, 0, w),\n relY = clamp(y - bounds.top, 0, h);\n\n callback(relX / w, relY / h);\n }\n\n function onMouse(e, starting) {\n var button = e.buttons === undefined ? e.which : e.buttons;\n if (button === 1) {\n onMove(e, e, starting);\n } else {\n dragging = false;\n }\n }\n\n function onTouch(e, starting) {\n if (e.touches.length === 1) {\n onMove(e, e.touches[0], starting);\n } else {\n dragging = false;\n }\n }\n\n eventBucket.add(area, 'mousedown', function (e) {\n onMouse(e, true);\n });\n eventBucket.add(area, 'touchstart', function (e) {\n onTouch(e, true);\n });\n eventBucket.add(window, 'mousemove', onMouse);\n eventBucket.add(area, 'touchmove', onTouch);\n eventBucket.add(window, 'mouseup', function (e) {\n dragging = false;\n });\n eventBucket.add(area, 'touchend', function (e) {\n dragging = false;\n });\n eventBucket.add(area, 'touchcancel', function (e) {\n dragging = false;\n });\n}\n\nvar BG_TRANSP = 'linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,\\n linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em';\nvar HUES = 360;\n\nvar EVENT_KEY = 'keydown',\n EVENT_CLICK_OUTSIDE = 'mousedown',\n EVENT_TAB_MOVE = 'focusin';\n\nfunction $(selector, context) {\n return (context || document).querySelector(selector);\n}\n\nfunction stopEvent(e) {\n\n e.preventDefault();\n e.stopPropagation();\n}\nfunction onKey(bucket, target, keys, handler, stop) {\n bucket.add(target, EVENT_KEY, function (e) {\n if (keys.indexOf(e.key) >= 0) {\n if (stop) {\n stopEvent(e);\n }\n handler(e);\n }\n });\n}\n\nvar Picker = function () {\n function Picker(options) {\n classCallCheck(this, Picker);\n\n\n this.settings = {\n\n popup: 'right',\n layout: 'default',\n alpha: true,\n editor: true,\n editorFormat: 'hex',\n cancelButton: false,\n defaultColor: '#0cf'\n };\n\n this._events = new EventBucket();\n\n this.onChange = null;\n\n this.onDone = null;\n\n this.onOpen = null;\n\n this.onClose = null;\n\n this.setOptions(options);\n }\n\n createClass(Picker, [{\n key: 'setOptions',\n value: function setOptions(options) {\n var _this = this;\n\n if (!options) {\n return;\n }\n var settings = this.settings;\n\n function transfer(source, target, skipKeys) {\n for (var key in source) {\n if (skipKeys && skipKeys.indexOf(key) >= 0) {\n continue;\n }\n\n target[key] = source[key];\n }\n }\n\n if (options instanceof HTMLElement) {\n settings.parent = options;\n } else {\n\n if (settings.parent && options.parent && settings.parent !== options.parent) {\n this._events.remove(settings.parent);\n this._popupInited = false;\n }\n\n transfer(options, settings);\n\n if (options.onChange) {\n this.onChange = options.onChange;\n }\n if (options.onDone) {\n this.onDone = options.onDone;\n }\n if (options.onOpen) {\n this.onOpen = options.onOpen;\n }\n if (options.onClose) {\n this.onClose = options.onClose;\n }\n\n var col = options.color || options.colour;\n if (col) {\n this._setColor(col);\n }\n }\n\n var parent = settings.parent;\n if (parent && settings.popup && !this._popupInited) {\n\n var openProxy = function openProxy(e) {\n return _this.openHandler(e);\n };\n\n this._events.add(parent, 'click', openProxy);\n\n onKey(this._events, parent, [' ', 'Spacebar', 'Enter'], openProxy);\n\n this._popupInited = true;\n } else if (options.parent && !settings.popup) {\n this.show();\n }\n }\n }, {\n key: 'openHandler',\n value: function openHandler(e) {\n if (this.show()) {\n\n e && e.preventDefault();\n\n this.settings.parent.style.pointerEvents = 'none';\n\n var toFocus = e && e.type === EVENT_KEY ? this._domEdit : this.domElement;\n setTimeout(function () {\n return toFocus.focus();\n }, 100);\n\n if (this.onOpen) {\n this.onOpen(this.colour);\n }\n }\n }\n }, {\n key: 'closeHandler',\n value: function closeHandler(e) {\n var event = e && e.type;\n var doHide = false;\n\n if (!e) {\n doHide = true;\n } else if (event === EVENT_CLICK_OUTSIDE || event === EVENT_TAB_MOVE) {\n\n var knownTime = (this.__containedEvent || 0) + 100;\n if (e.timeStamp > knownTime) {\n doHide = true;\n }\n } else {\n\n stopEvent(e);\n\n doHide = true;\n }\n\n if (doHide && this.hide()) {\n this.settings.parent.style.pointerEvents = '';\n\n if (event !== EVENT_CLICK_OUTSIDE) {\n this.settings.parent.focus();\n }\n\n if (this.onClose) {\n this.onClose(this.colour);\n }\n }\n }\n }, {\n key: 'movePopup',\n value: function movePopup(options, open) {\n\n this.closeHandler();\n\n this.setOptions(options);\n if (open) {\n this.openHandler();\n }\n }\n }, {\n key: 'setColor',\n value: function setColor(color, silent) {\n this._setColor(color, { silent: silent });\n }\n }, {\n key: '_setColor',\n value: function _setColor(color, flags) {\n if (typeof color === 'string') {\n color = color.trim();\n }\n if (!color) {\n return;\n }\n\n flags = flags || {};\n var c = void 0;\n try {\n\n c = new Color(color);\n } catch (ex) {\n if (flags.failSilently) {\n return;\n }\n throw ex;\n }\n\n if (!this.settings.alpha) {\n var hsla = c.hsla;\n hsla[3] = 1;\n c.hsla = hsla;\n }\n this.colour = this.color = c;\n this._setHSLA(null, null, null, null, flags);\n }\n }, {\n key: 'setColour',\n value: function setColour(colour, silent) {\n this.setColor(colour, silent);\n }\n }, {\n key: 'show',\n value: function show() {\n var parent = this.settings.parent;\n if (!parent) {\n return false;\n }\n\n if (this.domElement) {\n var toggled = this._toggleDOM(true);\n\n this._setPosition();\n\n return toggled;\n }\n\n var html = this.settings.template || '