From 06caf484691813ed2c29b01733730e22ca1649a6 Mon Sep 17 00:00:00 2001 From: George Wilson Date: Sun, 7 Dec 2025 11:27:17 +0000 Subject: [PATCH] Migrate the color picker away from jquery --- assets/js/color-select.js | 257 ++++++- package-lock.json | 840 ++------------------- package.json | 1 - templates/github/labels.index.twig | 1 - templates/tracker/category.add.twig | 1 - templates/tracker/category.edit.twig | 1 - webpack.mix.js | 3 - www/media/js/color-select.js | 2 +- www/media/js/vendor/jquery-simple-color.js | 1 - www/media/mix-manifest.json | 1 - 10 files changed, 309 insertions(+), 799 deletions(-) delete mode 100644 www/media/js/vendor/jquery-simple-color.js diff --git a/assets/js/color-select.js b/assets/js/color-select.js index d72fd0852..71b6b352e 100644 --- a/assets/js/color-select.js +++ b/assets/js/color-select.js @@ -3,8 +3,256 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -$(document).ready(function() { - $('.color_select').simpleColor({ +class SimpleColor { + constructor(element, options = {}) { + this.element = element; + this.options = this.mergeOptions(options); + this.init(); + } + + mergeOptions(options) { + const defaults = { + defaultColor: this.element.getAttribute('defaultColor') || '#FFF', + cellWidth: parseInt(this.element.getAttribute('cellWidth')) || 25, + cellHeight: parseInt(this.element.getAttribute('cellHeight')) || 25, + cellMargin: parseInt(this.element.getAttribute('cellMargin')) || 0, + boxWidth: this.element.getAttribute('boxWidth') || '25px', + boxHeight: this.element.getAttribute('boxHeight') || '25px', + columns: parseInt(this.element.getAttribute('columns')) || 8, + insert: this.element.getAttribute('insert') || 'after', + colors: [ + '990033', 'ff3366', 'cc0033', 'ff0033', 'ff9999', 'cc3366', 'ffccff', 'cc6699', + '993366', '660033', 'cc3399', 'ff99cc', 'ff66cc', 'ff99ff', 'ff6699', 'cc0066', + 'ff0066', 'ff3399', 'ff0099', 'ff33cc', 'ff00cc', 'ff66ff', 'ff33ff', 'ff00ff', + 'cc0099', '990066', 'cc66cc', 'cc33cc', 'cc99ff', 'cc66ff', 'cc33ff', '993399', + 'cc00cc', 'cc00ff', '9900cc', '990099', 'cc99cc', '996699', '663366', '660099', + '9933cc', '660066', '9900ff', '9933ff', '9966cc', '330033', '663399', '6633cc', + '6600cc', '9966ff', '330066', '6600ff', '6633ff', 'ccccff', '9999ff', '9999cc', + '6666cc', '6666ff', '666699', '333366', '333399', '330099', '3300cc', '3300ff', + '3333ff', '3333cc', '0066ff', '0033ff', '3366ff', '3366cc', '000066', '000033', + '0000ff', '000099', '0033cc', '0000cc', '336699', '0066cc', '99ccff', '6699ff', + '003366', '6699cc', '006699', '3399cc', '0099cc', '66ccff', '3399ff', '003399', + '0099ff', '33ccff', '00ccff', '99ffff', '66ffff', '33ffff', '00ffff', '00cccc', + '009999', '669999', '99cccc', 'ccffff', '33cccc', '66cccc', '339999', '336666', + '006666', '003333', '00ffcc', '33ffcc', '33cc99', '00cc99', '66ffcc', '99ffcc', + '00ff99', '339966', '006633', '336633', '669966', '66cc66', '99ff99', '66ff66', + '339933', '99cc99', '66ff99', '33ff99', '33cc66', '00cc66', '66cc99', '009966', + '009933', '33ff66', '00ff66', 'ccffcc', 'ccff99', '99ff66', '99ff33', '00ff33', + '33ff33', '00cc33', '33cc33', '66ff33', '00ff00', '66cc33', '006600', '003300', + '009900', '33ff00', '66ff00', '99ff00', '66cc00', '00cc00', '33cc00', '339900', + '99cc66', '669933', '99cc33', '336600', '669900', '99cc00', 'ccff66', 'ccff33', + 'ccff00', '999900', 'cccc00', 'cccc33', '333300', '666600', '999933', 'cccc66', + '666633', '999966', 'cccc99', 'ffffcc', 'ffff99', 'ffff66', 'ffff33', 'ffff00', + 'ffcc00', 'ffcc66', 'ffcc33', 'cc9933', '996600', 'cc9900', 'ff9900', 'cc6600', + '993300', 'cc6633', '663300', 'ff9966', 'ff6633', 'ff9933', 'ff6600', 'cc3300', + '996633', '330000', '663333', '996666', 'cc9999', '993333', 'cc6666', 'ffcccc', + 'ff3333', 'cc3333', 'ff6666', '660000', '990000', 'cc0000', 'ff0000', 'ff3300', + 'cc9966', 'ffcc99', 'ffffff', 'cccccc', '999999', '666666', '333333', '000000', + '000000', '000000', '000000', '000000', '000000', '000000', '000000', '000000' + ], + displayColorCode: this.element.getAttribute('displayColorCode') === 'true' || false, + colorCodeAlign: this.element.getAttribute('colorCodeAlign') || 'center', + colorCodeColor: this.element.getAttribute('colorCodeColor') || false, + hideInput: this.element.getAttribute('hideInput') !== 'false', + onSelect: null, + onCellEnter: null, + onClose: null, + livePreview: false, + displayCSS: { 'width': '25px', 'height': '25px' }, + chooserCSS: { 'left': '25px', 'border': '0' } + }; + + return Object.assign({}, defaults, options); + } + + init() { + this.options.totalWidth = this.options.columns * (this.options.cellWidth + (2 * this.options.cellMargin)); + this.options.totalHeight = Math.ceil(this.options.colors.length / this.options.columns) * (this.options.cellHeight + (2 * this.options.cellMargin)); + + const defaultChooserCSS = { + 'border': '1px solid #000', + 'margin': '0 0 0 5px', + 'width': this.options.totalWidth + 'px', + 'height': this.options.totalHeight + 'px', + 'top': '0', + 'left': this.options.boxWidth, + 'position': 'absolute', + 'background-color': '#fff' + }; + + const defaultDisplayCSS = { + 'background-color': this.options.defaultColor, + 'border': '1px solid #000', + 'width': this.options.boxWidth, + 'height': this.options.boxHeight, + 'line-height': this.options.boxHeight, + 'cursor': 'pointer' + }; + + this.options.chooserCSS = Object.assign({}, defaultChooserCSS, this.options.chooserCSS); + this.options.displayCSS = Object.assign({}, defaultDisplayCSS, this.options.displayCSS); + + this.buildColorPicker(); + } + + getAdaptiveTextColor(hexColor) { + const matches = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor); + if (!matches) return '#FFF'; + + const r = parseInt(matches[1], 16); + const g = parseInt(matches[2], 16); + const b = parseInt(matches[3], 16); + const isWhite = (0.213 * r / 255) + (0.715 * g / 255) + (0.072 * b / 255) < 0.5; + + return isWhite ? '#FFF' : '#000'; + } + + setColor(displayBox, color, options) { + const textColor = options.colorCodeColor || this.getAdaptiveTextColor(color); + + displayBox.dataset.color = color; + Object.assign(displayBox.style, { + color: textColor, + textAlign: options.colorCodeAlign, + backgroundColor: color + }); + + if (options.displayColorCode === true) { + displayBox.textContent = color; + } + } + + buildColorPicker() { + const container = document.createElement('div'); + container.className = 'simpleColorContainer'; + container.style.position = 'relative'; + + const defaultColor = (this.element.value && this.element.value !== '') ? this.element.value : this.options.defaultColor; + + const displayBox = document.createElement('div'); + displayBox.className = 'simpleColorDisplay'; + Object.assign(displayBox.style, this.options.displayCSS); + this.setColor(displayBox, defaultColor, this.options); + container.appendChild(displayBox); + + if (this.options.hideInput) { + this.element.style.display = 'none'; + } + + displayBox.addEventListener('click', (e) => { + e.stopPropagation(); + this.toggleChooser(container, displayBox); + }); + + if (this.options.insert === 'before') { + this.element.parentNode.insertBefore(container, this.element); + } else { + this.element.parentNode.insertBefore(container, this.element.nextSibling); + } + + this.element.colorPickerData = { container, displayBox }; + } + + toggleChooser(container, displayBox) { + const existingChooser = container.querySelector('.simpleColorChooser'); + + if (existingChooser) { + existingChooser.style.display = existingChooser.style.display === 'none' ? 'block' : 'none'; + return; + } + + const chooser = document.createElement('div'); + chooser.className = 'simpleColorChooser'; + Object.assign(chooser.style, this.options.chooserCSS); + container.appendChild(chooser); + + this.options.colors.forEach(color => { + const cell = document.createElement('div'); + cell.className = 'simpleColorCell'; + cell.id = color; + Object.assign(cell.style, { + width: this.options.cellWidth + 'px', + height: this.options.cellHeight + 'px', + margin: this.options.cellMargin + 'px', + cursor: 'pointer', + lineHeight: this.options.cellHeight + 'px', + fontSize: '1px', + float: 'left', + backgroundColor: '#' + color + }); + + if (this.options.onCellEnter || this.options.livePreview) { + cell.addEventListener('mouseenter', () => { + if (this.options.onCellEnter) { + this.options.onCellEnter(color, this.element); + } + if (this.options.livePreview) { + this.setColor(displayBox, '#' + color, this.options); + } + }); + } + + cell.addEventListener('click', (e) => { + e.stopPropagation(); + const selectedColor = '#' + color; + this.element.value = selectedColor; + + const changeEvent = new Event('change', { bubbles: true }); + this.element.dispatchEvent(changeEvent); + + this.setColor(displayBox, selectedColor, this.options); + chooser.style.display = 'none'; + + if (this.options.displayColorCode) { + displayBox.textContent = selectedColor; + } + + if (this.options.onSelect) { + this.options.onSelect(color, this.element); + } + }); + + chooser.appendChild(cell); + }); + + const closeHandler = (e) => { + if (!container.contains(e.target)) { + chooser.style.display = 'none'; + this.setColor(displayBox, displayBox.dataset.color || this.options.defaultColor, this.options); + document.removeEventListener('click', closeHandler); + + if (this.options.onClose) { + this.options.onClose(this.element); + } + } + }; + + setTimeout(() => { + document.addEventListener('click', closeHandler); + }, 0); + } + + static init(selector, options) { + const elements = typeof selector === 'string' ? document.querySelectorAll(selector) : [selector]; + elements.forEach(element => { + if (!element.simpleColorInstance) { + element.simpleColorInstance = new SimpleColor(element, options); + } + }); + } + + closeChooser() { + if (this.element.colorPickerData) { + const chooser = this.element.colorPickerData.container.querySelector('.simpleColorChooser'); + if (chooser) { + chooser.style.display = 'none'; + } + } + } +} + +document.addEventListener('DOMContentLoaded', function() { + SimpleColor.init('.color_select', { colors: [ 'e11d21', 'eb6420', 'fbca04', '009800', '006b75', '207de5', '0052cc', '5319e7', 'f7c6c7', 'fad8c7', 'fef2c0', 'bfe5bf', 'bfdadc', 'c7def8', 'bfd4f2', 'd4c5f9' @@ -16,7 +264,10 @@ $(document).ready(function() { displayCSS: { 'width': '25px', 'height': '25px' }, chooserCSS: { 'left': '25px', 'border': '0' }, onSelect: function(hex, element) { - $('#' + element.attr('id') + '_display').val(hex); + const displayElement = document.getElementById(element.id + '_display'); + if (displayElement) { + displayElement.value = '#' + hex; + } } }); }); diff --git a/package-lock.json b/package-lock.json index 7e0607817..cd43e75d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,6 @@ "chart.js": "^4.4.1", "d3": "^3.5.17", "jquery": "^3.7.1", - "jquery-simple-color": "github:recurser/jquery-simple-color", "jquery-textrange": "^1.4.0", "jquery-validation": "^1.19.4", "jquery.caret": "^0.3.1", @@ -2766,12 +2765,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "license": "ISC" - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2960,24 +2953,6 @@ "node": ">= 8" } }, - "node_modules/argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha512-LjmC2dNpdn2L4UzyoaIr11ELYoLn37ZFy9zObrQFHsSuOepeUEMKnM8w5KL4Tnrp2gy88rRuQt6Ky8Bjml+Baw==", - "license": "MIT", - "dependencies": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" - } - }, - "node_modules/argparse/node_modules/underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha512-yxkabuCaIBnzfIvX3kBxQqCs0ar/bfJwDnFEHJUm/ZrRVhT3IItdRF5cZjARLzEnyQYtIUhsZ2LG2j3HidFOFQ==", - "engines": { - "node": "*" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -3014,13 +2989,6 @@ "dev": true, "license": "MIT" }, - "node_modules/asn1.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", @@ -3049,14 +3017,6 @@ "inherits": "2.0.3" } }, - "node_modules/async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha512-2tEzliJmf5fHNafNwQLJXUasGzQCVctvsNkXmnlELHwypU0p08/rHohYvkqKIjyXpx+0rkrYv6QbhJ+UF4QkBg==", - "engines": { - "node": "*" - } - }, "node_modules/at.js": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/at.js/-/at.js-1.5.4.tgz", @@ -3340,19 +3300,6 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3454,13 +3401,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/browserify-aes/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", @@ -3486,13 +3426,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/browserify-des/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/browserify-rsa": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", @@ -3529,13 +3462,6 @@ "node": ">= 0.10" } }, - "node_modules/browserify-sign/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", @@ -3818,13 +3744,6 @@ "node": ">= 0.10" } }, - "node_modules/cipher-base/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -3884,19 +3803,6 @@ "node": ">=6" } }, - "node_modules/coffee-script": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", - "integrity": "sha512-QjQ1T4BqyHv19k6XSfdhy/QLlIOhywz0ekBUCa9h71zYMJlfDTGan/Z1JXzYkZ6v8R+GhvL/p4FZPbPW8WNXlg==", - "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/collect.js": { "version": "4.36.1", "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.36.1.tgz", @@ -3938,14 +3844,6 @@ "dev": true, "license": "MIT" }, - "node_modules/colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -4189,13 +4087,6 @@ "sha.js": "^2.4.0" } }, - "node_modules/create-hash/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", @@ -4211,13 +4102,6 @@ "sha.js": "^2.4.8" } }, - "node_modules/create-hmac/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/cross-env": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz", @@ -4287,13 +4171,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/crypto-browserify/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/css-declaration-sorter": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", @@ -4526,14 +4403,6 @@ "integrity": "sha512-yFk/2idb8OHPKkbAL8QaOaqENNoMhIaSHZerk3oQsECwkObkCpJyjYwCe+OHiq6UEdhe1m8ZGARRRO3ljFjlKg==", "license": "BSD-3-Clause" }, - "node_modules/dateformat": { - "version": "1.0.2-1.2.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", - "integrity": "sha512-AXvW8g7tO4ilk5HgOWeDmPi/ZPaCnMJ+9Cg1I3p19w6mcvAAXBuuGEXAxybC+Djj1PSZUiHUcyoYu7WneCX8gQ==", - "engines": { - "node": "*" - } - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -4632,13 +4501,6 @@ "minimalistic-assert": "^1.0.0" } }, - "node_modules/des.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -4898,13 +4760,6 @@ "dev": true, "license": "MIT" }, - "node_modules/elliptic/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4946,13 +4801,6 @@ "node": ">=10.13.0" } }, - "node_modules/enhanced-resolve/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -5057,18 +4905,6 @@ "node": ">=8.0.0" } }, - "node_modules/esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -5122,12 +4958,6 @@ "node": ">= 0.6" } }, - "node_modules/eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", - "license": "MIT" - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -5180,14 +5010,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/express": { "version": "4.22.1", "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", @@ -5464,68 +5286,6 @@ "node": ">=8" } }, - "node_modules/findup-sync": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "integrity": "sha512-yjftfYnF4ThYEvKEV/kEFR15dmtyXTAh3vQnzpJUoc7Naj5y1P0Ck7Zs1+Vroa00E3KT3IYsk756S+8WA5dNLw==", - "dependencies": { - "glob": "~3.2.9", - "lodash": "~2.4.1" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/findup-sync/node_modules/glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha512-hVb0zwEZwC1FXSKRPFTeOtN7AArJcJlI6ULGLtrstaswKNlrTJqAA+1lYlSUop4vjA423xlBzqfVS3iWGlqJ+g==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "BSD", - "dependencies": { - "inherits": "2", - "minimatch": "0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/findup-sync/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/findup-sync/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/findup-sync/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", - "license": "ISC" - }, - "node_modules/findup-sync/node_modules/minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha512-WFX1jI1AaxNTZVOHLBVazwTWKaQjoykSzCBNXB72vDTCzopQGtyP91tKdFK5cv1+qMwPyiTu1HqUriqplI8pcA==", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "license": "MIT", - "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -5622,13 +5382,6 @@ "node": ">=12" } }, - "node_modules/fs-extra/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, "node_modules/fs-monkey": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", @@ -5740,27 +5493,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha512-hIGEBfnHcZpWkXPsAVeVmpYDvfy/matVl03yOY91FPmnpCC12Lm5izNxCjO3lHAeO6uaTwMxu7g450Siknlhig==", - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha512-ANhy2V2+tFpRajE3wN4DhkNQ08KDr0Ir1qL12/cUe5+a7STEK8jkW4onUYuY8/06qAFuT5je7mjAqzx0eKI2tQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "BSD", + "dev": true, + "license": "ISC", "dependencies": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { @@ -5803,48 +5555,6 @@ "node": ">=8" } }, - "node_modules/globby/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globby/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/globby/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -5859,14 +5569,11 @@ } }, "node_modules/graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha512-iiTUZ5vZ+2ZV+h71XAgwCSu6+NAizhFU3Yw8aC/hH5SQ3SnISqEqAek40imAFGtDcwJKNhXvSY+hzIolnLwcdQ==", - "deprecated": "please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js", - "license": "BSD", - "engines": { - "node": ">=0.4.0" - } + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, "node_modules/growly": { "version": "1.3.0", @@ -5875,136 +5582,6 @@ "dev": true, "license": "MIT" }, - "node_modules/grunt": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", - "integrity": "sha512-1iq3ylLjzXqz/KSq1OAE2qhnpcbkF2WyhsQcavZt+YmgvHu0EbPMEhGhy2gr0FP67isHpRdfwjB5WVeXXcJemQ==", - "dependencies": { - "async": "~0.1.22", - "coffee-script": "~1.3.3", - "colors": "~0.6.2", - "dateformat": "1.0.2-1.2.3", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.1.2", - "getobject": "~0.1.0", - "glob": "~3.1.21", - "grunt-legacy-log": "~0.1.0", - "grunt-legacy-util": "~0.2.0", - "hooker": "~0.2.3", - "iconv-lite": "~0.2.11", - "js-yaml": "~2.0.5", - "lodash": "~0.9.2", - "minimatch": "~0.2.12", - "nopt": "~1.0.10", - "rimraf": "~2.2.8", - "underscore.string": "~2.2.1", - "which": "~1.0.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-legacy-log": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", - "integrity": "sha512-qYs/uM0ImdzwIXLhS4O5WLV5soAM+PEqqHI/hzSxlo450ERSccEhnXqoeDA9ZozOdaWuYnzTOTwRcVRogleMxg==", - "license": "MIT", - "dependencies": { - "colors": "~0.6.2", - "grunt-legacy-log-utils": "~0.1.1", - "hooker": "~0.2.3", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-legacy-log-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", - "integrity": "sha512-D0vbUX00TFYCKNZtcZzemMpwT8TR/FdRs1pmfiBw6qnUw80PfsjV+lhIozY/3eJ3PSG2zj89wd2mH/7f4tNAlw==", - "dependencies": { - "colors": "~0.6.2", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-legacy-log-utils/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/grunt-legacy-log-utils/node_modules/underscore.string": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==", - "engines": { - "node": "*" - } - }, - "node_modules/grunt-legacy-log/node_modules/lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha512-Kak1hi6/hYHGVPmdyiZijoQyz5x2iGVzs6w9GYB/HiXEtylY7tIoYEROMjvM1d9nXJqPOrG2MNPMn01bJ+S0Rw==", - "engines": [ - "node", - "rhino" - ], - "license": "MIT" - }, - "node_modules/grunt-legacy-log/node_modules/underscore.string": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "integrity": "sha512-hbD5MibthuDAu4yA5wxes5bzFgqd3PpBJuClbRxaNddxfdsz+qf+1kHwrGQFrmchmDHb9iNU+6EHDn8uj0xDJg==", - "engines": { - "node": "*" - } - }, - "node_modules/grunt-legacy-util": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", - "integrity": "sha512-cXPbfF8aM+pvveQeN1K872D5fRm30xfJWZiS63Y8W8oyIPLClCsmI8bW96Txqzac9cyL4lRqEBhbhJ3n5EzUUQ==", - "dependencies": { - "async": "~0.1.22", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~0.9.2", - "underscore.string": "~2.2.1", - "which": "~1.0.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/grunt-legacy-util/node_modules/which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha512-E87fdQ/eRJr9W1X4wTPejNy9zTW3FI2vpCZSJ/HAY+TkjKVC0TUm1jk6vn2Z7qay0DQy0+RBGdXxj+RmmiGZKQ==", - "license": "ISC", - "bin": { - "which": "bin/which" - } - }, - "node_modules/grunt/node_modules/which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha512-E87fdQ/eRJr9W1X4wTPejNy9zTW3FI2vpCZSJ/HAY+TkjKVC0TUm1jk6vn2Z7qay0DQy0+RBGdXxj+RmmiGZKQ==", - "license": "ISC", - "bin": { - "which": "bin/which" - } - }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -6078,13 +5655,6 @@ "node": ">= 0.10" } }, - "node_modules/hash-base/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/hash-sum": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", @@ -6103,13 +5673,6 @@ "minimalistic-assert": "^1.0.1" } }, - "node_modules/hash.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -6145,14 +5708,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==", - "engines": { - "node": "*" - } - }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -6166,13 +5721,6 @@ "wbuf": "^1.1.0" } }, - "node_modules/hpack.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/html-entities": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", @@ -6343,13 +5891,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/http-parser-js": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", @@ -6415,12 +5956,16 @@ } }, "node_modules/iconv-lite": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "integrity": "sha512-KhmFWgaQZY83Cbhi+ADInoUQ8Etn6BG5fikM9syeOjQltvR45h7cRKJ/9uvQEuD61I3Uju77yYce0/LhKVClQw==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, "node_modules/icss-utils": { @@ -6473,6 +6018,7 @@ "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "file-type": "^12.0.0", "globby": "^10.0.0", @@ -6486,13 +6032,6 @@ "node": ">=8" } }, - "node_modules/imagemin/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, "node_modules/img-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-4.0.0.tgz", @@ -6594,9 +6133,11 @@ } }, "node_modules/inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha512-Al67oatbRSo3RV5hRqIoln6Y5yMVbJSIn4jEJNL7VCImzq/kLr7vvb6sFRJXqr8rpHc/2kJOM+y0sPKN47VdzA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" }, "node_modules/interpret": { "version": "2.2.0", @@ -6863,13 +6404,6 @@ "license": "MIT", "peer": true }, - "node_modules/jquery-simple-color": { - "version": "1.2.3", - "resolved": "git+ssh://git@github.com/recurser/jquery-simple-color.git#a78212bc7df313fbc3e5d839326aa3668c63edb3", - "peerDependencies": { - "grunt": "~0.4.0" - } - }, "node_modules/jquery-textrange": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jquery-textrange/-/jquery-textrange-1.4.0.tgz", @@ -6901,22 +6435,6 @@ "dev": true, "license": "MIT" }, - "node_modules/js-yaml": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", - "integrity": "sha512-VEKcIksckDBUhg2JS874xVouiPkywVUh4yyUmLCDe1Zg3bCd6M+F1eGPenPeHLc2XC8pp9G8bsuofK0NeEqRkA==", - "license": "MIT", - "dependencies": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - }, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -6970,14 +6488,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonfile/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC", - "optional": true - }, "node_modules/junk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", @@ -7084,55 +6594,6 @@ "webpack-cli": "^4.9.1" } }, - "node_modules/laravel-mix/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/laravel-mix/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/laravel-mix/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/laravel-mix/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/launch-editor": { "version": "2.12.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", @@ -7204,13 +6665,10 @@ } }, "node_modules/lodash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", - "integrity": "sha512-LVbt/rjK62gSbhehDVKL0vlaime4Y1IBixL+bKeNfoY4L2zab/jGrxU6Ka05tMA/zBxkTk5t3ivtphdyYupczw==", - "engines": [ - "node", - "rhino" - ], + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash.debounce": { @@ -7319,13 +6777,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/md5.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", @@ -7530,25 +6981,18 @@ "license": "MIT" }, "node_modules/minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha512-zZ+Jy8lVWlvqqeM8iZB7w7KmQkoJn8djM585z88rywrEbzoqawVa9FR5p2hwD+y74nfuKOjmNvi9gtWJNLqHvA==", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "license": "MIT", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, - "node_modules/minimatch/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha512-WpibWJ60c3AgAz8a2iYErDrcT2C7OmKnsWhIcHOjkUHFjkXncJhtLxNSqUmxRxRunpb5I8Vprd7aNSd2NtksJQ==", - "license": "ISC" - }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -7699,21 +7143,6 @@ "dev": true, "license": "MIT" }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "license": "MIT", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -8980,19 +8409,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -9009,13 +8425,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/readable-stream/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -9271,13 +8680,20 @@ } }, "node_modules/rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "MIT", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, "bin": { "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ripemd160": { @@ -9310,13 +8726,6 @@ "node": ">= 0.8" } }, - "node_modules/ripemd160/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -9608,13 +9017,6 @@ "node": ">= 0.8" } }, - "node_modules/send/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/send/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -9771,13 +9173,6 @@ "node": ">= 0.8" } }, - "node_modules/serve-static/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/serve-static/node_modules/send": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", @@ -9876,13 +9271,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sha.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -10015,12 +9403,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", - "license": "ISC" - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -10129,13 +9511,6 @@ "wbuf": "^1.7.3" } }, - "node_modules/spdy-transport/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/spdy-transport/node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -10187,13 +9562,6 @@ "readable-stream": "^2.0.2" } }, - "node_modules/stream-browserify/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -10208,13 +9576,6 @@ "xtend": "^4.0.0" } }, - "node_modules/stream-http/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -10625,19 +9986,6 @@ "node": ">= 0.4" } }, - "node_modules/underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha512-cp0oQQyZhUM1kpJDLdGO1jPZHgS/MpzoWYfe9+CM2h/QGDZlqwT2T3YGukuBdaNJ/CAPoeyAZRRHz8JFo176vA==" - }, - "node_modules/underscore.string": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", - "integrity": "sha512-3FVmhXqelrj6gfgp3Bn6tOavJvW0dNH2T+heTD38JRxIrAbiuzbqjknszoOYj3DyFB1nWiLj208Qt2no/L4cIA==", - "engines": { - "node": "*" - } - }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -10894,13 +10242,6 @@ "node": ">=10.13.0" } }, - "node_modules/watchpack/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", @@ -11183,42 +10524,6 @@ "ajv": "^8.8.2" } }, - "node_modules/webpack-dev-server/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/webpack-dev-server/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/webpack-dev-server/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -11226,36 +10531,6 @@ "dev": true, "license": "MIT" }, - "node_modules/webpack-dev-server/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", @@ -11352,13 +10627,6 @@ "ajv": "^8.8.2" } }, - "node_modules/webpack/node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", diff --git a/package.json b/package.json index f9f9a0714..337896af2 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "chart.js": "^4.4.1", "d3": "^3.5.17", "jquery": "^3.7.1", - "jquery-simple-color": "github:recurser/jquery-simple-color", "jquery-textrange": "^1.4.0", "jquery-validation": "^1.19.4", "jquery.caret": "^0.3.1", diff --git a/templates/github/labels.index.twig b/templates/github/labels.index.twig index 527e0976e..b9078b1aa 100644 --- a/templates/github/labels.index.twig +++ b/templates/github/labels.index.twig @@ -72,7 +72,6 @@ {% block JavaScriptBottom %} {{ parent() }} - diff --git a/templates/tracker/category.add.twig b/templates/tracker/category.add.twig index b03ae4cd4..8e45d62f1 100644 --- a/templates/tracker/category.add.twig +++ b/templates/tracker/category.add.twig @@ -49,6 +49,5 @@ {% block JavaScriptBottom %} {{ parent() }} - {% endblock %} diff --git a/templates/tracker/category.edit.twig b/templates/tracker/category.edit.twig index 1e12333eb..369678390 100644 --- a/templates/tracker/category.edit.twig +++ b/templates/tracker/category.edit.twig @@ -50,6 +50,5 @@ {% block JavaScriptBottom %} {{ parent() }} - {% endblock %} diff --git a/webpack.mix.js b/webpack.mix.js index f05652112..ee97226cb 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -66,9 +66,6 @@ mix.combine( 'www/media/js/vendor/blueimp-file-upload.js' ); -// jQuery Simple Color -mix.copy('node_modules/jquery-simple-color/jquery.simple-color.min.js', 'www/media/js/vendor/jquery-simple-color.js'); - // jQuery Validation mix.copy('node_modules/jquery-validation/dist/jquery.validate.min.js', 'www/media/js/vendor/jquery-validation.js'); diff --git a/www/media/js/color-select.js b/www/media/js/color-select.js index 79cb39f85..d176bd613 100644 --- a/www/media/js/color-select.js +++ b/www/media/js/color-select.js @@ -1,2 +1,2 @@ /*! For license information please see color-select.js.LICENSE.txt */ -(()=>{var e,r={365:()=>{},536:()=>{},567:()=>{},585:()=>{},985:()=>{$(document).ready(function(){$(".color_select").simpleColor({colors:["e11d21","eb6420","fbca04","009800","006b75","207de5","0052cc","5319e7","f7c6c7","fad8c7","fef2c0","bfe5bf","bfdadc","c7def8","bfd4f2","d4c5f9"],cellWidth:25,cellHeight:25,cellMargin:0,columns:8,displayCSS:{width:"25px",height:"25px"},chooserCSS:{left:"25px",border:"0"},onSelect:function(e,r){$("#"+r.attr("id")+"_display").val(e)}})})}},o={};function c(e){var l=o[e];if(void 0!==l)return l.exports;var a=o[e]={exports:{}};return r[e](a,a.exports,c),a.exports}c.m=r,e=[],c.O=(r,o,l,a)=>{if(!o){var i=1/0;for(d=0;d=a)&&Object.keys(c.O).every(e=>c.O[e](o[f]))?o.splice(f--,1):(t=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[o,l,a]},c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={364:0,656:0,968:0,937:0,712:0};c.O.j=r=>0===e[r];var r=(r,o)=>{var l,a,[i,t,f]=o,n=0;if(i.some(r=>0!==e[r])){for(l in t)c.o(t,l)&&(c.m[l]=t[l]);if(f)var d=f(c)}for(r&&r(o);nc(985)),c.O(void 0,[656,968,937,712],()=>c(567)),c.O(void 0,[656,968,937,712],()=>c(585)),c.O(void 0,[656,968,937,712],()=>c(365));var l=c.O(void 0,[656,968,937,712],()=>c(536));l=c.O(l)})(); \ No newline at end of file +(()=>{var e,t={365:()=>{},536:()=>{},567:()=>{},585:()=>{},985:()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.element=t,this.options=this.mergeOptions(o),this.init()}return o=e,c=[{key:"mergeOptions",value:function(e){var t={defaultColor:this.element.getAttribute("defaultColor")||"#FFF",cellWidth:parseInt(this.element.getAttribute("cellWidth"))||25,cellHeight:parseInt(this.element.getAttribute("cellHeight"))||25,cellMargin:parseInt(this.element.getAttribute("cellMargin"))||0,boxWidth:this.element.getAttribute("boxWidth")||"25px",boxHeight:this.element.getAttribute("boxHeight")||"25px",columns:parseInt(this.element.getAttribute("columns"))||8,insert:this.element.getAttribute("insert")||"after",colors:["990033","ff3366","cc0033","ff0033","ff9999","cc3366","ffccff","cc6699","993366","660033","cc3399","ff99cc","ff66cc","ff99ff","ff6699","cc0066","ff0066","ff3399","ff0099","ff33cc","ff00cc","ff66ff","ff33ff","ff00ff","cc0099","990066","cc66cc","cc33cc","cc99ff","cc66ff","cc33ff","993399","cc00cc","cc00ff","9900cc","990099","cc99cc","996699","663366","660099","9933cc","660066","9900ff","9933ff","9966cc","330033","663399","6633cc","6600cc","9966ff","330066","6600ff","6633ff","ccccff","9999ff","9999cc","6666cc","6666ff","666699","333366","333399","330099","3300cc","3300ff","3333ff","3333cc","0066ff","0033ff","3366ff","3366cc","000066","000033","0000ff","000099","0033cc","0000cc","336699","0066cc","99ccff","6699ff","003366","6699cc","006699","3399cc","0099cc","66ccff","3399ff","003399","0099ff","33ccff","00ccff","99ffff","66ffff","33ffff","00ffff","00cccc","009999","669999","99cccc","ccffff","33cccc","66cccc","339999","336666","006666","003333","00ffcc","33ffcc","33cc99","00cc99","66ffcc","99ffcc","00ff99","339966","006633","336633","669966","66cc66","99ff99","66ff66","339933","99cc99","66ff99","33ff99","33cc66","00cc66","66cc99","009966","009933","33ff66","00ff66","ccffcc","ccff99","99ff66","99ff33","00ff33","33ff33","00cc33","33cc33","66ff33","00ff00","66cc33","006600","003300","009900","33ff00","66ff00","99ff00","66cc00","00cc00","33cc00","339900","99cc66","669933","99cc33","336600","669900","99cc00","ccff66","ccff33","ccff00","999900","cccc00","cccc33","333300","666600","999933","cccc66","666633","999966","cccc99","ffffcc","ffff99","ffff66","ffff33","ffff00","ffcc00","ffcc66","ffcc33","cc9933","996600","cc9900","ff9900","cc6600","993300","cc6633","663300","ff9966","ff6633","ff9933","ff6600","cc3300","996633","330000","663333","996666","cc9999","993333","cc6666","ffcccc","ff3333","cc3333","ff6666","660000","990000","cc0000","ff0000","ff3300","cc9966","ffcc99","ffffff","cccccc","999999","666666","333333","000000","000000","000000","000000","000000","000000","000000","000000","000000"],displayColorCode:"true"===this.element.getAttribute("displayColorCode")||!1,colorCodeAlign:this.element.getAttribute("colorCodeAlign")||"center",colorCodeColor:this.element.getAttribute("colorCodeColor")||!1,hideInput:"false"!==this.element.getAttribute("hideInput"),onSelect:null,onCellEnter:null,onClose:null,livePreview:!1,displayCSS:{width:"25px",height:"25px"},chooserCSS:{left:"25px",border:"0"}};return Object.assign({},t,e)}},{key:"init",value:function(){this.options.totalWidth=this.options.columns*(this.options.cellWidth+2*this.options.cellMargin),this.options.totalHeight=Math.ceil(this.options.colors.length/this.options.columns)*(this.options.cellHeight+2*this.options.cellMargin);var e={border:"1px solid #000",margin:"0 0 0 5px",width:this.options.totalWidth+"px",height:this.options.totalHeight+"px",top:"0",left:this.options.boxWidth,position:"absolute","background-color":"#fff"},t={"background-color":this.options.defaultColor,border:"1px solid #000",width:this.options.boxWidth,height:this.options.boxHeight,"line-height":this.options.boxHeight,cursor:"pointer"};this.options.chooserCSS=Object.assign({},e,this.options.chooserCSS),this.options.displayCSS=Object.assign({},t,this.options.displayCSS),this.buildColorPicker()}},{key:"getAdaptiveTextColor",value:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?.213*parseInt(t[1],16)/255+.715*parseInt(t[2],16)/255+.072*parseInt(t[3],16)/255<.5?"#FFF":"#000":"#FFF"}},{key:"setColor",value:function(e,t,o){var c=o.colorCodeColor||this.getAdaptiveTextColor(t);e.dataset.color=t,Object.assign(e.style,{color:c,textAlign:o.colorCodeAlign,backgroundColor:t}),!0===o.displayColorCode&&(e.textContent=t)}},{key:"buildColorPicker",value:function(){var e=this,t=document.createElement("div");t.className="simpleColorContainer",t.style.position="relative";var o=this.element.value&&""!==this.element.value?this.element.value:this.options.defaultColor,c=document.createElement("div");c.className="simpleColorDisplay",Object.assign(c.style,this.options.displayCSS),this.setColor(c,o,this.options),t.appendChild(c),this.options.hideInput&&(this.element.style.display="none"),c.addEventListener("click",function(o){o.stopPropagation(),e.toggleChooser(t,c)}),"before"===this.options.insert?this.element.parentNode.insertBefore(t,this.element):this.element.parentNode.insertBefore(t,this.element.nextSibling),this.element.colorPickerData={container:t,displayBox:c}}},{key:"toggleChooser",value:function(e,t){var o=this,c=e.querySelector(".simpleColorChooser");if(c)c.style.display="none"===c.style.display?"block":"none";else{var i=document.createElement("div");i.className="simpleColorChooser",Object.assign(i.style,this.options.chooserCSS),e.appendChild(i),this.options.colors.forEach(function(e){var c=document.createElement("div");c.className="simpleColorCell",c.id=e,Object.assign(c.style,{width:o.options.cellWidth+"px",height:o.options.cellHeight+"px",margin:o.options.cellMargin+"px",cursor:"pointer",lineHeight:o.options.cellHeight+"px",fontSize:"1px",float:"left",backgroundColor:"#"+e}),(o.options.onCellEnter||o.options.livePreview)&&c.addEventListener("mouseenter",function(){o.options.onCellEnter&&o.options.onCellEnter(e,o.element),o.options.livePreview&&o.setColor(t,"#"+e,o.options)}),c.addEventListener("click",function(c){c.stopPropagation();var n="#"+e;o.element.value=n;var f=new Event("change",{bubbles:!0});o.element.dispatchEvent(f),o.setColor(t,n,o.options),i.style.display="none",o.options.displayColorCode&&(t.textContent=n),o.options.onSelect&&o.options.onSelect(e,o.element)}),i.appendChild(c)});var n=function(c){e.contains(c.target)||(i.style.display="none",o.setColor(t,t.dataset.color||o.options.defaultColor,o.options),document.removeEventListener("click",n),o.options.onClose&&o.options.onClose(o.element))};setTimeout(function(){document.addEventListener("click",n)},0)}}},{key:"closeChooser",value:function(){if(this.element.colorPickerData){var e=this.element.colorPickerData.container.querySelector(".simpleColorChooser");e&&(e.style.display="none")}}}],i=[{key:"init",value:function(t,o){("string"==typeof t?document.querySelectorAll(t):[t]).forEach(function(t){t.simpleColorInstance||(t.simpleColorInstance=new e(t,o))})}}],c&&t(o.prototype,c),i&&t(o,i),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,c,i}();document.addEventListener("DOMContentLoaded",function(){c.init(".color_select",{colors:["e11d21","eb6420","fbca04","009800","006b75","207de5","0052cc","5319e7","f7c6c7","fad8c7","fef2c0","bfe5bf","bfdadc","c7def8","bfd4f2","d4c5f9"],cellWidth:25,cellHeight:25,cellMargin:0,columns:8,displayCSS:{width:"25px",height:"25px"},chooserCSS:{left:"25px",border:"0"},onSelect:function(e,t){var o=document.getElementById(t.id+"_display");o&&(o.value="#"+e)}})})}},o={};function c(e){var i=o[e];if(void 0!==i)return i.exports;var n=o[e]={exports:{}};return t[e](n,n.exports,c),n.exports}c.m=t,e=[],c.O=(t,o,i,n)=>{if(!o){var f=1/0;for(a=0;a=n)&&Object.keys(c.O).every(e=>c.O[e](o[r]))?o.splice(r--,1):(l=!1,n0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[o,i,n]},c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={364:0,656:0,968:0,937:0,712:0};c.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[f,l,r]=o,s=0;if(f.some(t=>0!==e[t])){for(i in l)c.o(l,i)&&(c.m[i]=l[i]);if(r)var a=r(c)}for(t&&t(o);sc(985)),c.O(void 0,[656,968,937,712],()=>c(567)),c.O(void 0,[656,968,937,712],()=>c(585)),c.O(void 0,[656,968,937,712],()=>c(365));var i=c.O(void 0,[656,968,937,712],()=>c(536));i=c.O(i)})(); \ No newline at end of file diff --git a/www/media/js/vendor/jquery-simple-color.js b/www/media/js/vendor/jquery-simple-color.js deleted file mode 100644 index 3efcc0e9f..000000000 --- a/www/media/js/vendor/jquery-simple-color.js +++ /dev/null @@ -1 +0,0 @@ -!function(r){function n(c,f,o){var t,i=o.colorCodeColor||(!(t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(f))||.213*parseInt(t[1],16)/255+.715*parseInt(t[2],16)/255+.072*parseInt(t[3],16)/255<.5?"#FFF":"#000");c.data("color",f).css({color:i,textAlign:o.colorCodeAlign,backgroundColor:f}),!0===o.displayColorCode&&c.text(f)}r.fn.simpleColor=function(e){var l=this;return(e=r.extend({defaultColor:this.attr("defaultColor")||"#FFF",cellWidth:this.attr("cellWidth")||10,cellHeight:this.attr("cellHeight")||10,cellMargin:this.attr("cellMargin")||1,boxWidth:this.attr("boxWidth")||"115px",boxHeight:this.attr("boxHeight")||"20px",columns:this.attr("columns")||16,insert:this.attr("insert")||"after",colors:this.attr("colors")||["990033","ff3366","cc0033","ff0033","ff9999","cc3366","ffccff","cc6699","993366","660033","cc3399","ff99cc","ff66cc","ff99ff","ff6699","cc0066","ff0066","ff3399","ff0099","ff33cc","ff00cc","ff66ff","ff33ff","ff00ff","cc0099","990066","cc66cc","cc33cc","cc99ff","cc66ff","cc33ff","993399","cc00cc","cc00ff","9900cc","990099","cc99cc","996699","663366","660099","9933cc","660066","9900ff","9933ff","9966cc","330033","663399","6633cc","6600cc","9966ff","330066","6600ff","6633ff","ccccff","9999ff","9999cc","6666cc","6666ff","666699","333366","333399","330099","3300cc","3300ff","3333ff","3333cc","0066ff","0033ff","3366ff","3366cc","000066","000033","0000ff","000099","0033cc","0000cc","336699","0066cc","99ccff","6699ff","003366","6699cc","006699","3399cc","0099cc","66ccff","3399ff","003399","0099ff","33ccff","00ccff","99ffff","66ffff","33ffff","00ffff","00cccc","009999","669999","99cccc","ccffff","33cccc","66cccc","339999","336666","006666","003333","00ffcc","33ffcc","33cc99","00cc99","66ffcc","99ffcc","00ff99","339966","006633","336633","669966","66cc66","99ff99","66ff66","339933","99cc99","66ff99","33ff99","33cc66","00cc66","66cc99","009966","009933","33ff66","00ff66","ccffcc","ccff99","99ff66","99ff33","00ff33","33ff33","00cc33","33cc33","66ff33","00ff00","66cc33","006600","003300","009900","33ff00","66ff00","99ff00","66cc00","00cc00","33cc00","339900","99cc66","669933","99cc33","336600","669900","99cc00","ccff66","ccff33","ccff00","999900","cccc00","cccc33","333300","666600","999933","cccc66","666633","999966","cccc99","ffffcc","ffff99","ffff66","ffff33","ffff00","ffcc00","ffcc66","ffcc33","cc9933","996600","cc9900","ff9900","cc6600","993300","cc6633","663300","ff9966","ff6633","ff9933","ff6600","cc3300","996633","330000","663333","996666","cc9999","993333","cc6666","ffcccc","ff3333","cc3333","ff6666","660000","990000","cc0000","ff0000","ff3300","cc9966","ffcc99","ffffff","cccccc","999999","666666","333333","000000","000000","000000","000000","000000","000000","000000","000000","000000"],displayColorCode:this.attr("displayColorCode")||!1,colorCodeAlign:this.attr("colorCodeAlign")||"center",colorCodeColor:this.attr("colorCodeColor")||!1,hideInput:this.attr("hideInput")||!0,onSelect:null,onCellEnter:null,onClose:null,livePreview:!1},e||{})).totalWidth=e.columns*(e.cellWidth+2*e.cellMargin),e.chooserCSS=r.extend({border:"1px solid #000",margin:"0 0 0 5px",width:e.totalWidth,height:e.totalHeight,top:0,left:e.boxWidth,position:"absolute","background-color":"#fff"},e.chooserCSS||{}),e.displayCSS=r.extend({"background-color":e.defaultColor,border:"1px solid #000",width:e.boxWidth,height:e.boxHeight,"line-height":e.boxHeight+"px",cursor:"pointer"},e.displayCSS||{}),e.inputCSS=r.extend({},e.inputCSS||{}),e.hideInput?this.hide():this.css(e.inputCSS),-1!=navigator.userAgent.indexOf("MSIE")&&(e.totalWidth+=2),e.totalHeight=Math.ceil(e.colors.length/e.columns)*(e.cellHeight+2*e.cellMargin),r.simpleColorOptions=e,this.each(function(c){e=r.simpleColorOptions;var f=r("
");f.css("position","relative");var o=this.value&&""!=this.value?this.value:e.defaultColor,i=r("
");i.css(e.displayCSS),n(i,o,e),f.append(i);var t={input:this,container:f,displayBox:i};i.bind("click",t,function(o){if(r("html").bind("click.simpleColorDisplay",function(c){r("html").unbind("click.simpleColorDisplay"),r(".simpleColorChooser").hide();var f=r(c.target);!1!==f.is(".simpleColorCell")&&!1!==r.contains(r(o.target).closest(".simpleColorContainer")[0],f[0])||n(i,i.data("color"),e),e.onClose&&e.onClose(l)}),o.data.container.chooser)o.data.container.chooser.toggle();else{var c=r("
");c.css(e.chooserCSS),o.data.container.chooser=c,o.data.container.append(c);for(var f=0;f");t.css({width:e.cellWidth+"px",height:e.cellHeight+"px",margin:e.cellMargin+"px",cursor:"pointer",lineHeight:e.cellHeight+"px",fontSize:"1px",float:"left","background-color":"#"+e.colors[f]}),c.append(t),(e.onCellEnter||e.livePreview)&&t.bind("mouseenter",function(c){e.onCellEnter&&e.onCellEnter(this.id,l),e.livePreview&&n(i,"#"+this.id,e)}),t.bind("click",{input:o.data.input,chooser:c,displayBox:i},function(c){var f="#"+this.id;c.data.input.value=f,r(c.data.input).change(),n(i,f,e),c.data.chooser.hide(),e.displayColorCode&&c.data.displayBox.text(f),e.onSelect&&e.onSelect(this.id,l)})}}}),r(this).after(f),r(this).data("container",f)}),r(".simpleColorDisplay").each(function(){r(this).click(function(c){c.stopPropagation()})}),this},r.fn.closeChooser=function(){return this.each(function(c){r(this).data("container").find(".simpleColorChooser").hide()}),this},r.fn.setColor=function(o){return this.each(function(c){var f=r(this).data("container").find(".simpleColorDisplay");n(f,o,{displayColorCode:f.data("displayColorCode")})}),this}}(jQuery); \ No newline at end of file diff --git a/www/media/mix-manifest.json b/www/media/mix-manifest.json index 30317fa2e..232fc88d3 100644 --- a/www/media/mix-manifest.json +++ b/www/media/mix-manifest.json @@ -27,7 +27,6 @@ "/js/vendor/blueimp-tmpl.js": "/js/vendor/blueimp-tmpl.js", "/css/vendor/blueimp-file-upload.css": "/css/vendor/blueimp-file-upload.css", "/js/vendor/blueimp-file-upload.js": "/js/vendor/blueimp-file-upload.js", - "/js/vendor/jquery-simple-color.js": "/js/vendor/jquery-simple-color.js", "/js/vendor/jquery-validation.js": "/js/vendor/jquery-validation.js", "/markitup/jquery.markitup.js": "/markitup/jquery.markitup.js", "/markitup/sets/default/images/bold.png": "/markitup/sets/default/images/bold.png",