chartjs-plugin-autocolors 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * chartjs-plugin-autocolors v0.2.2
2
+ * chartjs-plugin-autocolors v0.3.0
3
3
  * https://github.com/kurkle/chartjs-plugin-autocolors#readme
4
- * (c) 2023 Jukka Kurkela <jukka.kurkela@gmail.com>
4
+ * (c) 2024 Jukka Kurkela <jukka.kurkela@gmail.com>
5
5
  * Released under the MIT license
6
6
  */
7
7
  (function (global, factory) {
@@ -90,7 +90,42 @@ function getNext(color, customize, context) {
90
90
  return c;
91
91
  }
92
92
 
93
- var index = {
93
+ function defaultMode(chart, gen, customize, mode) {
94
+ const datasetMode = mode === 'dataset';
95
+
96
+ let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});
97
+ for (const dataset of chart.data.datasets) {
98
+ if (datasetMode) {
99
+ if (setColors(dataset, c.background, c.border)) {
100
+ c = getNext(gen, customize, {chart, datasetIndex: dataset.index});
101
+ }
102
+ } else {
103
+ const background = [];
104
+ const border = [];
105
+ for (let i = 0; i < dataset.data.length; i++) {
106
+ background.push(c.background);
107
+ border.push(c.border);
108
+ c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});
109
+ }
110
+ setColors(dataset, background, border);
111
+ }
112
+ }
113
+
114
+ }
115
+
116
+ function labelMode(chart, gen, customize) {
117
+ const colors = {};
118
+ for (const dataset of chart.data.datasets) {
119
+ const label = dataset.label ?? '';
120
+ if (!colors[label]) {
121
+ colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});
122
+ }
123
+ const c = colors[label];
124
+ setColors(dataset, c.background, c.border);
125
+ }
126
+ }
127
+
128
+ const autocolorPlugin = {
94
129
  id: 'autocolors',
95
130
  beforeUpdate(chart, args, options) {
96
131
  const {mode = 'dataset', enabled = true, customize, repeat} = options;
@@ -111,42 +146,11 @@ var index = {
111
146
  if (mode === 'label') {
112
147
  return labelMode(chart, gen, customize);
113
148
  }
114
-
115
- const datasetMode = mode === 'dataset';
116
-
117
- let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});
118
- for (const dataset of chart.data.datasets) {
119
- if (datasetMode) {
120
- if (setColors(dataset, c.background, c.border)) {
121
- c = getNext(gen, customize, {chart, datasetIndex: dataset.index});
122
- }
123
- } else {
124
- const background = [];
125
- const border = [];
126
- for (let i = 0; i < dataset.data.length; i++) {
127
- background.push(c.background);
128
- border.push(c.border);
129
- c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});
130
- }
131
- setColors(dataset, background, border);
132
- }
133
- }
149
+ return defaultMode(chart, gen, customize, mode);
134
150
  }
135
151
  };
136
152
 
137
- function labelMode(chart, gen, customize) {
138
- const colors = {};
139
- for (const dataset of chart.data.datasets) {
140
- const label = dataset.label ?? '';
141
- if (!colors[label]) {
142
- colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});
143
- }
144
- const c = colors[label];
145
- setColors(dataset, c.background, c.border);
146
- }
147
- }
148
-
149
- return index;
153
+ return autocolorPlugin;
150
154
 
151
155
  }));
152
156
  //# sourceMappingURL=chartjs-plugin-autocolors.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chartjs-plugin-autocolors.cjs","sources":["../node_modules/@kurkle/color/dist/color.esm.js","../src/index.js"],"sourcesContent":["/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","import {hsv2rgb, rgbString} from '@kurkle/color';\n\nfunction* hueGen() {\n yield 0;\n while (true) {\n for (let i = 1; i < 10; i++) {\n const d = 1 << i;\n for (let j = 1; j <= d; j += 2) {\n yield j / d;\n }\n }\n }\n}\n\nfunction* colorGen(repeat = 1) {\n const hue = hueGen();\n let h = hue.next();\n while (!h.done) {\n let rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.8);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.5);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n h = hue.next();\n }\n}\n\nfunction setColors(dataset, background, border) {\n dataset.backgroundColor = dataset.backgroundColor || background;\n dataset.borderColor = dataset.borderColor || border;\n return dataset.backgroundColor === background && dataset.borderColor === border;\n}\n\nfunction getNext(color, customize, context) {\n const c = color.next().value;\n if (typeof customize === 'function') {\n return customize(Object.assign({colors: c}, context));\n }\n return c;\n}\n\nexport default {\n id: 'autocolors',\n beforeUpdate(chart, args, options) {\n const {mode = 'dataset', enabled = true, customize, repeat} = options;\n\n if (!enabled) {\n return;\n }\n\n const gen = colorGen(repeat);\n\n if (options.offset) {\n // offset the color generation by n colors\n for (let i = 0; i < options.offset; i++) {\n gen.next();\n }\n }\n\n if (mode === 'label') {\n return labelMode(chart, gen, customize);\n }\n\n const datasetMode = mode === 'dataset';\n\n let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});\n for (const dataset of chart.data.datasets) {\n if (datasetMode) {\n if (setColors(dataset, c.background, c.border)) {\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index});\n }\n } else {\n const background = [];\n const border = [];\n for (let i = 0; i < dataset.data.length; i++) {\n background.push(c.background);\n border.push(c.border);\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});\n }\n setColors(dataset, background, border);\n }\n }\n }\n};\n\nfunction labelMode(chart, gen, customize) {\n const colors = {};\n for (const dataset of chart.data.datasets) {\n const label = dataset.label ?? '';\n if (!colors[label]) {\n colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});\n }\n const c = colors[label];\n setColors(dataset, c.background, c.border);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chartjs-plugin-autocolors.cjs","sources":["../node_modules/@kurkle/color/dist/color.esm.js","../src/index.js"],"sourcesContent":["/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","import {hsv2rgb, rgbString} from '@kurkle/color';\n\nfunction* hueGen() {\n yield 0;\n while (true) {\n for (let i = 1; i < 10; i++) {\n const d = 1 << i;\n for (let j = 1; j <= d; j += 2) {\n yield j / d;\n }\n }\n }\n}\n\nfunction* colorGen(repeat = 1) {\n const hue = hueGen();\n let h = hue.next();\n while (!h.done) {\n let rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.8);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.5);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n h = hue.next();\n }\n}\n\nfunction setColors(dataset, background, border) {\n dataset.backgroundColor = dataset.backgroundColor || background;\n dataset.borderColor = dataset.borderColor || border;\n return dataset.backgroundColor === background && dataset.borderColor === border;\n}\n\nfunction getNext(color, customize, context) {\n const c = color.next().value;\n if (typeof customize === 'function') {\n return customize(Object.assign({colors: c}, context));\n }\n return c;\n}\n\nfunction defaultMode(chart, gen, customize, mode) {\n const datasetMode = mode === 'dataset';\n\n let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});\n for (const dataset of chart.data.datasets) {\n if (datasetMode) {\n if (setColors(dataset, c.background, c.border)) {\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index});\n }\n } else {\n const background = [];\n const border = [];\n for (let i = 0; i < dataset.data.length; i++) {\n background.push(c.background);\n border.push(c.border);\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});\n }\n setColors(dataset, background, border);\n }\n }\n\n}\n\nfunction labelMode(chart, gen, customize) {\n const colors = {};\n for (const dataset of chart.data.datasets) {\n const label = dataset.label ?? '';\n if (!colors[label]) {\n colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});\n }\n const c = colors[label];\n setColors(dataset, c.background, c.border);\n }\n}\n\nconst autocolorPlugin = {\n id: 'autocolors',\n beforeUpdate(chart, args, options) {\n const {mode = 'dataset', enabled = true, customize, repeat} = options;\n\n if (!enabled) {\n return;\n }\n\n const gen = colorGen(repeat);\n\n if (options.offset) {\n // offset the color generation by n colors\n for (let i = 0; i < options.offset; i++) {\n gen.next();\n }\n }\n\n if (mode === 'label') {\n return labelMode(chart, gen, customize);\n }\n return defaultMode(chart, gen, customize, mode);\n }\n};\n\nexport {autocolorPlugin as default};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * chartjs-plugin-autocolors v0.2.2
2
+ * chartjs-plugin-autocolors v0.3.0
3
3
  * https://github.com/kurkle/chartjs-plugin-autocolors#readme
4
- * (c) 2023 Jukka Kurkela <jukka.kurkela@gmail.com>
4
+ * (c) 2024 Jukka Kurkela <jukka.kurkela@gmail.com>
5
5
  * Released under the MIT license
6
6
  */
7
7
  import { hsv2rgb, rgbString } from '@kurkle/color';
@@ -48,7 +48,42 @@ function getNext(color, customize, context) {
48
48
  return c;
49
49
  }
50
50
 
51
- var index = {
51
+ function defaultMode(chart, gen, customize, mode) {
52
+ const datasetMode = mode === 'dataset';
53
+
54
+ let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});
55
+ for (const dataset of chart.data.datasets) {
56
+ if (datasetMode) {
57
+ if (setColors(dataset, c.background, c.border)) {
58
+ c = getNext(gen, customize, {chart, datasetIndex: dataset.index});
59
+ }
60
+ } else {
61
+ const background = [];
62
+ const border = [];
63
+ for (let i = 0; i < dataset.data.length; i++) {
64
+ background.push(c.background);
65
+ border.push(c.border);
66
+ c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});
67
+ }
68
+ setColors(dataset, background, border);
69
+ }
70
+ }
71
+
72
+ }
73
+
74
+ function labelMode(chart, gen, customize) {
75
+ const colors = {};
76
+ for (const dataset of chart.data.datasets) {
77
+ const label = dataset.label ?? '';
78
+ if (!colors[label]) {
79
+ colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});
80
+ }
81
+ const c = colors[label];
82
+ setColors(dataset, c.background, c.border);
83
+ }
84
+ }
85
+
86
+ const autocolorPlugin = {
52
87
  id: 'autocolors',
53
88
  beforeUpdate(chart, args, options) {
54
89
  const {mode = 'dataset', enabled = true, customize, repeat} = options;
@@ -69,40 +104,9 @@ var index = {
69
104
  if (mode === 'label') {
70
105
  return labelMode(chart, gen, customize);
71
106
  }
72
-
73
- const datasetMode = mode === 'dataset';
74
-
75
- let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});
76
- for (const dataset of chart.data.datasets) {
77
- if (datasetMode) {
78
- if (setColors(dataset, c.background, c.border)) {
79
- c = getNext(gen, customize, {chart, datasetIndex: dataset.index});
80
- }
81
- } else {
82
- const background = [];
83
- const border = [];
84
- for (let i = 0; i < dataset.data.length; i++) {
85
- background.push(c.background);
86
- border.push(c.border);
87
- c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});
88
- }
89
- setColors(dataset, background, border);
90
- }
91
- }
107
+ return defaultMode(chart, gen, customize, mode);
92
108
  }
93
109
  };
94
110
 
95
- function labelMode(chart, gen, customize) {
96
- const colors = {};
97
- for (const dataset of chart.data.datasets) {
98
- const label = dataset.label ?? '';
99
- if (!colors[label]) {
100
- colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});
101
- }
102
- const c = colors[label];
103
- setColors(dataset, c.background, c.border);
104
- }
105
- }
106
-
107
- export { index as default };
111
+ export { autocolorPlugin as default };
108
112
  //# sourceMappingURL=chartjs-plugin-autocolors.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chartjs-plugin-autocolors.esm.js","sources":["../src/index.js"],"sourcesContent":["import {hsv2rgb, rgbString} from '@kurkle/color';\n\nfunction* hueGen() {\n yield 0;\n while (true) {\n for (let i = 1; i < 10; i++) {\n const d = 1 << i;\n for (let j = 1; j <= d; j += 2) {\n yield j / d;\n }\n }\n }\n}\n\nfunction* colorGen(repeat = 1) {\n const hue = hueGen();\n let h = hue.next();\n while (!h.done) {\n let rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.8);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.5);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n h = hue.next();\n }\n}\n\nfunction setColors(dataset, background, border) {\n dataset.backgroundColor = dataset.backgroundColor || background;\n dataset.borderColor = dataset.borderColor || border;\n return dataset.backgroundColor === background && dataset.borderColor === border;\n}\n\nfunction getNext(color, customize, context) {\n const c = color.next().value;\n if (typeof customize === 'function') {\n return customize(Object.assign({colors: c}, context));\n }\n return c;\n}\n\nexport default {\n id: 'autocolors',\n beforeUpdate(chart, args, options) {\n const {mode = 'dataset', enabled = true, customize, repeat} = options;\n\n if (!enabled) {\n return;\n }\n\n const gen = colorGen(repeat);\n\n if (options.offset) {\n // offset the color generation by n colors\n for (let i = 0; i < options.offset; i++) {\n gen.next();\n }\n }\n\n if (mode === 'label') {\n return labelMode(chart, gen, customize);\n }\n\n const datasetMode = mode === 'dataset';\n\n let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});\n for (const dataset of chart.data.datasets) {\n if (datasetMode) {\n if (setColors(dataset, c.background, c.border)) {\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index});\n }\n } else {\n const background = [];\n const border = [];\n for (let i = 0; i < dataset.data.length; i++) {\n background.push(c.background);\n border.push(c.border);\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});\n }\n setColors(dataset, background, border);\n }\n }\n }\n};\n\nfunction labelMode(chart, gen, customize) {\n const colors = {};\n for (const dataset of chart.data.datasets) {\n const label = dataset.label ?? '';\n if (!colors[label]) {\n colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});\n }\n const c = colors[label];\n setColors(dataset, c.background, c.border);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chartjs-plugin-autocolors.esm.js","sources":["../src/index.js"],"sourcesContent":["import {hsv2rgb, rgbString} from '@kurkle/color';\n\nfunction* hueGen() {\n yield 0;\n while (true) {\n for (let i = 1; i < 10; i++) {\n const d = 1 << i;\n for (let j = 1; j <= d; j += 2) {\n yield j / d;\n }\n }\n }\n}\n\nfunction* colorGen(repeat = 1) {\n const hue = hueGen();\n let h = hue.next();\n while (!h.done) {\n let rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.8);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.5);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n h = hue.next();\n }\n}\n\nfunction setColors(dataset, background, border) {\n dataset.backgroundColor = dataset.backgroundColor || background;\n dataset.borderColor = dataset.borderColor || border;\n return dataset.backgroundColor === background && dataset.borderColor === border;\n}\n\nfunction getNext(color, customize, context) {\n const c = color.next().value;\n if (typeof customize === 'function') {\n return customize(Object.assign({colors: c}, context));\n }\n return c;\n}\n\nfunction defaultMode(chart, gen, customize, mode) {\n const datasetMode = mode === 'dataset';\n\n let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});\n for (const dataset of chart.data.datasets) {\n if (datasetMode) {\n if (setColors(dataset, c.background, c.border)) {\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index});\n }\n } else {\n const background = [];\n const border = [];\n for (let i = 0; i < dataset.data.length; i++) {\n background.push(c.background);\n border.push(c.border);\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});\n }\n setColors(dataset, background, border);\n }\n }\n\n}\n\nfunction labelMode(chart, gen, customize) {\n const colors = {};\n for (const dataset of chart.data.datasets) {\n const label = dataset.label ?? '';\n if (!colors[label]) {\n colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});\n }\n const c = colors[label];\n setColors(dataset, c.background, c.border);\n }\n}\n\nconst autocolorPlugin = {\n id: 'autocolors',\n beforeUpdate(chart, args, options) {\n const {mode = 'dataset', enabled = true, customize, repeat} = options;\n\n if (!enabled) {\n return;\n }\n\n const gen = colorGen(repeat);\n\n if (options.offset) {\n // offset the color generation by n colors\n for (let i = 0; i < options.offset; i++) {\n gen.next();\n }\n }\n\n if (mode === 'label') {\n return labelMode(chart, gen, customize);\n }\n return defaultMode(chart, gen, customize, mode);\n }\n};\n\nexport {autocolorPlugin as default};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * chartjs-plugin-autocolors v0.2.2
2
+ * chartjs-plugin-autocolors v0.3.0
3
3
  * https://github.com/kurkle/chartjs-plugin-autocolors#readme
4
- * (c) 2023 Jukka Kurkela <jukka.kurkela@gmail.com>
4
+ * (c) 2024 Jukka Kurkela <jukka.kurkela@gmail.com>
5
5
  * Released under the MIT license
6
6
  */
7
7
  !function(t,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(t="undefined"!=typeof globalThis?globalThis:t||self)["chartjs-plugin-autocolors"]=o()}(this,(function(){"use strict";
@@ -10,5 +10,5 @@
10
10
  * https://github.com/kurkle/color#readme
11
11
  * (c) 2023 Jukka Kurkela
12
12
  * Released under the MIT License
13
- */function t(t){return t+.5|0}const o=(t,o,e)=>Math.max(Math.min(t,e),o);function e(e){return o(t(255*e),0,255)}function n(t,o,e){const n=(n,r=(n+t/60)%6)=>e-e*o*Math.max(Math.min(r,4-r,1),0);return[n(5),n(3),n(1)]}function r(t,o,r){return a=n,d=t,u=o,c=r,(Array.isArray(d)?a(d[0],d[1],d[2]):a(d,u,c)).map(e);var a,d,u,c}function a(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${function(e){return o(t(e/2.55)/100,0,1)}(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}function d(t,o,e){return t.backgroundColor=t.backgroundColor||o,t.borderColor=t.borderColor||e,t.backgroundColor===o&&t.borderColor===e}function u(t,o,e){const n=t.next().value;return"function"==typeof o?o(Object.assign({colors:n},e)):n}return{id:"autocolors",beforeUpdate(t,o,e){const{mode:n="dataset",enabled:c=!0,customize:f,repeat:s}=e;if(!c)return;const i=function*(t=1){const o=function*(){for(yield 0;;)for(let t=1;t<10;t++){const o=1<<t;for(let t=1;t<=o;t+=2)yield t/o}}();let e=o.next();for(;!e.done;){let n=r(Math.round(360*e.value),.6,.8);for(let o=0;o<t;o++)yield{background:a({r:n[0],g:n[1],b:n[2],a:192}),border:a({r:n[0],g:n[1],b:n[2],a:144})};n=r(Math.round(360*e.value),.6,.5);for(let o=0;o<t;o++)yield{background:a({r:n[0],g:n[1],b:n[2],a:192}),border:a({r:n[0],g:n[1],b:n[2],a:144})};e=o.next()}}(s);if(e.offset)for(let t=0;t<e.offset;t++)i.next();if("label"===n)return function(t,o,e){const n={};for(const r of t.data.datasets){const a=r.label??"";n[a]||(n[a]=u(o,e,{chart:t,datasetIndex:0,dataIndex:void 0,label:a}));const c=n[a];d(r,c.background,c.border)}}(t,i,f);const l="dataset"===n;let b=u(i,f,{chart:t,datasetIndex:0,dataIndex:l?void 0:0});for(const o of t.data.datasets)if(l)d(o,b.background,b.border)&&(b=u(i,f,{chart:t,datasetIndex:o.index}));else{const e=[],n=[];for(let r=0;r<o.data.length;r++)e.push(b.background),n.push(b.border),b=u(i,f,{chart:t,datasetIndex:o.index,dataIndex:r});d(o,e,n)}}}}));
13
+ */function t(t){return t+.5|0}const o=(t,o,e)=>Math.max(Math.min(t,e),o);function e(e){return o(t(255*e),0,255)}function n(t,o,e){const n=(n,r=(n+t/60)%6)=>e-e*o*Math.max(Math.min(r,4-r,1),0);return[n(5),n(3),n(1)]}function r(t,o,r){return a=n,d=t,u=o,c=r,(Array.isArray(d)?a(d[0],d[1],d[2]):a(d,u,c)).map(e);var a,d,u,c}function a(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${function(e){return o(t(e/2.55)/100,0,1)}(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}function d(t,o,e){return t.backgroundColor=t.backgroundColor||o,t.borderColor=t.borderColor||e,t.backgroundColor===o&&t.borderColor===e}function u(t,o,e){const n=t.next().value;return"function"==typeof o?o(Object.assign({colors:n},e)):n}return{id:"autocolors",beforeUpdate(t,o,e){const{mode:n="dataset",enabled:c=!0,customize:f,repeat:s}=e;if(!c)return;const i=function*(t=1){const o=function*(){for(yield 0;;)for(let t=1;t<10;t++){const o=1<<t;for(let t=1;t<=o;t+=2)yield t/o}}();let e=o.next();for(;!e.done;){let n=r(Math.round(360*e.value),.6,.8);for(let o=0;o<t;o++)yield{background:a({r:n[0],g:n[1],b:n[2],a:192}),border:a({r:n[0],g:n[1],b:n[2],a:144})};n=r(Math.round(360*e.value),.6,.5);for(let o=0;o<t;o++)yield{background:a({r:n[0],g:n[1],b:n[2],a:192}),border:a({r:n[0],g:n[1],b:n[2],a:144})};e=o.next()}}(s);if(e.offset)for(let t=0;t<e.offset;t++)i.next();return"label"===n?function(t,o,e){const n={};for(const r of t.data.datasets){const a=r.label??"";n[a]||(n[a]=u(o,e,{chart:t,datasetIndex:0,dataIndex:void 0,label:a}));const c=n[a];d(r,c.background,c.border)}}(t,i,f):function(t,o,e,n){const r="dataset"===n;let a=u(o,e,{chart:t,datasetIndex:0,dataIndex:r?void 0:0});for(const n of t.data.datasets)if(r)d(n,a.background,a.border)&&(a=u(o,e,{chart:t,datasetIndex:n.index}));else{const r=[],c=[];for(let d=0;d<n.data.length;d++)r.push(a.background),c.push(a.border),a=u(o,e,{chart:t,datasetIndex:n.index,dataIndex:d});d(n,r,c)}}(t,i,f,n)}}}));
14
14
  //# sourceMappingURL=chartjs-plugin-autocolors.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chartjs-plugin-autocolors.min.js","sources":["../node_modules/@kurkle/color/dist/color.esm.js","../src/index.js"],"sourcesContent":["/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","import {hsv2rgb, rgbString} from '@kurkle/color';\n\nfunction* hueGen() {\n yield 0;\n while (true) {\n for (let i = 1; i < 10; i++) {\n const d = 1 << i;\n for (let j = 1; j <= d; j += 2) {\n yield j / d;\n }\n }\n }\n}\n\nfunction* colorGen(repeat = 1) {\n const hue = hueGen();\n let h = hue.next();\n while (!h.done) {\n let rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.8);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.5);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n h = hue.next();\n }\n}\n\nfunction setColors(dataset, background, border) {\n dataset.backgroundColor = dataset.backgroundColor || background;\n dataset.borderColor = dataset.borderColor || border;\n return dataset.backgroundColor === background && dataset.borderColor === border;\n}\n\nfunction getNext(color, customize, context) {\n const c = color.next().value;\n if (typeof customize === 'function') {\n return customize(Object.assign({colors: c}, context));\n }\n return c;\n}\n\nexport default {\n id: 'autocolors',\n beforeUpdate(chart, args, options) {\n const {mode = 'dataset', enabled = true, customize, repeat} = options;\n\n if (!enabled) {\n return;\n }\n\n const gen = colorGen(repeat);\n\n if (options.offset) {\n // offset the color generation by n colors\n for (let i = 0; i < options.offset; i++) {\n gen.next();\n }\n }\n\n if (mode === 'label') {\n return labelMode(chart, gen, customize);\n }\n\n const datasetMode = mode === 'dataset';\n\n let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});\n for (const dataset of chart.data.datasets) {\n if (datasetMode) {\n if (setColors(dataset, c.background, c.border)) {\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index});\n }\n } else {\n const background = [];\n const border = [];\n for (let i = 0; i < dataset.data.length; i++) {\n background.push(c.background);\n border.push(c.border);\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});\n }\n setColors(dataset, background, border);\n }\n }\n }\n};\n\nfunction labelMode(chart, gen, customize) {\n const colors = {};\n for (const dataset of chart.data.datasets) {\n const label = dataset.label ?? '';\n if (!colors[label]) {\n colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});\n }\n const c = colors[label];\n setColors(dataset, c.background, c.border);\n }\n}\n"],"names":["round","v","lim","l","h","Math","max","min","n2b","hsv2rgbn","s","f","n","k","hsv2rgb","a","b","c","Array","isArray","map","rgbString","r","g","b2n","setColors","dataset","background","border","backgroundColor","borderColor","getNext","color","customize","context","next","value","Object","assign","colors","id","beforeUpdate","chart","args","options","mode","enabled","repeat","gen","hue","i","d","j","hueGen","done","rgb","colorGen","offset","data","datasets","label","datasetIndex","dataIndex","undefined","labelMode","datasetMode","index","length","push"],"mappings":"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"}
1
+ {"version":3,"file":"chartjs-plugin-autocolors.min.js","sources":["../node_modules/@kurkle/color/dist/color.esm.js","../src/index.js"],"sourcesContent":["/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","import {hsv2rgb, rgbString} from '@kurkle/color';\n\nfunction* hueGen() {\n yield 0;\n while (true) {\n for (let i = 1; i < 10; i++) {\n const d = 1 << i;\n for (let j = 1; j <= d; j += 2) {\n yield j / d;\n }\n }\n }\n}\n\nfunction* colorGen(repeat = 1) {\n const hue = hueGen();\n let h = hue.next();\n while (!h.done) {\n let rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.8);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n rgb = hsv2rgb(Math.round(h.value * 360), 0.6, 0.5);\n for (let i = 0; i < repeat; i++) {\n yield {background: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 192}), border: rgbString({r: rgb[0], g: rgb[1], b: rgb[2], a: 144})};\n }\n h = hue.next();\n }\n}\n\nfunction setColors(dataset, background, border) {\n dataset.backgroundColor = dataset.backgroundColor || background;\n dataset.borderColor = dataset.borderColor || border;\n return dataset.backgroundColor === background && dataset.borderColor === border;\n}\n\nfunction getNext(color, customize, context) {\n const c = color.next().value;\n if (typeof customize === 'function') {\n return customize(Object.assign({colors: c}, context));\n }\n return c;\n}\n\nfunction defaultMode(chart, gen, customize, mode) {\n const datasetMode = mode === 'dataset';\n\n let c = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: datasetMode ? undefined : 0});\n for (const dataset of chart.data.datasets) {\n if (datasetMode) {\n if (setColors(dataset, c.background, c.border)) {\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index});\n }\n } else {\n const background = [];\n const border = [];\n for (let i = 0; i < dataset.data.length; i++) {\n background.push(c.background);\n border.push(c.border);\n c = getNext(gen, customize, {chart, datasetIndex: dataset.index, dataIndex: i});\n }\n setColors(dataset, background, border);\n }\n }\n\n}\n\nfunction labelMode(chart, gen, customize) {\n const colors = {};\n for (const dataset of chart.data.datasets) {\n const label = dataset.label ?? '';\n if (!colors[label]) {\n colors[label] = getNext(gen, customize, {chart, datasetIndex: 0, dataIndex: undefined, label});\n }\n const c = colors[label];\n setColors(dataset, c.background, c.border);\n }\n}\n\nconst autocolorPlugin = {\n id: 'autocolors',\n beforeUpdate(chart, args, options) {\n const {mode = 'dataset', enabled = true, customize, repeat} = options;\n\n if (!enabled) {\n return;\n }\n\n const gen = colorGen(repeat);\n\n if (options.offset) {\n // offset the color generation by n colors\n for (let i = 0; i < options.offset; i++) {\n gen.next();\n }\n }\n\n if (mode === 'label') {\n return labelMode(chart, gen, customize);\n }\n return defaultMode(chart, gen, customize, mode);\n }\n};\n\nexport {autocolorPlugin as default};\n"],"names":["round","v","lim","l","h","Math","max","min","n2b","hsv2rgbn","s","f","n","k","hsv2rgb","a","b","c","Array","isArray","map","rgbString","r","g","b2n","setColors","dataset","background","border","backgroundColor","borderColor","getNext","color","customize","context","next","value","Object","assign","colors","id","beforeUpdate","chart","args","options","mode","enabled","repeat","gen","hue","i","d","j","hueGen","done","rgb","colorGen","offset","data","datasets","label","datasetIndex","dataIndex","undefined","labelMode","datasetMode","index","length","push","defaultMode"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chartjs-plugin-autocolors",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Automatic color generation for Chart.js",
5
5
  "type": "module",
6
6
  "main": "dist/chartjs-plugin-autocolors.cjs",
@@ -18,7 +18,7 @@
18
18
  "scripts": {
19
19
  "autobuild": "rollup -c -w",
20
20
  "build": "rollup -c",
21
- "dev": "karma start ./karma.conf.cjs --no-signle-run --auto-watch --browsers chrome",
21
+ "dev": "karma start ./karma.conf.cjs --no-single-run --auto-watch --browsers chrome",
22
22
  "lint": "concurrently -r \"npm:lint-*\"",
23
23
  "lint-js": "eslint \"src/**/*.js\"",
24
24
  "lint-md": "eslint \"**/*.md\"",
@@ -26,7 +26,7 @@
26
26
  "lint-html": "eslint \"samples/**/*.html\"",
27
27
  "test": "cross-env NODE_ENV=test concurrently \"npm:test-*\"",
28
28
  "test-lint": "npm run lint",
29
- "test-karma": "karma start ./karma.conf.cjs --auto-watch --single-run"
29
+ "test-karma": "karma start ./karma.conf.cjs --no-auto-watch --single-run"
30
30
  },
31
31
  "repository": {
32
32
  "type": "git",
@@ -7,12 +7,12 @@ declare module 'chart.js' {
7
7
  }
8
8
  }
9
9
 
10
- interface ColorsDescriptor {
10
+ export interface ColorsDescriptor {
11
11
  background: string
12
12
  border: string
13
13
  }
14
14
 
15
- interface AutocolorsOptions {
15
+ export interface AutocolorsOptions {
16
16
  enabled?: boolean,
17
17
  mode?: 'dataset' | 'data' | 'label',
18
18
  offset?: number,
@@ -20,9 +20,15 @@ interface AutocolorsOptions {
20
20
  customize?: (ctx: AutocolorsContext, options: AutocolorsOptions) => ColorsDescriptor
21
21
  }
22
22
 
23
- interface AutocolorsContext {
23
+ export interface AutocolorsContext {
24
24
  chart: Chart
25
25
  colors: ColorsDescriptor
26
26
  dataIndex?: number
27
27
  datasetIndex: number
28
28
  }
29
+
30
+ /**
31
+ * Exports the plugin class as default
32
+ */
33
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
34
+ export { autocolorPlugin as default };