{"version":3,"file":"coloris-library.min.js","sources":["https:\/\/www.feeacademy.global\/theme\/norse\/amd\/src\/coloris-library.js"],"sourcesContent":["\/*!\n* Copyright (c) 2021 Momo Bassit.\n* Licensed under the MIT License (MIT)\n* https:\/\/github.com\/mdbassit\/Coloris\n*\/\ndefine(function () {\nreturn function (window, document, Math, undefined) {\n var ctx = document.createElement('canvas').getContext('2d');\n var currentColor = { r: 0, g: 0, b: 0, h: 0, s: 0, v: 0, a: 1 };\n var container,picker,colorArea,colorMarker,colorPreview,colorValue,clearButton,closeButton,\n hueSlider,hueMarker,alphaSlider,alphaMarker,currentEl,currentFormat,oldColor,keyboardNav,\n colorAreaDims = {};\n\n \/\/ Default settings\n var settings = {\n el: '[data-coloris]',\n parent: 'body',\n theme: 'default',\n themeMode: 'light',\n rtl: false,\n wrap: true,\n margin: 2,\n format: 'hex',\n formatToggle: false,\n swatches: [],\n swatchesOnly: false,\n alpha: true,\n forceAlpha: false,\n focusInput: true,\n selectInput: false,\n inline: false,\n defaultColor: '#000000',\n clearButton: false,\n clearLabel: 'Clear',\n closeButton: false,\n closeLabel: 'Close',\n onChange: function onChange() {return undefined;},\n a11y: {\n open: 'Open color picker',\n close: 'Close color picker',\n clear: 'Clear the selected color',\n marker: 'Saturation: {s}. Brightness: {v}.',\n hueSlider: 'Hue slider',\n alphaSlider: 'Opacity slider',\n input: 'Color value field',\n format: 'Color format',\n swatch: 'Color swatch',\n instruction: 'Saturation and brightness selector. Use up, down, left and right arrow keys to select.' } };\n\n\n\n \/\/ Virtual instances cache\n var instances = {};\n var currentInstanceId = '';\n var defaultInstance = {};\n var hasInstance = false;\n\n \/**\n * Configure the color picker.\n * @param {object} options Configuration options.\n *\/\n function configure(options) {\n if (typeof options !== 'object') {\n return;\n }\n\n for (var key in options) {\n switch (key) {\n case 'el':\n bindFields(options.el);\n if (options.wrap !== false) {\n wrapFields(options.el);\n }\n break;\n case 'parent':\n container = document.querySelector(options.parent);\n if (container) {\n container.appendChild(picker);\n settings.parent = options.parent;\n\n \/\/ document.body is special\n if (container === document.body) {\n container = undefined;\n }\n }\n break;\n case 'themeMode':\n settings.themeMode = options.themeMode;\n if (options.themeMode === 'auto' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n settings.themeMode = 'dark';\n }\n \/\/ The lack of a break statement is intentional\n case 'theme':\n if (options.theme) {\n settings.theme = options.theme;\n }\n\n \/\/ Set the theme and color scheme\n picker.className = \"clr-picker clr-\" + settings.theme + \" clr-\" + settings.themeMode;\n\n \/\/ Update the color picker's position if inline mode is in use\n if (settings.inline) {\n updatePickerPosition();\n }\n break;\n case 'rtl':\n settings.rtl = !!options.rtl;\n document.querySelectorAll('.clr-field').forEach(function (field) {return field.classList.toggle('clr-rtl', settings.rtl);});\n break;\n case 'margin':\n options.margin *= 1;\n settings.margin = !isNaN(options.margin) ? options.margin : settings.margin;\n break;\n case 'wrap':\n if (options.el && options.wrap) {\n wrapFields(options.el);\n }\n break;\n case 'formatToggle':\n settings.formatToggle = !!options.formatToggle;\n getEl('clr-format').style.display = settings.formatToggle ? 'block' : 'none';\n if (settings.formatToggle) {\n settings.format = 'auto';\n }\n break;\n case 'swatches':\n if (Array.isArray(options.swatches)) {(function () {\n var swatches = [];\n\n options.swatches.forEach(function (swatch, i) {\n swatches.push(\"