@libs-ui/components-color-picker 0.2.305 → 0.2.306-3

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,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jb2xvci1waWNrZXIvc3JjL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGlja2VyT3B0aW9ucyB7XG4gIHNsQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgaHVlQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplOiBBcnJheTxudW1iZXI+O1xuICBzaG93SHNsOiBib29sZWFuO1xuICBzaG93UmdiOiBib29sZWFuO1xuICBzaG93SGV4OiBib29sZWFuO1xuICBzaG93QWxwaGE6IGJvb2xlYW47XG4gIGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ6ICdyZ2InIHwgJ3JnYmEnIHwgJ2hzbCcgfCAnaHNsYScgfCAnaGV4JyB8ICdjb2xvcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlckN1c3RvbU9wdGlvbnMge1xuICBzbEJhclNpemU/OiBBcnJheTxudW1iZXI+O1xuICBodWVCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgc2hvd0hzbD86IGJvb2xlYW47XG4gIHNob3dSZ2I/OiBib29sZWFuO1xuICBzaG93SGV4PzogYm9vbGVhbjtcbiAgc2hvd0FscGhhPzogYm9vbGVhbjtcbiAgY29sb3I/OiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ/OiAncmdiJyB8ICdyZ2JhJyB8ICdoc2wnIHwgJ2hzbGEnIHwgJ2hleCcgfCAnY29sb3InO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW52YXNIZWxwZXIge1xuICBzZXRIdWU6IChodWU6IG51bWJlcikgPT4gdm9pZDtcbiAgZ3JhYkNvbG9yOiAoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG4gIGZpbmRDb2xvcjogKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlclZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnVXBkYXRlIHtcbiAgaFBvaW50PzogYm9vbGVhbjtcbiAgc2xQb2ludD86IGJvb2xlYW47XG4gIGFQb2ludD86IGJvb2xlYW47XG4gIGhleD86IGJvb2xlYW47XG4gIHJnYj86IGJvb2xlYW47XG4gIGhzbD86IGJvb2xlYW47XG4gIGh1ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHB1dENvbG9yQ2hhbmdlTXVsdGlwbGVUeXBlIHtcbiAgcmdiYTogc3RyaW5nO1xuICByZ2I6IHN0cmluZztcbiAgaGV4OiBzdHJpbmc7XG4gIGhzbDogc3RyaW5nO1xuICBoc2xhOiBzdHJpbmc7XG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9jb2xvci1waWNrZXIvc3JjL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGlja2VyT3B0aW9ucyB7XG4gIHNsQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgaHVlQmFyU2l6ZTogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplOiBBcnJheTxudW1iZXI+O1xuICBzaG93SHNsOiBib29sZWFuO1xuICBzaG93UmdiOiBib29sZWFuO1xuICBzaG93SGV4OiBib29sZWFuO1xuICBzaG93QWxwaGE6IGJvb2xlYW47XG4gIGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ6ICdyZ2InIHwgJ3JnYmEnIHwgJ2hzbCcgfCAnaHNsYScgfCAnaGV4JyB8ICdjb2xvcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlckN1c3RvbU9wdGlvbnMge1xuICBzbEJhclNpemU/OiBBcnJheTxudW1iZXI+O1xuICBodWVCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgYWxwaGFCYXJTaXplPzogQXJyYXk8bnVtYmVyPjtcbiAgc2hvd0hzbD86IGJvb2xlYW47XG4gIHNob3dSZ2I/OiBib29sZWFuO1xuICBzaG93SGV4PzogYm9vbGVhbjtcbiAgc2hvd0FscGhhPzogYm9vbGVhbjtcbiAgY29sb3I/OiBzdHJpbmcgfCBBcnJheTxudW1iZXI+O1xuICBmb3JtYXQ/OiAncmdiJyB8ICdyZ2JhJyB8ICdoc2wnIHwgJ2hzbGEnIHwgJ2hleCcgfCAnY29sb3InO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW52YXNIZWxwZXIge1xuICBzZXRIdWU6IChodWU6IG51bWJlcikgPT4gdm9pZDtcbiAgZ3JhYkNvbG9yOiAoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG4gIGZpbmRDb2xvcjogKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IEFycmF5PG51bWJlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpY2tlclZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnVXBkYXRlIHtcbiAgaFBvaW50PzogYm9vbGVhbjtcbiAgc2xQb2ludD86IGJvb2xlYW47XG4gIGFQb2ludD86IGJvb2xlYW47XG4gIGhleD86IGJvb2xlYW47XG4gIHJnYj86IGJvb2xlYW47XG4gIGhzbD86IGJvb2xlYW47XG4gIGh1ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHB1dENvbG9yQ2hhbmdlTXVsdGlwbGVUeXBlIHtcbiAgcmdiYTogc3RyaW5nO1xuICByZ2I6IHN0cmluZztcbiAgaGV4OiBzdHJpbmc7XG4gIGhzbDogc3RyaW5nO1xuICBoc2xhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbG9yIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuIl19
@@ -1,5 +1,155 @@
1
- import { get, isNil, set } from "@libs-ui/utils";
2
- export const ColorNames = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', 'aqua': '#00FFFF', 'aquamarine': '#7FFFD4', 'azure': '#F0FFFF', 'beige': '#F5F5DC', 'bisque': '#FFE4C4', 'black': '#000000', 'blanchedalmond': '#FFEBCD', 'blue': '#0000FF', 'blueviolet': '#8A2BE2', 'brown': '#A52A2A', 'burlywood': '#DEB887', 'cadetblue': '#5F9EA0', 'chartreuse': '#7FFF00', 'chocolate': '#D2691E', 'coral': '#FF7F50', 'cornflowerblue': '#6495ED', 'cornsilk': '#FFF8DC', 'crimson': '#DC143C', 'cyan': '#00FFFF', 'darkblue': '#00008B', 'darkcyan': '#008B8B', 'darkgoldenrod': '#B8860B', 'darkgray': '#A9A9A9', 'darkgrey': '#A9A9A9', 'darkgreen': '#006400', 'darkkhaki': '#BDB76B', 'darkmagenta': '#8B008B', 'darkolivegreen': '#556B2F', 'darkorange': '#FF8C00', 'darkorchid': '#9932CC', 'darkred': '#8B0000', 'darksalmon': '#E9967A', 'darkseagreen': '#8FBC8F', 'darkslateblue': '#483D8B', 'darkslategray': '#2F4F4F', 'darkslategrey': '#2F4F4F', 'darkturquoise': '#00CED1', 'darkviolet': '#9400D3', 'deeppink': '#FF1493', 'deepskyblue': '#00BFFF', 'dimgray': '#696969', 'dimgrey': '#696969', 'dodgerblue': '#1E90FF', 'firebrick': '#B22222', 'floralwhite': '#FFFAF0', 'forestgreen': '#228B22', 'fuchsia': '#FF00FF', 'gainsboro': '#DCDCDC', 'ghostwhite': '#F8F8FF', 'gold': '#FFD700', 'goldenrod': '#DAA520', 'gray': '#808080', 'grey': '#808080', 'green': '#008000', 'greenyellow': '#ADFF2F', 'honeydew': '#F0FFF0', 'hotpink': '#FF69B4', 'indianred ': '#CD5C5C', 'indigo ': '#4B0082', 'ivory': '#FFFFF0', 'khaki': '#F0E68C', 'lavender': '#E6E6FA', 'lavenderblush': '#FFF0F5', 'lawngreen': '#7CFC00', 'lemonchiffon': '#FFFACD', 'lightblue': '#ADD8E6', 'lightcoral': '#F08080', 'lightcyan': '#E0FFFF', 'lightgoldenrodyellow': '#FAFAD2', 'lightgray': '#D3D3D3', 'lightgrey': '#D3D3D3', 'lightgreen': '#90EE90', 'lightpink': '#FFB6C1', 'lightsalmon': '#FFA07A', 'lightseagreen': '#20B2AA', 'lightskyblue': '#87CEFA', 'lightslategray': '#778899', 'lightslategrey': '#778899', 'lightsteelblue': '#B0C4DE', 'lightyellow': '#FFFFE0', 'lime': '#00FF00', 'limegreen': '#32CD32', 'linen': '#FAF0E6', 'magenta': '#FF00FF', 'maroon': '#800000', 'mediumaquamarine': '#66CDAA', 'mediumblue': '#0000CD', 'mediumorchid': '#BA55D3', 'mediumpurple': '#9370DB', 'mediumseagreen': '#3CB371', 'mediumslateblue': '#7B68EE', 'mediumspringgreen': '#00FA9A', 'mediumturquoise': '#48D1CC', 'mediumvioletred': '#C71585', 'midnightblue': '#191970', 'mintcream': '#F5FFFA', 'mistyrose': '#FFE4E1', 'moccasin': '#FFE4B5', 'navajowhite': '#FFDEAD', 'navy': '#000080', 'oldlace': '#FDF5E6', 'olive': '#808000', 'olivedrab': '#6B8E23', 'orange': '#FFA500', 'orangered': '#FF4500', 'orchid': '#DA70D6', 'palegoldenrod': '#EEE8AA', 'palegreen': '#98FB98', 'paleturquoise': '#AFEEEE', 'palevioletred': '#DB7093', 'papayawhip': '#FFEFD5', 'peachpuff': '#FFDAB9', 'peru': '#CD853F', 'pink': '#FFC0CB', 'plum': '#DDA0DD', 'powderblue': '#B0E0E6', 'purple': '#800080', 'rebeccapurple': '#663399', 'red': '#FF0000', 'rosybrown': '#BC8F8F', 'royalblue': '#4169E1', 'saddlebrown': '#8B4513', 'salmon': '#FA8072', 'sandybrown': '#F4A460', 'seagreen': '#2E8B57', 'seashell': '#FFF5EE', 'sienna': '#A0522D', 'silver': '#C0C0C0', 'skyblue': '#87CEEB', 'slateblue': '#6A5ACD', 'slategray': '#708090', 'slategrey': '#708090', 'snow': '#FFFAFA', 'springgreen': '#00FF7F', 'steelblue': '#4682B4', 'tan': '#D2B48C', 'teal': '#008080', 'thistle': '#D8BFD8', 'tomato': '#FF6347', 'turquoise': '#40E0D0', 'violet': '#EE82EE', 'wheat': '#F5DEB3', 'white': '#FFFFFF', 'whitesmoke': '#F5F5F5', 'yellow': '#FFFF00', 'yellowgreen': '#9ACD32' };
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { get, isNil, set } from '@libs-ui/utils';
3
+ export const ColorNames = {
4
+ aliceblue: '#F0F8FF',
5
+ antiquewhite: '#FAEBD7',
6
+ aqua: '#00FFFF',
7
+ aquamarine: '#7FFFD4',
8
+ azure: '#F0FFFF',
9
+ beige: '#F5F5DC',
10
+ bisque: '#FFE4C4',
11
+ black: '#000000',
12
+ blanchedalmond: '#FFEBCD',
13
+ blue: '#0000FF',
14
+ blueviolet: '#8A2BE2',
15
+ brown: '#A52A2A',
16
+ burlywood: '#DEB887',
17
+ cadetblue: '#5F9EA0',
18
+ chartreuse: '#7FFF00',
19
+ chocolate: '#D2691E',
20
+ coral: '#FF7F50',
21
+ cornflowerblue: '#6495ED',
22
+ cornsilk: '#FFF8DC',
23
+ crimson: '#DC143C',
24
+ cyan: '#00FFFF',
25
+ darkblue: '#00008B',
26
+ darkcyan: '#008B8B',
27
+ darkgoldenrod: '#B8860B',
28
+ darkgray: '#A9A9A9',
29
+ darkgrey: '#A9A9A9',
30
+ darkgreen: '#006400',
31
+ darkkhaki: '#BDB76B',
32
+ darkmagenta: '#8B008B',
33
+ darkolivegreen: '#556B2F',
34
+ darkorange: '#FF8C00',
35
+ darkorchid: '#9932CC',
36
+ darkred: '#8B0000',
37
+ darksalmon: '#E9967A',
38
+ darkseagreen: '#8FBC8F',
39
+ darkslateblue: '#483D8B',
40
+ darkslategray: '#2F4F4F',
41
+ darkslategrey: '#2F4F4F',
42
+ darkturquoise: '#00CED1',
43
+ darkviolet: '#9400D3',
44
+ deeppink: '#FF1493',
45
+ deepskyblue: '#00BFFF',
46
+ dimgray: '#696969',
47
+ dimgrey: '#696969',
48
+ dodgerblue: '#1E90FF',
49
+ firebrick: '#B22222',
50
+ floralwhite: '#FFFAF0',
51
+ forestgreen: '#228B22',
52
+ fuchsia: '#FF00FF',
53
+ gainsboro: '#DCDCDC',
54
+ ghostwhite: '#F8F8FF',
55
+ gold: '#FFD700',
56
+ goldenrod: '#DAA520',
57
+ gray: '#808080',
58
+ grey: '#808080',
59
+ green: '#008000',
60
+ greenyellow: '#ADFF2F',
61
+ honeydew: '#F0FFF0',
62
+ hotpink: '#FF69B4',
63
+ indianred: '#CD5C5C',
64
+ indigo: '#4B0082',
65
+ ivory: '#FFFFF0',
66
+ khaki: '#F0E68C',
67
+ lavender: '#E6E6FA',
68
+ lavenderblush: '#FFF0F5',
69
+ lawngreen: '#7CFC00',
70
+ lemonchiffon: '#FFFACD',
71
+ lightblue: '#ADD8E6',
72
+ lightcoral: '#F08080',
73
+ lightcyan: '#E0FFFF',
74
+ lightgoldenrodyellow: '#FAFAD2',
75
+ lightgray: '#D3D3D3',
76
+ lightgrey: '#D3D3D3',
77
+ lightgreen: '#90EE90',
78
+ lightpink: '#FFB6C1',
79
+ lightsalmon: '#FFA07A',
80
+ lightseagreen: '#20B2AA',
81
+ lightskyblue: '#87CEFA',
82
+ lightslategray: '#778899',
83
+ lightslategrey: '#778899',
84
+ lightsteelblue: '#B0C4DE',
85
+ lightyellow: '#FFFFE0',
86
+ lime: '#00FF00',
87
+ limegreen: '#32CD32',
88
+ linen: '#FAF0E6',
89
+ magenta: '#FF00FF',
90
+ maroon: '#800000',
91
+ mediumaquamarine: '#66CDAA',
92
+ mediumblue: '#0000CD',
93
+ mediumorchid: '#BA55D3',
94
+ mediumpurple: '#9370DB',
95
+ mediumseagreen: '#3CB371',
96
+ mediumslateblue: '#7B68EE',
97
+ mediumspringgreen: '#00FA9A',
98
+ mediumturquoise: '#48D1CC',
99
+ mediumvioletred: '#C71585',
100
+ midnightblue: '#191970',
101
+ mintcream: '#F5FFFA',
102
+ mistyrose: '#FFE4E1',
103
+ moccasin: '#FFE4B5',
104
+ navajowhite: '#FFDEAD',
105
+ navy: '#000080',
106
+ oldlace: '#FDF5E6',
107
+ olive: '#808000',
108
+ olivedrab: '#6B8E23',
109
+ orange: '#FFA500',
110
+ orangered: '#FF4500',
111
+ orchid: '#DA70D6',
112
+ palegoldenrod: '#EEE8AA',
113
+ palegreen: '#98FB98',
114
+ paleturquoise: '#AFEEEE',
115
+ palevioletred: '#DB7093',
116
+ papayawhip: '#FFEFD5',
117
+ peachpuff: '#FFDAB9',
118
+ peru: '#CD853F',
119
+ pink: '#FFC0CB',
120
+ plum: '#DDA0DD',
121
+ powderblue: '#B0E0E6',
122
+ purple: '#800080',
123
+ rebeccapurple: '#663399',
124
+ red: '#FF0000',
125
+ rosybrown: '#BC8F8F',
126
+ royalblue: '#4169E1',
127
+ saddlebrown: '#8B4513',
128
+ salmon: '#FA8072',
129
+ sandybrown: '#F4A460',
130
+ seagreen: '#2E8B57',
131
+ seashell: '#FFF5EE',
132
+ sienna: '#A0522D',
133
+ silver: '#C0C0C0',
134
+ skyblue: '#87CEEB',
135
+ slateblue: '#6A5ACD',
136
+ slategray: '#708090',
137
+ slategrey: '#708090',
138
+ snow: '#FFFAFA',
139
+ springgreen: '#00FF7F',
140
+ steelblue: '#4682B4',
141
+ tan: '#D2B48C',
142
+ teal: '#008080',
143
+ thistle: '#D8BFD8',
144
+ tomato: '#FF6347',
145
+ turquoise: '#40E0D0',
146
+ violet: '#EE82EE',
147
+ wheat: '#F5DEB3',
148
+ white: '#FFFFFF',
149
+ whitesmoke: '#F5F5F5',
150
+ yellow: '#FFFF00',
151
+ yellowgreen: '#9ACD32',
152
+ };
3
153
  export const optionsDefault = () => {
4
154
  return {
5
155
  showHsl: false,
@@ -10,12 +160,12 @@ export const optionsDefault = () => {
10
160
  format: 'color',
11
161
  slBarSize: [420, 200],
12
162
  hueBarSize: [420, 20],
13
- alphaBarSize: [420, 20]
163
+ alphaBarSize: [420, 20],
14
164
  };
15
165
  };
16
166
  export const limit = (value, min, max) => {
17
167
  value = +value;
18
- return isNaN(value) ? min : (value < min ? min : (value > max ? max : value));
168
+ return isNaN(value) ? min : value < min ? min : value > max ? max : value;
19
169
  };
20
170
  export const hslToRgb = (h, s, l) => {
21
171
  let r, g, b;
@@ -38,10 +188,10 @@ export const hslToRgb = (h, s, l) => {
38
188
  return p;
39
189
  };
40
190
  const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
41
- const p = (2 * l) - q;
42
- r = hueToRgb(p, q, h + (1 / 3));
191
+ const p = 2 * l - q;
192
+ r = hueToRgb(p, q, h + 1 / 3);
43
193
  g = hueToRgb(p, q, h);
44
- b = hueToRgb(p, q, h - (1 / 3));
194
+ b = hueToRgb(p, q, h - 1 / 3);
45
195
  return [r * 255, g * 255, b * 255].map(Math.round);
46
196
  };
47
197
  export const cssColorToRgba = (color) => {
@@ -49,32 +199,17 @@ export const cssColorToRgba = (color) => {
49
199
  const colorByName = get(ColorNames, color.toLowerCase());
50
200
  const [, , , r, g, b, a, , rr, gg, bb, aa] = /^\s*#?((([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])?)|(([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?))\s*$/i.exec(colorByName || color) || [];
51
201
  if (!isNil(r)) {
52
- return [
53
- parseInt(r + r, 16),
54
- parseInt(g + g, 16),
55
- parseInt(b + b, 16),
56
- a ? +((parseInt(a + a, 16)) / 255).toFixed(2) : 1
57
- ];
202
+ return [parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), a ? +(parseInt(a + a, 16) / 255).toFixed(2) : 1];
58
203
  }
59
204
  if (!isNil(rr)) {
60
- return [
61
- parseInt(rr, 16),
62
- parseInt(gg, 16),
63
- parseInt(bb, 16),
64
- aa ? +((parseInt(aa, 16)) / 255).toFixed(2) : 1
65
- ];
205
+ return [parseInt(rr, 16), parseInt(gg, 16), parseInt(bb, 16), aa ? +(parseInt(aa, 16) / 255).toFixed(2) : 1];
66
206
  }
67
207
  }
68
208
  return undefined;
69
209
  };
70
210
  export const parseColorToRgba = (color) => {
71
211
  if (Array.isArray(color)) {
72
- return [
73
- limit(color[0], 0, 255),
74
- limit(color[1], 0, 255),
75
- limit(color[2], 0, 255),
76
- limit(color[3] ?? 1, 0, 1)
77
- ];
212
+ return [limit(color[0], 0, 255), limit(color[1], 0, 255), limit(color[2], 0, 255), limit(color[3] ?? 1, 0, 1)];
78
213
  }
79
214
  const parsed = cssColorToRgba(color) || cssRgbaToRgba(color);
80
215
  if (parsed && parsed.length === 3) {
@@ -98,12 +233,7 @@ export const cssHslaToHsla = (hsla) => {
98
233
  };
99
234
  export const parseColorToHsla = (color) => {
100
235
  if (Array.isArray(color)) {
101
- return [
102
- limit(color[0], 0, 360),
103
- limit(color[1], 0, 100),
104
- limit(color[2], 0, 100),
105
- limit(color[3] ?? 1, 0, 1)
106
- ];
236
+ return [limit(color[0], 0, 360), limit(color[1], 0, 100), limit(color[2], 0, 100), limit(color[3] ?? 1, 0, 1)];
107
237
  }
108
238
  const parsed = cssHslaToHsla(color);
109
239
  if (parsed && parsed.length === 3) {
@@ -125,13 +255,13 @@ export const rgbToHsl = (r, g, b) => {
125
255
  s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
126
256
  switch (max) {
127
257
  case r:
128
- h = ((g - b) / d) + (g < b ? 6 : 0);
258
+ h = (g - b) / d + (g < b ? 6 : 0);
129
259
  break;
130
260
  case g:
131
- h = ((b - r) / d) + 2;
261
+ h = (b - r) / d + 2;
132
262
  break;
133
263
  case b:
134
- h = ((r - g) / d) + 4;
264
+ h = (r - g) / d + 4;
135
265
  break;
136
266
  }
137
267
  h = (h || 0) / 6;
@@ -139,7 +269,7 @@ export const rgbToHsl = (r, g, b) => {
139
269
  };
140
270
  export const rgbToHex = (r, g, b) => {
141
271
  [r, g, b] = [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255)];
142
- return "#" + ("000000" + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);
272
+ return '#' + ('000000' + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);
143
273
  };
144
274
  export const rgbToInt = (r, g, b) => {
145
275
  return (r << 16) | (g << 8) | b;
@@ -224,9 +354,11 @@ export const parseColor = (color, format) => {
224
354
  };
225
355
  export const defaultHelper = () => {
226
356
  return {
227
- setHue: () => { return; },
357
+ setHue: () => {
358
+ return;
359
+ },
228
360
  grabColor: () => [],
229
- findColor: () => []
361
+ findColor: () => [],
230
362
  };
231
363
  };
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9zcmMvdXRpbHMvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxX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YSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDNUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQUFBRCxFQUFHLENBQUMsQ0FBQyxHQUFHLDRFQUE0RSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEgsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDNUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQUFBRCxFQUFHLENBQUMsQ0FBQyxHQUFHLDRFQUE0RSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEgsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FB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Q0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRTtJQUMxRCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFO0lBQzFELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDckYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2YsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2QsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBRTVCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVOLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFDRCxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDO1lBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQyxNQUFNO1FBQ2pELEtBQUssQ0FBQztZQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUMsTUFBTTtRQUNuQyxLQUFLLENBQUM7WUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUFDLE1BQU07SUFDckMsQ0FBQztJQUNELENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFakIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBbUIsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUNqRSxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxLQUFLLENBQUM7UUFDWDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbkQsS0FBSyxTQUFTO1lBQ1osT0FBTyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQy9ELEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxTQUFTO1lBQ1osT0FBTyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2hFLEtBQUssS0FBSztZQUNSLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsS0FBSyxRQUFRO1lBQ1gsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTNDLE9BQU8sT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ25ELEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNmLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsS0FBSyxNQUFNO1lBQ1QsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUs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QUFDLEVBQUU7UUFDbkIsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCwgaXNOaWwsIHNldCB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgSVBpY2tlck9wdGlvbnMgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuXG5leHBvcnQgY29uc3QgQ29sb3JOYW1lcyA9IHsgJ2FsaWNlYmx1ZSc6ICcjRjBGOEZGJywgJ2FudGlxdWV3aGl0ZSc6ICcjRkFFQkQ3JywgJ2FxdWEnOiAnIzAwRkZGRicsICdhcXVhbWFyaW5lJzogJyM3RkZGRDQnLCAnYXp1cmUnOiAnI0YwRkZGRicsICdiZWlnZSc6ICcjRjVGNURDJywgJ2Jpc3F1ZSc6ICcjRkZFNEM0JywgJ2JsYWNrJzogJyMwMDAwMDAnLCAnYmxhbmNoZWRhbG1vbmQnOiAnI0ZGRUJDRCcsICdibHVlJzogJyMwMDAwRkYnLCAnYmx1ZXZpb2xldCc6ICcjOEEyQkUyJywgJ2Jyb3duJzogJyNBNTJBMkEnLCAnYnVybHl3b29kJzogJyNERUI4ODcnLCAnY2FkZXRibHVlJzogJyM1RjlFQTAnLCAnY2hhcnRyZXVzZSc6ICcjN0ZGRjAwJywgJ2Nob2NvbGF0ZSc6ICcjRDI2OTFFJywgJ2NvcmFsJzogJyNGRjdGNTAnLCAnY29ybmZsb3dlcmJsdWUnOiAnIzY0OTVFRCcsICdjb3Juc2lsayc6ICcjRkZGOERDJywgJ2NyaW1zb24nOiAnI0RDMTQzQycsICdjeWFuJzogJyMwMEZGRkYnLCAnZGFya2JsdWUnOiAnIzAwMDA4QicsICdkYXJrY3lhbic6ICcjMDA4QjhCJywgJ2Rhcmtnb2xkZW5yb2QnOiAnI0I4ODYwQicsICdkYXJrZ3JheSc6ICcjQTlBOUE5JywgJ2RhcmtncmV5JzogJyNBOUE5QTknLCAnZGFya2dyZWVuJzogJyMwMDY0MDAnLCAnZGFya2toYWtpJzogJyNCREI3NkInLCAnZGFya21hZ2VudGEnOiAnIzhCMDA4QicsICdkYXJrb2xpdmVncmVlbic6ICcjNTU2QjJGJywgJ2RhcmtvcmFuZ2UnOiAnI0ZGOEMwMCcsICdkYXJrb3JjaGlkJzogJyM5OTMyQ0MnLCAnZGFya3JlZCc6ICcjOEIwMDAwJywgJ2RhcmtzYWxtb24nOiAnI0U5OTY3QScsICdkYXJrc2VhZ3JlZW4nOiAnIzhGQkM4RicsICdkYXJrc2xhdGVibHVlJzogJyM0ODNEOEInLCAnZGFya3NsYXRlZ3JheSc6ICcjMkY0RjRGJywgJ2RhcmtzbGF0ZWdyZXknOiAnIzJGNEY0RicsICdkYXJrdHVycXVvaXNlJzogJyMwMENFRDEnLCAnZGFya3Zpb2xldCc6ICcjOTQwMEQzJywgJ2RlZXBwaW5rJzogJyNGRjE0OTMnLCAnZGVlcHNreWJsdWUnOiAnIzAwQkZGRicsICdkaW1ncmF5JzogJyM2OTY5NjknLCAnZGltZ3JleSc6ICcjNjk2OTY5JywgJ2RvZGdlcmJsdWUnOiAnIzFFOTBGRicsICdmaXJlYnJpY2snOiAnI0IyMjIyMicsICdmbG9yYWx3aGl0ZSc6ICcjRkZGQUYwJywgJ2ZvcmVzdGdyZWVuJzogJyMyMjhCMjInLCAnZnVjaHNpYSc6ICcjRkYwMEZGJywgJ2dhaW5zYm9ybyc6ICcjRENEQ0RDJywgJ2dob3N0d2hpdGUnOiAnI0Y4RjhGRicsICdnb2xkJzogJyNGRkQ3MDAnLCAnZ29sZGVucm9kJzogJyNEQUE1MjAnLCAnZ3JheSc6ICcjODA4MDgwJywgJ2dyZXknOiAnIzgwODA4MCcsICdncmVlbic6ICcjMDA4MDAwJywgJ2dyZWVueWVsbG93JzogJyNBREZGMkYnLCAnaG9uZXlkZXcnOiAnI0YwRkZGMCcsICdob3RwaW5rJzogJyNGRjY5QjQnLCAnaW5kaWFucmVkICc6ICcjQ0Q1QzVDJywgJ2luZGlnbyAnOiAnIzRCMDA4MicsICdpdm9yeSc6ICcjRkZGRkYwJywgJ2toYWtpJzogJyNGMEU2OEMnLCAnbGF2ZW5kZXInOiAnI0U2RTZGQScsICdsYXZlbmRlcmJsdXNoJzogJyNGRkYwRjUnLCAnbGF3bmdyZWVuJzogJyM3Q0ZDMDAnLCAnbGVtb25jaGlmZm9uJzogJyNGRkZBQ0QnLCAnbGlnaHRibHVlJzogJyNBREQ4RTYnLCAnbGlnaHRjb3JhbCc6ICcjRjA4MDgwJywgJ2xpZ2h0Y3lhbic6ICcjRTBGRkZGJywgJ2xpZ2h0Z29sZGVucm9keWVsbG93JzogJyNGQUZBRDInLCAnbGlnaHRncmF5JzogJyNEM0QzRDMnLCAnbGlnaHRncmV5JzogJyNEM0QzRDMnLCAnbGlnaHRncmVlbic6ICcjOTBFRTkwJywgJ2xpZ2h0cGluayc6ICcjRkZCNkMxJywgJ2xpZ2h0c2FsbW9uJzogJyNGRkEwN0EnLCAnbGlnaHRzZWFncmVlbic6ICcjMjBCMkFBJywgJ2xpZ2h0c2t5Ymx1ZSc6ICcjODdDRUZBJywgJ2xpZ2h0c2xhdGVncmF5JzogJyM3Nzg4OTknLCAnbGlnaHRzbGF0ZWdyZXknOiAnIzc3ODg5OScsICdsaWdodHN0ZWVsYmx1ZSc6ICcjQjBDNERFJywgJ2xpZ2h0eWVsbG93JzogJyNGRkZGRTAnLCAnbGltZSc6ICcjMDBGRjAwJywgJ2xpbWVncmVlbic6ICcjMzJDRDMyJywgJ2xpbmVuJzogJyNGQUYwRTYnLCAnbWFnZW50YSc6ICcjRkYwMEZGJywgJ21hcm9vbic6ICcjODAwMDAwJywgJ21lZGl1bWFxdWFtYXJpbmUnOiAnIzY2Q0RBQScsICdtZWRpdW1ibHVlJzogJyMwMDAwQ0QnLCAnbWVkaXVtb3JjaGlkJzogJyNCQTU1RDMnLCAnbWVkaXVtcHVycGxlJzogJyM5MzcwREInLCAnbWVkaXVtc2VhZ3JlZW4nOiAnIzNDQjM3MScsICdtZWRpdW1zbGF0ZWJsdWUnOiAnIzdCNjhFRScsICdtZWRpdW1zcHJpbmdncmVlbic6ICcjMDBGQTlBJywgJ21lZGl1bXR1cnF1b2lzZSc6ICcjNDhEMUNDJywgJ21lZGl1bXZpb2xldHJlZCc6ICcjQzcxNTg1JywgJ21pZG5pZ2h0Ymx1ZSc6ICcjMTkxOTcwJywgJ21pbnRjcmVhbSc6ICcjRjVGRkZBJywgJ21pc3R5cm9zZSc6ICcjRkZFNEUxJywgJ21vY2Nhc2luJzogJyNGRkU0QjUnLCAnbmF2YWpvd2hpdGUnOiAnI0ZGREVBRCcsICduYXZ5JzogJyMwMDAwODAnLCAnb2xkbGFjZSc6ICcjRkRGNUU2JywgJ29saXZlJzogJyM4MDgwMDAnLCAnb2xpdmVkcmFiJzogJyM2QjhFMjMnLCAnb3JhbmdlJzogJyNGRkE1MDAnLCAnb3JhbmdlcmVkJzogJyNGRjQ1MDAnLCAnb3JjaGlkJzogJyNEQTcwRDYnLCAncGFsZWdvbGRlbnJvZCc6ICcjRUVFOEFBJywgJ3BhbGVncmVlbic6ICcjOThGQjk4JywgJ3BhbGV0dXJxdW9pc2UnOiAnI0FGRUVFRScsICdwYWxldmlvbGV0cmVkJzogJyNEQjcwOTMnLCAncGFwYXlhd2hpcCc6ICcjRkZFRkQ1JywgJ3BlYWNocHVmZic6ICcjRkZEQUI5JywgJ3BlcnUnOiAnI0NEODUzRicsICdwaW5rJzogJyNGRkMwQ0InLCAncGx1bSc6ICcjRERBMEREJywgJ3Bvd2RlcmJsdWUnOiAnI0IwRTBFNicsICdwdXJwbGUnOiAnIzgwMDA4MCcsICdyZWJlY2NhcHVycGxlJzogJyM2NjMzOTknLCAncmVkJzogJyNGRjAwMDAnLCAncm9zeWJyb3duJzogJyNCQzhGOEYnLCAncm95YWxibHVlJzogJyM0MTY5RTEnLCAnc2FkZGxlYnJvd24nOiAnIzhCNDUxMycsICdzYWxtb24nOiAnI0ZBODA3MicsICdzYW5keWJyb3duJzogJyNGNEE0NjAnLCAnc2VhZ3JlZW4nOiAnIzJFOEI1NycsICdzZWFzaGVsbCc6ICcjRkZGNUVFJywgJ3NpZW5uYSc6ICcjQTA1MjJEJywgJ3NpbHZlcic6ICcjQzBDMEMwJywgJ3NreWJsdWUnOiAnIzg3Q0VFQicsICdzbGF0ZWJsdWUnOiAnIzZBNUFDRCcsICdzbGF0ZWdyYXknOiAnIzcwODA5MCcsICdzbGF0ZWdyZXknOiAnIzcwODA5MCcsICdzbm93JzogJyNGRkZBRkEnLCAnc3ByaW5nZ3JlZW4nOiAnIzAwRkY3RicsICdzdGVlbGJsdWUnOiAnIzQ2ODJCNCcsICd0YW4nOiAnI0QyQjQ4QycsICd0ZWFsJzogJyMwMDgwODAnLCAndGhpc3RsZSc6ICcjRDhCRkQ4JywgJ3RvbWF0byc6ICcjRkY2MzQ3JywgJ3R1cnF1b2lzZSc6ICcjNDBFMEQwJywgJ3Zpb2xldCc6ICcjRUU4MkVFJywgJ3doZWF0JzogJyNGNURFQjMnLCAnd2hpdGUnOiAnI0ZGRkZGRicsICd3aGl0ZXNtb2tlJzogJyNGNUY1RjUnLCAneWVsbG93JzogJyNGRkZGMDAnLCAneWVsbG93Z3JlZW4nOiAnIzlBQ0QzMicgfTtcbmV4cG9ydCBjb25zdCBvcHRpb25zRGVmYXVsdCA9ICgpOiBJUGlja2VyT3B0aW9ucyA9PiB7XG4gIHJldHVybiB7XG4gICAgc2hvd0hzbDogZmFsc2UsXG4gICAgc2hvd1JnYjogdHJ1ZSxcbiAgICBzaG93SGV4OiB0cnVlLFxuICAgIHNob3dBbHBoYTogZmFsc2UsXG4gICAgY29sb3I6ICcjZmYwMDAwJyxcbiAgICBmb3JtYXQ6ICdjb2xvcicsXG4gICAgc2xCYXJTaXplOiBbNDIwLCAyMDBdLFxuICAgIGh1ZUJhclNpemU6IFs0MjAsIDIwXSxcbiAgICBhbHBoYUJhclNpemU6IFs0MjAsIDIwXVxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgbGltaXQgPSAodmFsdWU6IG51bWJlciB8IHN0cmluZywgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSA9PiB7XG4gIHZhbHVlID0gK3ZhbHVlO1xuICByZXR1cm4gaXNOYU4odmFsdWUpID8gbWluIDogKHZhbHVlIDwgbWluID8gbWluIDogKHZhbHVlID4gbWF4ID8gbWF4IDogdmFsdWUpKTtcbn1cblxuZXhwb3J0IGNvbnN0IGhzbFRvUmdiID0gKGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpID0+IHtcbiAgbGV0IHIsIGcsIGI7XG4gIFtoLCBzLCBsXSA9IFtsaW1pdChoLCAwLCAzNjApIC8gMzYwLCBsaW1pdChzLCAwLCAxMDApIC8gMTAwLCBsaW1pdChsLCAwLCAxMDApIC8gMTAwXTtcblxuICBpZiAocyA9PSAwKSB7XG4gICAgciA9IGcgPSBiID0gbDsgLy8gYWNocm9tYXRpY1xuXG4gICAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XS5tYXAoTWF0aC5yb3VuZCk7XG4gIH1cbiAgY29uc3QgaHVlVG9SZ2IgPSAocDogbnVtYmVyLCBxOiBudW1iZXIsIHQ6IG51bWJlcikgPT4ge1xuICAgIGlmICh0IDwgMCkgdCArPSAxO1xuICAgIGlmICh0ID4gMSkgdCAtPSAxO1xuICAgIGlmICh0IDwgMSAvIDYpIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xuICAgIGlmICh0IDwgMSAvIDIpIHJldHVybiBxO1xuICAgIGlmICh0IDwgMiAvIDMpIHJldHVybiBwICsgKHEgLSBwKSAqICgyIC8gMyAtIHQpICogNjtcblxuICAgIHJldHVybiBwO1xuICB9O1xuICBjb25zdCBxID0gbCA8IDAuNSA/IGwgKiAoMSArIHMpIDogbCArIHMgLSBsICogcztcbiAgY29uc3QgcCA9ICgyICogbCkgLSBxO1xuXG4gIHIgPSBodWVUb1JnYihwLCBxLCBoICsgKDEgLyAzKSk7XG4gIGcgPSBodWVUb1JnYihwLCBxLCBoKTtcbiAgYiA9IGh1ZVRvUmdiKHAsIHEsIGggLSAoMSAvIDMpKTtcblxuICByZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdLm1hcChNYXRoLnJvdW5kKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNzc0NvbG9yVG9SZ2JhID0gKGNvbG9yOiBzdHJpbmcpID0+IHtcbiAgaWYgKGNvbG9yKSB7XG4gICAgY29uc3QgY29sb3JCeU5hbWUgPSBnZXQoQ29sb3JOYW1lcywgY29sb3IudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3QgWywgLCAsIHIsIGcsIGIsIGEsICwgcnIsIGdnLCBiYiwgYWFdID0gL15cXHMqIz8oKChbMC05QS1GXSkoWzAtOUEtRl0pKFswLTlBLUZdKShbMC05QS1GXSk/KXwoKFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEtRl17Mn0pKFswLTlBLUZdezJ9KT8pKVxccyokL2kuZXhlYyhjb2xvckJ5TmFtZSB8fCBjb2xvcikgfHwgW107XG4gICAgaWYgKCFpc05pbChyKSkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgcGFyc2VJbnQociArIHIsIDE2KSxcbiAgICAgICAgcGFyc2VJbnQoZyArIGcsIDE2KSxcbiAgICAgICAgcGFyc2VJbnQoYiArIGIsIDE2KSxcbiAgICAgICAgYSA/ICsoKHBhcnNlSW50KGEgKyBhLCAxNikpIC8gMjU1KS50b0ZpeGVkKDIpIDogMVxuICAgICAgXTtcbiAgICB9XG4gICAgaWYgKCFpc05pbChycikpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHBhcnNlSW50KHJyLCAxNiksXG4gICAgICAgIHBhcnNlSW50KGdnLCAxNiksXG4gICAgICAgIHBhcnNlSW50KGJiLCAxNiksXG4gICAgICAgIGFhID8gKygocGFyc2VJbnQoYWEsIDE2KSkgLyAyNTUpLnRvRml4ZWQoMikgOiAxXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yVG9SZ2JhID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+KSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xuICAgIHJldHVybiBbXG4gICAgICBsaW1pdChjb2xvclswXSwgMCwgMjU1KSxcbiAgICAgIGxpbWl0KGNvbG9yWzFdLCAwLCAyNTUpLFxuICAgICAgbGltaXQoY29sb3JbMl0sIDAsIDI1NSksXG4gICAgICBsaW1pdChjb2xvclszXSA/PyAxLCAwLCAxKVxuICAgIF07XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gY3NzQ29sb3JUb1JnYmEoY29sb3IpIHx8IGNzc1JnYmFUb1JnYmEoY29sb3IpO1xuXG4gIGlmIChwYXJzZWQgJiYgcGFyc2VkLmxlbmd0aCA9PT0gMykge1xuICAgIHBhcnNlZC5wdXNoKDEpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn1cblxuZXhwb3J0IGNvbnN0IGNzc1JnYmFUb1JnYmEgPSAocmdiYTogc3RyaW5nKSA9PiB7XG4gIGlmIChyZ2JhKSB7XG4gICAgY29uc3QgW20sIHIsIGcsIGIsICwgYV0gPSAvXnJnYmE/XFwoKFxcZCspXFxzKltcXHMsXVxccyooXFxkKylcXHMqW1xccyxdXFxzKihcXGQrKShcXHMqW1xccyxdXFxzKihcXGQqKC5cXGQrKT8pKT9cXCkvaS5leGVjKHJnYmEpIHx8IFtdO1xuXG4gICAgcmV0dXJuIG0gPyBbbGltaXQociwgMCwgMjU1KSwgbGltaXQoZywgMCwgMjU1KSwgbGltaXQoYiwgMCwgMjU1KSwgbGltaXQoYSA/PyAxLCAwLCAxKV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY29uc3QgY3NzSHNsYVRvSHNsYSA9IChoc2xhOiBzdHJpbmcpID0+IHtcbiAgaWYgKGhzbGEpIHtcbiAgICBjb25zdCBbbSwgaCwgcywgbCwgLCBhXSA9IC9eaHNsYT9cXCgoXFxkKylcXHMqW1xccyxdXFxzKihcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspKFxccypbXFxzLF1cXHMqKFxcZCooLlxcZCspPykpP1xcKS9pLmV4ZWMoaHNsYSkgfHwgW107XG5cbiAgICByZXR1cm4gbSA/IFtsaW1pdChoLCAwLCAyNTUpLCBsaW1pdChzLCAwLCAyNTUpLCBsaW1pdChsLCAwLCAyNTUpLCBsaW1pdChhID8/IDEsIDAsIDEpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yVG9Ic2xhID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+KSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xuICAgIHJldHVybiBbXG4gICAgICBsaW1pdChjb2xvclswXSwgMCwgMzYwKSxcbiAgICAgIGxpbWl0KGNvbG9yWzFdLCAwLCAxMDApLFxuICAgICAgbGltaXQoY29sb3JbMl0sIDAsIDEwMCksXG4gICAgICBsaW1pdChjb2xvclszXSA/PyAxLCAwLCAxKVxuICAgIF07XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gY3NzSHNsYVRvSHNsYShjb2xvcik7XG5cbiAgaWYgKHBhcnNlZCAmJiBwYXJzZWQubGVuZ3RoID09PSAzKSB7XG4gICAgcGFyc2VkLnB1c2goMSk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VkO1xufVxuXG5leHBvcnQgY29uc3QgcmdiVG9Ic2wgPSAocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcikgPT4ge1xuICBbciwgZywgYl0gPSBbbGltaXQociwgMCwgMjU1KSAvIDI1NSwgbGltaXQoZywgMCwgMjU1KSAvIDI1NSwgbGltaXQoYiwgMCwgMjU1KSAvIDI1NV07XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgbGV0IGgsIHMgPSAobWF4ICsgbWluKSAvIDI7XG4gIGNvbnN0IGwgPSAobWF4ICsgbWluKSAvIDI7XG5cbiAgaWYgKG1heCA9PSBtaW4pIHtcbiAgICBoID0gcyA9IDA7IC8vIGFjaHJvbWF0aWNcblxuICAgIHJldHVybiBbaCAqIDM2MCwgcyAqIDEwMCwgbCAqIDEwMF0ubWFwKE1hdGgucm91bmQpO1xuICB9XG4gIGNvbnN0IGQgPSBtYXggLSBtaW47XG5cbiAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xuICBzd2l0Y2ggKG1heCkge1xuICAgIGNhc2UgcjpcbiAgICAgIGggPSAoKGcgLSBiKSAvIGQpICsgKGcgPCBiID8gNiA6IDApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBnOlxuICAgICAgaCA9ICgoYiAtIHIpIC8gZCkgKyAyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBiOlxuICAgICAgaCA9ICgociAtIGcpIC8gZCkgKyA0O1xuICAgICAgYnJlYWs7XG4gIH1cbiAgaCA9IChoIHx8IDApIC8gNjtcblxuICByZXR1cm4gW2ggKiAzNjAsIHMgKiAxMDAsIGwgKiAxMDBdLm1hcChNYXRoLnJvdW5kKTtcbn1cblxuZXhwb3J0IGNvbnN0IHJnYlRvSGV4ID0gKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IHtcbiAgW3IsIGcsIGJdID0gW2xpbWl0KHIsIDAsIDI1NSksIGxpbWl0KGcsIDAsIDI1NSksIGxpbWl0KGIsIDAsIDI1NSldO1xuXG4gIHJldHVybiBcIiNcIiArIChcIjAwMDAwMFwiICsgKChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYikudG9TdHJpbmcoMTYpKS5zbGljZSgtNik7XG59XG5cbmV4cG9ydCBjb25zdCByZ2JUb0ludCA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIHJldHVybiAociA8PCAxNikgfCAoZyA8PCA4KSB8IGI7XG59XG5cbmV4cG9ydCBjb25zdCByZ2JUb0hzdiA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIFtyLCBnLCBiXSA9IFtsaW1pdChyLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChnLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChiLCAwLCAyNTUpIC8gMjU1XTtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICBsZXQgaCwgcyA9IG1heDtcbiAgY29uc3QgdiA9IG1heDtcbiAgY29uc3QgZCA9IG1heCAtIG1pbjtcbiAgcyA9IG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4O1xuXG4gIGlmIChtYXggPT0gbWluKSB7XG4gICAgaCA9IDA7XG5cbiAgICByZXR1cm4gW2gsIHMsIHZdO1xuICB9XG4gIHN3aXRjaCAobWF4KSB7XG4gICAgY2FzZSByOiBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7IGJyZWFrO1xuICAgIGNhc2UgZzogaCA9IChiIC0gcikgLyBkICsgMjsgYnJlYWs7XG4gICAgY2FzZSBiOiBoID0gKHIgLSBnKSAvIGQgKyA0OyBicmVhaztcbiAgfVxuICBoID0gKGggfHwgMCkgLyA2O1xuXG4gIHJldHVybiBbaCwgcywgdl07XG59XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDb2xvciA9IChkYXRhOiBBcnJheTxudW1iZXI+LCBmb3JtYXQ6IHN0cmluZykgPT4ge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgJ3JnYic6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRhLnNsaWNlKDAsIDMpO1xuICAgIGNhc2UgJ3JnYmNzcyc6XG4gICAgICByZXR1cm4gYHJnYigke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19KWA7XG4gICAgY2FzZSAncmdiY3NzNCc6XG4gICAgICByZXR1cm4gYHJnYigke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgY2FzZSAncmdiYSc6XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICBjYXNlICdyZ2JhY3NzJzpcbiAgICAgIHJldHVybiBgcmdiYSgke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgY2FzZSAnaHNsJzpcbiAgICAgIHJldHVybiByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcbiAgICBjYXNlICdoc2xjc3MnOlxuICAgICAgZGF0YSA9IHJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pO1xuXG4gICAgICByZXR1cm4gYGhzbCgke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19KWA7XG4gICAgY2FzZSAnaHNsY3NzNCc6IHtcbiAgICAgIGNvbnN0IGhoID0gcmdiVG9Ic2woZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG5cbiAgICAgIHJldHVybiBgaHNsKCR7aGhbMF19LCAke2hoWzFdfSwgJHtoaFsyXX0sICR7ZGF0YVszXX0pYDtcbiAgICB9XG4gICAgY2FzZSAnaHNsYSc6XG4gICAgICByZXR1cm4gWy4uLnJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pLCBkYXRhWzNdXTtcbiAgICBjYXNlICdoc2xhY3NzJzoge1xuICAgICAgY29uc3QgaGEgPSByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcblxuICAgICAgcmV0dXJuIGBoc2xhKCR7aGFbMF19LCAke2hhWzFdfSwgJHtoYVsyXX0sICR7ZGF0YVszXX0pYDtcbiAgICB9XG4gICAgY2FzZSAnaGV4JzpcbiAgICAgIHJldHVybiByZ2JUb0hleChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcbiAgICBjYXNlICdoZXhjc3M0JzpcbiAgICAgIHJldHVybiByZ2JUb0hleChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKSArICgnMDAnICsgcGFyc2VJbnQoKGRhdGFbM10gKiAyNTUpLnRvU3RyaW5nKCkpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xuICAgIGNhc2UgJ2ludCc6XG4gICAgICByZXR1cm4gcmdiVG9JbnQoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29sb3IgPSAoY29sb3I6IHN0cmluZyB8IEFycmF5PG51bWJlcj4sIGZvcm1hdDogc3RyaW5nIHwgb2JqZWN0KSA9PiB7XG4gIGlmICghaXNOaWwoY29sb3IpKSB7XG4gICAgbGV0IGRhdGE6IEFycmF5PG51bWJlcj4gfCB1bmRlZmluZWQgPSBbXTtcblxuICAgIGRhdGEgPSBwYXJzZUNvbG9yVG9SZ2JhKGNvbG9yKSB8fCAocGFyc2VDb2xvclRvSHNsYShjb2xvcikgJiYgWy4uLmhzbFRvUmdiKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pLCBkYXRhWzNdXSk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmICh0eXBlb2YgZm9ybWF0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gWydyZ2InLCAncmdiY3NzJywgJ3JnYmNzczQnLCAncmdiYScsICdyZ2JhY3NzJywgJ2hzbCcsICdoc2xjc3MnLCAnaHNsY3NzNCcsICdoc2xhJywgJ2hzbGFjc3MnLCAnaGV4JywgJ2hleGNzczQnLCAnaW50J10ucmVkdWNlKChtLCBmKSA9PiB7XG4gICAgICAgICAgc2V0KG0sIGYsIGZvcm1hdENvbG9yKGRhdGEsIGYpKTtcblxuICAgICAgICAgIHJldHVybiBtO1xuICAgICAgICB9LCBmb3JtYXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybWF0Q29sb3IoZGF0YSwgZm9ybWF0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRIZWxwZXIgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgc2V0SHVlOiAoKSA9PiB7IHJldHVybiB9LFxuICAgIGdyYWJDb2xvcjogKCkgPT4gW10sXG4gICAgZmluZENvbG9yOiAoKSA9PiBbXVxuICB9O1xufSJdfQ==
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9zcmMvdXRpbHMvcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQVc7SUFDaEMsU0FBUyxFQUFFLFNBQVM7SUFDcEIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsSUFBSSxFQUFFLFNBQVM7SUFDZixVQUFVLEVBQUUsU0FBUztJQUNyQixLQUFLLEVBQUUsU0FBUztJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsU0FBUztJQUNqQixLQUFLLEVBQUUsU0FBUztJQUNoQixjQUFjLEVBQUUsU0FBUztJQUN6QixJQUFJLEVBQUUsU0FBUztJQUNmLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxTQUFTO0lBQ2YsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsVUFBVSxFQUFFLFNBQVM7SUFDckIsVUFBVSxFQUFFLFNBQVM7SUFDckIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsSUFBSSxFQUFFLFNBQVM7SUFDZixTQUFTLEVBQUUsU0FBUztJQUNwQixJQUFJLEVBQUUsU0FBUztJQUNmLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLFNBQVM7SUFDaEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsb0JBQW9CLEVBQUUsU0FBUztJQUMvQixTQUFTLEVBQUUsU0FBUztJQUNwQixTQUFTLEVBQUUsU0FBUztJQUNwQixVQUFVLEVBQUUsU0FBUztJQUNyQixTQUFTLEVBQUUsU0FBUztJQUNwQixXQUFXLEVBQUUsU0FBUztJQUN0QixhQUFhLEVBQUUsU0FBUztJQUN4QixZQUFZLEVBQUUsU0FBUztJQUN2QixjQUFjLEVBQUUsU0FBUztJQUN6QixjQUFjLEVBQUUsU0FBUztJQUN6QixjQUFjLEVBQUUsU0FBUztJQUN6QixXQUFXLEVBQUUsU0FBUztJQUN0QixJQUFJLEVBQUUsU0FBUztJQUNmLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLGdCQUFnQixFQUFFLFNBQVM7SUFDM0IsVUFBVSxFQUFFLFNBQVM7SUFDckIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsY0FBYyxFQUFFLFNBQVM7SUFDekIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsaUJBQWlCLEVBQUUsU0FBUztJQUM1QixlQUFlLEVBQUUsU0FBUztJQUMxQixlQUFlLEVBQUUsU0FBUztJQUMxQixZQUFZLEVBQUUsU0FBUztJQUN2QixTQUFTLEVBQUUsU0FBUztJQUNwQixTQUFTLEVBQUUsU0FBUztJQUNwQixRQUFRLEVBQUUsU0FBUztJQUNuQixXQUFXLEVBQUUsU0FBUztJQUN0QixJQUFJLEVBQUUsU0FBUztJQUNmLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsU0FBUztJQUNmLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCLEdBQUcsRUFBRSxTQUFTO0lBQ2QsU0FBUyxFQUFFLFNBQVM7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsVUFBVSxFQUFFLFNBQVM7SUFDckIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsTUFBTSxFQUFFLFNBQVM7SUFDakIsTUFBTSxFQUFFLFNBQVM7SUFDakIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsSUFBSSxFQUFFLFNBQVM7SUFDZixXQUFXLEVBQUUsU0FBUztJQUN0QixTQUFTLEVBQUUsU0FBUztJQUNwQixHQUFHLEVBQUUsU0FBUztJQUNkLElBQUksRUFBRSxTQUFTO0lBQ2YsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsV0FBVyxFQUFFLFNBQVM7Q0FDdkIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFtQixFQUFFO0lBQ2pELE9BQU87UUFDTCxPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLElBQUk7UUFDYixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsU0FBUztRQUNoQixNQUFNLEVBQUUsT0FBTztRQUNmLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDckIsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNyQixZQUFZLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO0tBQ3hCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUN4RSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDZixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzVFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDMUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFckYsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDWCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBRTVCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRTtRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUM7SUFDRixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVwQixDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFOUIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUM5QyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsRUFBRSxBQUFELEVBQUcsQUFBRCxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFELEVBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsa0hBQWtILENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDak0sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUgsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtJQUNoRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0QsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUM1QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFELEVBQUcsQ0FBQyxDQUFDLEdBQUcsNEVBQTRFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4SCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUM1QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFELEVBQUcsQ0FBQyxDQUFDLEdBQUcsNEVBQTRFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4SCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQTZCLEVBQUUsRUFBRTtJQUNoRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxFQUNILENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTFCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBRXhCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFFcEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNwRCxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTTtRQUNSLEtBQUssQ0FBQztZQUNKLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixNQUFNO0lBQ1YsQ0FBQztJQUNELENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFakIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFO0lBQzFELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFbkUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFO0lBQzFELE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxFQUNILENBQUMsR0FBRyxHQUFHLENBQUM7SUFDVixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDZCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3BCLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFFNUIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRU4sT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJ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QUUsQ0FBQyxFQUFFO1FBQ25CLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO0tBQ3BCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBnZXQsIGlzTmlsLCBzZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBJQ29sb3IsIElQaWNrZXJPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBDb2xvck5hbWVzOiBJQ29sb3IgPSB7XG4gIGFsaWNlYmx1ZTogJyNGMEY4RkYnLFxuICBhbnRpcXVld2hpdGU6ICcjRkFFQkQ3JyxcbiAgYXF1YTogJyMwMEZGRkYnLFxuICBhcXVhbWFyaW5lOiAnIzdGRkZENCcsXG4gIGF6dXJlOiAnI0YwRkZGRicsXG4gIGJlaWdlOiAnI0Y1RjVEQycsXG4gIGJpc3F1ZTogJyNGRkU0QzQnLFxuICBibGFjazogJyMwMDAwMDAnLFxuICBibGFuY2hlZGFsbW9uZDogJyNGRkVCQ0QnLFxuICBibHVlOiAnIzAwMDBGRicsXG4gIGJsdWV2aW9sZXQ6ICcjOEEyQkUyJyxcbiAgYnJvd246ICcjQTUyQTJBJyxcbiAgYnVybHl3b29kOiAnI0RFQjg4NycsXG4gIGNhZGV0Ymx1ZTogJyM1RjlFQTAnLFxuICBjaGFydHJldXNlOiAnIzdGRkYwMCcsXG4gIGNob2NvbGF0ZTogJyNEMjY5MUUnLFxuICBjb3JhbDogJyNGRjdGNTAnLFxuICBjb3JuZmxvd2VyYmx1ZTogJyM2NDk1RUQnLFxuICBjb3Juc2lsazogJyNGRkY4REMnLFxuICBjcmltc29uOiAnI0RDMTQzQycsXG4gIGN5YW46ICcjMDBGRkZGJyxcbiAgZGFya2JsdWU6ICcjMDAwMDhCJyxcbiAgZGFya2N5YW46ICcjMDA4QjhCJyxcbiAgZGFya2dvbGRlbnJvZDogJyNCODg2MEInLFxuICBkYXJrZ3JheTogJyNBOUE5QTknLFxuICBkYXJrZ3JleTogJyNBOUE5QTknLFxuICBkYXJrZ3JlZW46ICcjMDA2NDAwJyxcbiAgZGFya2toYWtpOiAnI0JEQjc2QicsXG4gIGRhcmttYWdlbnRhOiAnIzhCMDA4QicsXG4gIGRhcmtvbGl2ZWdyZWVuOiAnIzU1NkIyRicsXG4gIGRhcmtvcmFuZ2U6ICcjRkY4QzAwJyxcbiAgZGFya29yY2hpZDogJyM5OTMyQ0MnLFxuICBkYXJrcmVkOiAnIzhCMDAwMCcsXG4gIGRhcmtzYWxtb246ICcjRTk5NjdBJyxcbiAgZGFya3NlYWdyZWVuOiAnIzhGQkM4RicsXG4gIGRhcmtzbGF0ZWJsdWU6ICcjNDgzRDhCJyxcbiAgZGFya3NsYXRlZ3JheTogJyMyRjRGNEYnLFxuICBkYXJrc2xhdGVncmV5OiAnIzJGNEY0RicsXG4gIGRhcmt0dXJxdW9pc2U6ICcjMDBDRUQxJyxcbiAgZGFya3Zpb2xldDogJyM5NDAwRDMnLFxuICBkZWVwcGluazogJyNGRjE0OTMnLFxuICBkZWVwc2t5Ymx1ZTogJyMwMEJGRkYnLFxuICBkaW1ncmF5OiAnIzY5Njk2OScsXG4gIGRpbWdyZXk6ICcjNjk2OTY5JyxcbiAgZG9kZ2VyYmx1ZTogJyMxRTkwRkYnLFxuICBmaXJlYnJpY2s6ICcjQjIyMjIyJyxcbiAgZmxvcmFsd2hpdGU6ICcjRkZGQUYwJyxcbiAgZm9yZXN0Z3JlZW46ICcjMjI4QjIyJyxcbiAgZnVjaHNpYTogJyNGRjAwRkYnLFxuICBnYWluc2Jvcm86ICcjRENEQ0RDJyxcbiAgZ2hvc3R3aGl0ZTogJyNGOEY4RkYnLFxuICBnb2xkOiAnI0ZGRDcwMCcsXG4gIGdvbGRlbnJvZDogJyNEQUE1MjAnLFxuICBncmF5OiAnIzgwODA4MCcsXG4gIGdyZXk6ICcjODA4MDgwJyxcbiAgZ3JlZW46ICcjMDA4MDAwJyxcbiAgZ3JlZW55ZWxsb3c6ICcjQURGRjJGJyxcbiAgaG9uZXlkZXc6ICcjRjBGRkYwJyxcbiAgaG90cGluazogJyNGRjY5QjQnLFxuICBpbmRpYW5yZWQ6ICcjQ0Q1QzVDJyxcbiAgaW5kaWdvOiAnIzRCMDA4MicsXG4gIGl2b3J5OiAnI0ZGRkZGMCcsXG4gIGtoYWtpOiAnI0YwRTY4QycsXG4gIGxhdmVuZGVyOiAnI0U2RTZGQScsXG4gIGxhdmVuZGVyYmx1c2g6ICcjRkZGMEY1JyxcbiAgbGF3bmdyZWVuOiAnIzdDRkMwMCcsXG4gIGxlbW9uY2hpZmZvbjogJyNGRkZBQ0QnLFxuICBsaWdodGJsdWU6ICcjQUREOEU2JyxcbiAgbGlnaHRjb3JhbDogJyNGMDgwODAnLFxuICBsaWdodGN5YW46ICcjRTBGRkZGJyxcbiAgbGlnaHRnb2xkZW5yb2R5ZWxsb3c6ICcjRkFGQUQyJyxcbiAgbGlnaHRncmF5OiAnI0QzRDNEMycsXG4gIGxpZ2h0Z3JleTogJyNEM0QzRDMnLFxuICBsaWdodGdyZWVuOiAnIzkwRUU5MCcsXG4gIGxpZ2h0cGluazogJyNGRkI2QzEnLFxuICBsaWdodHNhbG1vbjogJyNGRkEwN0EnLFxuICBsaWdodHNlYWdyZWVuOiAnIzIwQjJBQScsXG4gIGxpZ2h0c2t5Ymx1ZTogJyM4N0NFRkEnLFxuICBsaWdodHNsYXRlZ3JheTogJyM3Nzg4OTknLFxuICBsaWdodHNsYXRlZ3JleTogJyM3Nzg4OTknLFxuICBsaWdodHN0ZWVsYmx1ZTogJyNCMEM0REUnLFxuICBsaWdodHllbGxvdzogJyNGRkZGRTAnLFxuICBsaW1lOiAnIzAwRkYwMCcsXG4gIGxpbWVncmVlbjogJyMzMkNEMzInLFxuICBsaW5lbjogJyNGQUYwRTYnLFxuICBtYWdlbnRhOiAnI0ZGMDBGRicsXG4gIG1hcm9vbjogJyM4MDAwMDAnLFxuICBtZWRpdW1hcXVhbWFyaW5lOiAnIzY2Q0RBQScsXG4gIG1lZGl1bWJsdWU6ICcjMDAwMENEJyxcbiAgbWVkaXVtb3JjaGlkOiAnI0JBNTVEMycsXG4gIG1lZGl1bXB1cnBsZTogJyM5MzcwREInLFxuICBtZWRpdW1zZWFncmVlbjogJyMzQ0IzNzEnLFxuICBtZWRpdW1zbGF0ZWJsdWU6ICcjN0I2OEVFJyxcbiAgbWVkaXVtc3ByaW5nZ3JlZW46ICcjMDBGQTlBJyxcbiAgbWVkaXVtdHVycXVvaXNlOiAnIzQ4RDFDQycsXG4gIG1lZGl1bXZpb2xldHJlZDogJyNDNzE1ODUnLFxuICBtaWRuaWdodGJsdWU6ICcjMTkxOTcwJyxcbiAgbWludGNyZWFtOiAnI0Y1RkZGQScsXG4gIG1pc3R5cm9zZTogJyNGRkU0RTEnLFxuICBtb2NjYXNpbjogJyNGRkU0QjUnLFxuICBuYXZham93aGl0ZTogJyNGRkRFQUQnLFxuICBuYXZ5OiAnIzAwMDA4MCcsXG4gIG9sZGxhY2U6ICcjRkRGNUU2JyxcbiAgb2xpdmU6ICcjODA4MDAwJyxcbiAgb2xpdmVkcmFiOiAnIzZCOEUyMycsXG4gIG9yYW5nZTogJyNGRkE1MDAnLFxuICBvcmFuZ2VyZWQ6ICcjRkY0NTAwJyxcbiAgb3JjaGlkOiAnI0RBNzBENicsXG4gIHBhbGVnb2xkZW5yb2Q6ICcjRUVFOEFBJyxcbiAgcGFsZWdyZWVuOiAnIzk4RkI5OCcsXG4gIHBhbGV0dXJxdW9pc2U6ICcjQUZFRUVFJyxcbiAgcGFsZXZpb2xldHJlZDogJyNEQjcwOTMnLFxuICBwYXBheWF3aGlwOiAnI0ZGRUZENScsXG4gIHBlYWNocHVmZjogJyNGRkRBQjknLFxuICBwZXJ1OiAnI0NEODUzRicsXG4gIHBpbms6ICcjRkZDMENCJyxcbiAgcGx1bTogJyNEREEwREQnLFxuICBwb3dkZXJibHVlOiAnI0IwRTBFNicsXG4gIHB1cnBsZTogJyM4MDAwODAnLFxuICByZWJlY2NhcHVycGxlOiAnIzY2MzM5OScsXG4gIHJlZDogJyNGRjAwMDAnLFxuICByb3N5YnJvd246ICcjQkM4RjhGJyxcbiAgcm95YWxibHVlOiAnIzQxNjlFMScsXG4gIHNhZGRsZWJyb3duOiAnIzhCNDUxMycsXG4gIHNhbG1vbjogJyNGQTgwNzInLFxuICBzYW5keWJyb3duOiAnI0Y0QTQ2MCcsXG4gIHNlYWdyZWVuOiAnIzJFOEI1NycsXG4gIHNlYXNoZWxsOiAnI0ZGRjVFRScsXG4gIHNpZW5uYTogJyNBMDUyMkQnLFxuICBzaWx2ZXI6ICcjQzBDMEMwJyxcbiAgc2t5Ymx1ZTogJyM4N0NFRUInLFxuICBzbGF0ZWJsdWU6ICcjNkE1QUNEJyxcbiAgc2xhdGVncmF5OiAnIzcwODA5MCcsXG4gIHNsYXRlZ3JleTogJyM3MDgwOTAnLFxuICBzbm93OiAnI0ZGRkFGQScsXG4gIHNwcmluZ2dyZWVuOiAnIzAwRkY3RicsXG4gIHN0ZWVsYmx1ZTogJyM0NjgyQjQnLFxuICB0YW46ICcjRDJCNDhDJyxcbiAgdGVhbDogJyMwMDgwODAnLFxuICB0aGlzdGxlOiAnI0Q4QkZEOCcsXG4gIHRvbWF0bzogJyNGRjYzNDcnLFxuICB0dXJxdW9pc2U6ICcjNDBFMEQwJyxcbiAgdmlvbGV0OiAnI0VFODJFRScsXG4gIHdoZWF0OiAnI0Y1REVCMycsXG4gIHdoaXRlOiAnI0ZGRkZGRicsXG4gIHdoaXRlc21va2U6ICcjRjVGNUY1JyxcbiAgeWVsbG93OiAnI0ZGRkYwMCcsXG4gIHllbGxvd2dyZWVuOiAnIzlBQ0QzMicsXG59O1xuZXhwb3J0IGNvbnN0IG9wdGlvbnNEZWZhdWx0ID0gKCk6IElQaWNrZXJPcHRpb25zID0+IHtcbiAgcmV0dXJuIHtcbiAgICBzaG93SHNsOiBmYWxzZSxcbiAgICBzaG93UmdiOiB0cnVlLFxuICAgIHNob3dIZXg6IHRydWUsXG4gICAgc2hvd0FscGhhOiBmYWxzZSxcbiAgICBjb2xvcjogJyNmZjAwMDAnLFxuICAgIGZvcm1hdDogJ2NvbG9yJyxcbiAgICBzbEJhclNpemU6IFs0MjAsIDIwMF0sXG4gICAgaHVlQmFyU2l6ZTogWzQyMCwgMjBdLFxuICAgIGFscGhhQmFyU2l6ZTogWzQyMCwgMjBdLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpbWl0ID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT4ge1xuICB2YWx1ZSA9ICt2YWx1ZTtcbiAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IG1pbiA6IHZhbHVlIDwgbWluID8gbWluIDogdmFsdWUgPiBtYXggPyBtYXggOiB2YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xUb1JnYiA9IChoOiBudW1iZXIsIHM6IG51bWJlciwgbDogbnVtYmVyKSA9PiB7XG4gIGxldCByLCBnLCBiO1xuICBbaCwgcywgbF0gPSBbbGltaXQoaCwgMCwgMzYwKSAvIDM2MCwgbGltaXQocywgMCwgMTAwKSAvIDEwMCwgbGltaXQobCwgMCwgMTAwKSAvIDEwMF07XG5cbiAgaWYgKHMgPT0gMCkge1xuICAgIHIgPSBnID0gYiA9IGw7IC8vIGFjaHJvbWF0aWNcblxuICAgIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV0ubWFwKE1hdGgucm91bmQpO1xuICB9XG4gIGNvbnN0IGh1ZVRvUmdiID0gKHA6IG51bWJlciwgcTogbnVtYmVyLCB0OiBudW1iZXIpID0+IHtcbiAgICBpZiAodCA8IDApIHQgKz0gMTtcbiAgICBpZiAodCA+IDEpIHQgLT0gMTtcbiAgICBpZiAodCA8IDEgLyA2KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcbiAgICBpZiAodCA8IDEgLyAyKSByZXR1cm4gcTtcbiAgICBpZiAodCA8IDIgLyAzKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XG5cbiAgICByZXR1cm4gcDtcbiAgfTtcbiAgY29uc3QgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XG4gIGNvbnN0IHAgPSAyICogbCAtIHE7XG5cbiAgciA9IGh1ZVRvUmdiKHAsIHEsIGggKyAxIC8gMyk7XG4gIGcgPSBodWVUb1JnYihwLCBxLCBoKTtcbiAgYiA9IGh1ZVRvUmdiKHAsIHEsIGggLSAxIC8gMyk7XG5cbiAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XS5tYXAoTWF0aC5yb3VuZCk7XG59O1xuXG5leHBvcnQgY29uc3QgY3NzQ29sb3JUb1JnYmEgPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBpZiAoY29sb3IpIHtcbiAgICBjb25zdCBjb2xvckJ5TmFtZSA9IGdldChDb2xvck5hbWVzLCBjb2xvci50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBbLCAsICwgciwgZywgYiwgYSwgLCByciwgZ2csIGJiLCBhYV0gPSAvXlxccyojPygoKFswLTlBLUZdKShbMC05QS1GXSkoWzAtOUEtRl0pKFswLTlBLUZdKT8pfCgoWzAtOUEtRl17Mn0pKFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEtRl17Mn0pPykpXFxzKiQvaS5leGVjKGNvbG9yQnlOYW1lIHx8IGNvbG9yKSB8fCBbXTtcbiAgICBpZiAoIWlzTmlsKHIpKSB7XG4gICAgICByZXR1cm4gW3BhcnNlSW50KHIgKyByLCAxNiksIHBhcnNlSW50KGcgKyBnLCAxNiksIHBhcnNlSW50KGIgKyBiLCAxNiksIGEgPyArKHBhcnNlSW50KGEgKyBhLCAxNikgLyAyNTUpLnRvRml4ZWQoMikgOiAxXTtcbiAgICB9XG4gICAgaWYgKCFpc05pbChycikpIHtcbiAgICAgIHJldHVybiBbcGFyc2VJbnQocnIsIDE2KSwgcGFyc2VJbnQoZ2csIDE2KSwgcGFyc2VJbnQoYmIsIDE2KSwgYWEgPyArKHBhcnNlSW50KGFhLCAxNikgLyAyNTUpLnRvRml4ZWQoMikgOiAxXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29sb3JUb1JnYmEgPSAoY29sb3I6IHN0cmluZyB8IEFycmF5PG51bWJlcj4pID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sb3IpKSB7XG4gICAgcmV0dXJuIFtsaW1pdChjb2xvclswXSwgMCwgMjU1KSwgbGltaXQoY29sb3JbMV0sIDAsIDI1NSksIGxpbWl0KGNvbG9yWzJdLCAwLCAyNTUpLCBsaW1pdChjb2xvclszXSA/PyAxLCAwLCAxKV07XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gY3NzQ29sb3JUb1JnYmEoY29sb3IpIHx8IGNzc1JnYmFUb1JnYmEoY29sb3IpO1xuXG4gIGlmIChwYXJzZWQgJiYgcGFyc2VkLmxlbmd0aCA9PT0gMykge1xuICAgIHBhcnNlZC5wdXNoKDEpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NSZ2JhVG9SZ2JhID0gKHJnYmE6IHN0cmluZykgPT4ge1xuICBpZiAocmdiYSkge1xuICAgIGNvbnN0IFttLCByLCBnLCBiLCAsIGFdID0gL15yZ2JhP1xcKChcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspXFxzKltcXHMsXVxccyooXFxkKykoXFxzKltcXHMsXVxccyooXFxkKiguXFxkKyk/KSk/XFwpL2kuZXhlYyhyZ2JhKSB8fCBbXTtcblxuICAgIHJldHVybiBtID8gW2xpbWl0KHIsIDAsIDI1NSksIGxpbWl0KGcsIDAsIDI1NSksIGxpbWl0KGIsIDAsIDI1NSksIGxpbWl0KGEgPz8gMSwgMCwgMSldIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjc3NIc2xhVG9Ic2xhID0gKGhzbGE6IHN0cmluZykgPT4ge1xuICBpZiAoaHNsYSkge1xuICAgIGNvbnN0IFttLCBoLCBzLCBsLCAsIGFdID0gL15oc2xhP1xcKChcXGQrKVxccypbXFxzLF1cXHMqKFxcZCspXFxzKltcXHMsXVxccyooXFxkKykoXFxzKltcXHMsXVxccyooXFxkKiguXFxkKyk/KSk/XFwpL2kuZXhlYyhoc2xhKSB8fCBbXTtcblxuICAgIHJldHVybiBtID8gW2xpbWl0KGgsIDAsIDI1NSksIGxpbWl0KHMsIDAsIDI1NSksIGxpbWl0KGwsIDAsIDI1NSksIGxpbWl0KGEgPz8gMSwgMCwgMSldIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yVG9Ic2xhID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+KSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xuICAgIHJldHVybiBbbGltaXQoY29sb3JbMF0sIDAsIDM2MCksIGxpbWl0KGNvbG9yWzFdLCAwLCAxMDApLCBsaW1pdChjb2xvclsyXSwgMCwgMTAwKSwgbGltaXQoY29sb3JbM10gPz8gMSwgMCwgMSldO1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IGNzc0hzbGFUb0hzbGEoY29sb3IpO1xuXG4gIGlmIChwYXJzZWQgJiYgcGFyc2VkLmxlbmd0aCA9PT0gMykge1xuICAgIHBhcnNlZC5wdXNoKDEpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JUb0hzbCA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIFtyLCBnLCBiXSA9IFtsaW1pdChyLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChnLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChiLCAwLCAyNTUpIC8gMjU1XTtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICBsZXQgaCxcbiAgICBzID0gKG1heCArIG1pbikgLyAyO1xuICBjb25zdCBsID0gKG1heCArIG1pbikgLyAyO1xuXG4gIGlmIChtYXggPT0gbWluKSB7XG4gICAgaCA9IHMgPSAwOyAvLyBhY2hyb21hdGljXG5cbiAgICByZXR1cm4gW2ggKiAzNjAsIHMgKiAxMDAsIGwgKiAxMDBdLm1hcChNYXRoLnJvdW5kKTtcbiAgfVxuICBjb25zdCBkID0gbWF4IC0gbWluO1xuXG4gIHMgPSBsID4gMC41ID8gZCAvICgyIC0gbWF4IC0gbWluKSA6IGQgLyAobWF4ICsgbWluKTtcbiAgc3dpdGNoIChtYXgpIHtcbiAgICBjYXNlIHI6XG4gICAgICBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIGc6XG4gICAgICBoID0gKGIgLSByKSAvIGQgKyAyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBiOlxuICAgICAgaCA9IChyIC0gZykgLyBkICsgNDtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGggPSAoaCB8fCAwKSAvIDY7XG5cbiAgcmV0dXJuIFtoICogMzYwLCBzICogMTAwLCBsICogMTAwXS5tYXAoTWF0aC5yb3VuZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiVG9IZXggPSAocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcikgPT4ge1xuICBbciwgZywgYl0gPSBbbGltaXQociwgMCwgMjU1KSwgbGltaXQoZywgMCwgMjU1KSwgbGltaXQoYiwgMCwgMjU1KV07XG5cbiAgcmV0dXJuICcjJyArICgnMDAwMDAwJyArICgociA8PCAxNikgfCAoZyA8PCA4KSB8IGIpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYlRvSW50ID0gKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpID0+IHtcbiAgcmV0dXJuIChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYjtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JUb0hzdiA9IChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gIFtyLCBnLCBiXSA9IFtsaW1pdChyLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChnLCAwLCAyNTUpIC8gMjU1LCBsaW1pdChiLCAwLCAyNTUpIC8gMjU1XTtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICBsZXQgaCxcbiAgICBzID0gbWF4O1xuICBjb25zdCB2ID0gbWF4O1xuICBjb25zdCBkID0gbWF4IC0gbWluO1xuICBzID0gbWF4ID09PSAwID8gMCA6IGQgLyBtYXg7XG5cbiAgaWYgKG1heCA9PSBtaW4pIHtcbiAgICBoID0gMDtcblxuICAgIHJldHVybiBbaCwgcywgdl07XG4gIH1cbiAgc3dpdGNoIChtYXgpIHtcbiAgICBjYXNlIHI6XG4gICAgICBoID0gKGcgLSBiKSAvIGQgKyAoZyA8IGIgPyA2IDogMCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIGc6XG4gICAgICBoID0gKGIgLSByKSAvIGQgKyAyO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBiOlxuICAgICAgaCA9IChyIC0gZykgLyBkICsgNDtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGggPSAoaCB8fCAwKSAvIDY7XG5cbiAgcmV0dXJuIFtoLCBzLCB2XTtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDb2xvciA9IChkYXRhOiBBcnJheTxudW1iZXI+LCBmb3JtYXQ6IHN0cmluZykgPT4ge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgJ3JnYic6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBkYXRhLnNsaWNlKDAsIDMpO1xuICAgIGNhc2UgJ3JnYmNzcyc6XG4gICAgICByZXR1cm4gYHJnYigke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19KWA7XG4gICAgY2FzZSAncmdiY3NzNCc6XG4gICAgICByZXR1cm4gYHJnYigke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgY2FzZSAncmdiYSc6XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICBjYXNlICdyZ2JhY3NzJzpcbiAgICAgIHJldHVybiBgcmdiYSgke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19LCAke2RhdGFbM119KWA7XG4gICAgY2FzZSAnaHNsJzpcbiAgICAgIHJldHVybiByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcbiAgICBjYXNlICdoc2xjc3MnOlxuICAgICAgZGF0YSA9IHJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pO1xuXG4gICAgICByZXR1cm4gYGhzbCgke2RhdGFbMF19LCAke2RhdGFbMV19LCAke2RhdGFbMl19KWA7XG4gICAgY2FzZSAnaHNsY3NzNCc6IHtcbiAgICAgIGNvbnN0IGhoID0gcmdiVG9Ic2woZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG5cbiAgICAgIHJldHVybiBgaHNsKCR7aGhbMF19LCAke2hoWzFdfSwgJHtoaFsyXX0sICR7ZGF0YVszXX0pYDtcbiAgICB9XG4gICAgY2FzZSAnaHNsYSc6XG4gICAgICByZXR1cm4gWy4uLnJnYlRvSHNsKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0pLCBkYXRhWzNdXTtcbiAgICBjYXNlICdoc2xhY3NzJzoge1xuICAgICAgY29uc3QgaGEgPSByZ2JUb0hzbChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcblxuICAgICAgcmV0dXJuIGBoc2xhKCR7aGFbMF19LCAke2hhWzFdfSwgJHtoYVsyXX0sICR7ZGF0YVszXX0pYDtcbiAgICB9XG4gICAgY2FzZSAnaGV4JzpcbiAgICAgIHJldHVybiByZ2JUb0hleChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTtcbiAgICBjYXNlICdoZXhjc3M0JzpcbiAgICAgIHJldHVybiByZ2JUb0hleChkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKSArICgnMDAnICsgcGFyc2VJbnQoKGRhdGFbM10gKiAyNTUpLnRvU3RyaW5nKCkpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xuICAgIGNhc2UgJ2ludCc6XG4gICAgICByZXR1cm4gcmdiVG9JbnQoZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbG9yID0gKGNvbG9yOiBzdHJpbmcgfCBBcnJheTxudW1iZXI+LCBmb3JtYXQ6IHN0cmluZyB8IG9iamVjdCkgPT4ge1xuICBpZiAoIWlzTmlsKGNvbG9yKSkge1xuICAgIGxldCBkYXRhOiBBcnJheTxudW1iZXI+IHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBkYXRhID0gcGFyc2VDb2xvclRvUmdiYShjb2xvcikgfHwgKHBhcnNlQ29sb3JUb0hzbGEoY29sb3IpICYmIFsuLi5oc2xUb1JnYihkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKSwgZGF0YVszXV0pO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIFsncmdiJywgJ3JnYmNzcycsICdyZ2Jjc3M0JywgJ3JnYmEnLCAncmdiYWNzcycsICdoc2wnLCAnaHNsY3NzJywgJ2hzbGNzczQnLCAnaHNsYScsICdoc2xhY3NzJywgJ2hleCcsICdoZXhjc3M0JywgJ2ludCddLnJlZHVjZSgobSwgZikgPT4ge1xuICAgICAgICAgIHNldDxhbnk+KG0sIGYsIGZvcm1hdENvbG9yKGRhdGEsIGYpKTtcblxuICAgICAgICAgIHJldHVybiBtO1xuICAgICAgICB9LCBmb3JtYXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybWF0Q29sb3IoZGF0YSwgZm9ybWF0IGFzIHN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0SGVscGVyID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHNldEh1ZTogKCkgPT4ge1xuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gICAgZ3JhYkNvbG9yOiAoKSA9PiBbXSxcbiAgICBmaW5kQ29sb3I6ICgpID0+IFtdLFxuICB9O1xufTtcbiJdfQ==
@@ -6,7 +6,157 @@ import { LibsUiNotificationService } from '@libs-ui/services-notification';
6
6
  import { get, isNil, set, getDragEventByElement } from '@libs-ui/utils';
7
7
  import { Subject } from 'rxjs';
8
8
 
9
- const ColorNames = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', 'aqua': '#00FFFF', 'aquamarine': '#7FFFD4', 'azure': '#F0FFFF', 'beige': '#F5F5DC', 'bisque': '#FFE4C4', 'black': '#000000', 'blanchedalmond': '#FFEBCD', 'blue': '#0000FF', 'blueviolet': '#8A2BE2', 'brown': '#A52A2A', 'burlywood': '#DEB887', 'cadetblue': '#5F9EA0', 'chartreuse': '#7FFF00', 'chocolate': '#D2691E', 'coral': '#FF7F50', 'cornflowerblue': '#6495ED', 'cornsilk': '#FFF8DC', 'crimson': '#DC143C', 'cyan': '#00FFFF', 'darkblue': '#00008B', 'darkcyan': '#008B8B', 'darkgoldenrod': '#B8860B', 'darkgray': '#A9A9A9', 'darkgrey': '#A9A9A9', 'darkgreen': '#006400', 'darkkhaki': '#BDB76B', 'darkmagenta': '#8B008B', 'darkolivegreen': '#556B2F', 'darkorange': '#FF8C00', 'darkorchid': '#9932CC', 'darkred': '#8B0000', 'darksalmon': '#E9967A', 'darkseagreen': '#8FBC8F', 'darkslateblue': '#483D8B', 'darkslategray': '#2F4F4F', 'darkslategrey': '#2F4F4F', 'darkturquoise': '#00CED1', 'darkviolet': '#9400D3', 'deeppink': '#FF1493', 'deepskyblue': '#00BFFF', 'dimgray': '#696969', 'dimgrey': '#696969', 'dodgerblue': '#1E90FF', 'firebrick': '#B22222', 'floralwhite': '#FFFAF0', 'forestgreen': '#228B22', 'fuchsia': '#FF00FF', 'gainsboro': '#DCDCDC', 'ghostwhite': '#F8F8FF', 'gold': '#FFD700', 'goldenrod': '#DAA520', 'gray': '#808080', 'grey': '#808080', 'green': '#008000', 'greenyellow': '#ADFF2F', 'honeydew': '#F0FFF0', 'hotpink': '#FF69B4', 'indianred ': '#CD5C5C', 'indigo ': '#4B0082', 'ivory': '#FFFFF0', 'khaki': '#F0E68C', 'lavender': '#E6E6FA', 'lavenderblush': '#FFF0F5', 'lawngreen': '#7CFC00', 'lemonchiffon': '#FFFACD', 'lightblue': '#ADD8E6', 'lightcoral': '#F08080', 'lightcyan': '#E0FFFF', 'lightgoldenrodyellow': '#FAFAD2', 'lightgray': '#D3D3D3', 'lightgrey': '#D3D3D3', 'lightgreen': '#90EE90', 'lightpink': '#FFB6C1', 'lightsalmon': '#FFA07A', 'lightseagreen': '#20B2AA', 'lightskyblue': '#87CEFA', 'lightslategray': '#778899', 'lightslategrey': '#778899', 'lightsteelblue': '#B0C4DE', 'lightyellow': '#FFFFE0', 'lime': '#00FF00', 'limegreen': '#32CD32', 'linen': '#FAF0E6', 'magenta': '#FF00FF', 'maroon': '#800000', 'mediumaquamarine': '#66CDAA', 'mediumblue': '#0000CD', 'mediumorchid': '#BA55D3', 'mediumpurple': '#9370DB', 'mediumseagreen': '#3CB371', 'mediumslateblue': '#7B68EE', 'mediumspringgreen': '#00FA9A', 'mediumturquoise': '#48D1CC', 'mediumvioletred': '#C71585', 'midnightblue': '#191970', 'mintcream': '#F5FFFA', 'mistyrose': '#FFE4E1', 'moccasin': '#FFE4B5', 'navajowhite': '#FFDEAD', 'navy': '#000080', 'oldlace': '#FDF5E6', 'olive': '#808000', 'olivedrab': '#6B8E23', 'orange': '#FFA500', 'orangered': '#FF4500', 'orchid': '#DA70D6', 'palegoldenrod': '#EEE8AA', 'palegreen': '#98FB98', 'paleturquoise': '#AFEEEE', 'palevioletred': '#DB7093', 'papayawhip': '#FFEFD5', 'peachpuff': '#FFDAB9', 'peru': '#CD853F', 'pink': '#FFC0CB', 'plum': '#DDA0DD', 'powderblue': '#B0E0E6', 'purple': '#800080', 'rebeccapurple': '#663399', 'red': '#FF0000', 'rosybrown': '#BC8F8F', 'royalblue': '#4169E1', 'saddlebrown': '#8B4513', 'salmon': '#FA8072', 'sandybrown': '#F4A460', 'seagreen': '#2E8B57', 'seashell': '#FFF5EE', 'sienna': '#A0522D', 'silver': '#C0C0C0', 'skyblue': '#87CEEB', 'slateblue': '#6A5ACD', 'slategray': '#708090', 'slategrey': '#708090', 'snow': '#FFFAFA', 'springgreen': '#00FF7F', 'steelblue': '#4682B4', 'tan': '#D2B48C', 'teal': '#008080', 'thistle': '#D8BFD8', 'tomato': '#FF6347', 'turquoise': '#40E0D0', 'violet': '#EE82EE', 'wheat': '#F5DEB3', 'white': '#FFFFFF', 'whitesmoke': '#F5F5F5', 'yellow': '#FFFF00', 'yellowgreen': '#9ACD32' };
9
+ /* eslint-disable @typescript-eslint/no-explicit-any */
10
+ const ColorNames = {
11
+ aliceblue: '#F0F8FF',
12
+ antiquewhite: '#FAEBD7',
13
+ aqua: '#00FFFF',
14
+ aquamarine: '#7FFFD4',
15
+ azure: '#F0FFFF',
16
+ beige: '#F5F5DC',
17
+ bisque: '#FFE4C4',
18
+ black: '#000000',
19
+ blanchedalmond: '#FFEBCD',
20
+ blue: '#0000FF',
21
+ blueviolet: '#8A2BE2',
22
+ brown: '#A52A2A',
23
+ burlywood: '#DEB887',
24
+ cadetblue: '#5F9EA0',
25
+ chartreuse: '#7FFF00',
26
+ chocolate: '#D2691E',
27
+ coral: '#FF7F50',
28
+ cornflowerblue: '#6495ED',
29
+ cornsilk: '#FFF8DC',
30
+ crimson: '#DC143C',
31
+ cyan: '#00FFFF',
32
+ darkblue: '#00008B',
33
+ darkcyan: '#008B8B',
34
+ darkgoldenrod: '#B8860B',
35
+ darkgray: '#A9A9A9',
36
+ darkgrey: '#A9A9A9',
37
+ darkgreen: '#006400',
38
+ darkkhaki: '#BDB76B',
39
+ darkmagenta: '#8B008B',
40
+ darkolivegreen: '#556B2F',
41
+ darkorange: '#FF8C00',
42
+ darkorchid: '#9932CC',
43
+ darkred: '#8B0000',
44
+ darksalmon: '#E9967A',
45
+ darkseagreen: '#8FBC8F',
46
+ darkslateblue: '#483D8B',
47
+ darkslategray: '#2F4F4F',
48
+ darkslategrey: '#2F4F4F',
49
+ darkturquoise: '#00CED1',
50
+ darkviolet: '#9400D3',
51
+ deeppink: '#FF1493',
52
+ deepskyblue: '#00BFFF',
53
+ dimgray: '#696969',
54
+ dimgrey: '#696969',
55
+ dodgerblue: '#1E90FF',
56
+ firebrick: '#B22222',
57
+ floralwhite: '#FFFAF0',
58
+ forestgreen: '#228B22',
59
+ fuchsia: '#FF00FF',
60
+ gainsboro: '#DCDCDC',
61
+ ghostwhite: '#F8F8FF',
62
+ gold: '#FFD700',
63
+ goldenrod: '#DAA520',
64
+ gray: '#808080',
65
+ grey: '#808080',
66
+ green: '#008000',
67
+ greenyellow: '#ADFF2F',
68
+ honeydew: '#F0FFF0',
69
+ hotpink: '#FF69B4',
70
+ indianred: '#CD5C5C',
71
+ indigo: '#4B0082',
72
+ ivory: '#FFFFF0',
73
+ khaki: '#F0E68C',
74
+ lavender: '#E6E6FA',
75
+ lavenderblush: '#FFF0F5',
76
+ lawngreen: '#7CFC00',
77
+ lemonchiffon: '#FFFACD',
78
+ lightblue: '#ADD8E6',
79
+ lightcoral: '#F08080',
80
+ lightcyan: '#E0FFFF',
81
+ lightgoldenrodyellow: '#FAFAD2',
82
+ lightgray: '#D3D3D3',
83
+ lightgrey: '#D3D3D3',
84
+ lightgreen: '#90EE90',
85
+ lightpink: '#FFB6C1',
86
+ lightsalmon: '#FFA07A',
87
+ lightseagreen: '#20B2AA',
88
+ lightskyblue: '#87CEFA',
89
+ lightslategray: '#778899',
90
+ lightslategrey: '#778899',
91
+ lightsteelblue: '#B0C4DE',
92
+ lightyellow: '#FFFFE0',
93
+ lime: '#00FF00',
94
+ limegreen: '#32CD32',
95
+ linen: '#FAF0E6',
96
+ magenta: '#FF00FF',
97
+ maroon: '#800000',
98
+ mediumaquamarine: '#66CDAA',
99
+ mediumblue: '#0000CD',
100
+ mediumorchid: '#BA55D3',
101
+ mediumpurple: '#9370DB',
102
+ mediumseagreen: '#3CB371',
103
+ mediumslateblue: '#7B68EE',
104
+ mediumspringgreen: '#00FA9A',
105
+ mediumturquoise: '#48D1CC',
106
+ mediumvioletred: '#C71585',
107
+ midnightblue: '#191970',
108
+ mintcream: '#F5FFFA',
109
+ mistyrose: '#FFE4E1',
110
+ moccasin: '#FFE4B5',
111
+ navajowhite: '#FFDEAD',
112
+ navy: '#000080',
113
+ oldlace: '#FDF5E6',
114
+ olive: '#808000',
115
+ olivedrab: '#6B8E23',
116
+ orange: '#FFA500',
117
+ orangered: '#FF4500',
118
+ orchid: '#DA70D6',
119
+ palegoldenrod: '#EEE8AA',
120
+ palegreen: '#98FB98',
121
+ paleturquoise: '#AFEEEE',
122
+ palevioletred: '#DB7093',
123
+ papayawhip: '#FFEFD5',
124
+ peachpuff: '#FFDAB9',
125
+ peru: '#CD853F',
126
+ pink: '#FFC0CB',
127
+ plum: '#DDA0DD',
128
+ powderblue: '#B0E0E6',
129
+ purple: '#800080',
130
+ rebeccapurple: '#663399',
131
+ red: '#FF0000',
132
+ rosybrown: '#BC8F8F',
133
+ royalblue: '#4169E1',
134
+ saddlebrown: '#8B4513',
135
+ salmon: '#FA8072',
136
+ sandybrown: '#F4A460',
137
+ seagreen: '#2E8B57',
138
+ seashell: '#FFF5EE',
139
+ sienna: '#A0522D',
140
+ silver: '#C0C0C0',
141
+ skyblue: '#87CEEB',
142
+ slateblue: '#6A5ACD',
143
+ slategray: '#708090',
144
+ slategrey: '#708090',
145
+ snow: '#FFFAFA',
146
+ springgreen: '#00FF7F',
147
+ steelblue: '#4682B4',
148
+ tan: '#D2B48C',
149
+ teal: '#008080',
150
+ thistle: '#D8BFD8',
151
+ tomato: '#FF6347',
152
+ turquoise: '#40E0D0',
153
+ violet: '#EE82EE',
154
+ wheat: '#F5DEB3',
155
+ white: '#FFFFFF',
156
+ whitesmoke: '#F5F5F5',
157
+ yellow: '#FFFF00',
158
+ yellowgreen: '#9ACD32',
159
+ };
10
160
  const optionsDefault = () => {
11
161
  return {
12
162
  showHsl: false,
@@ -17,12 +167,12 @@ const optionsDefault = () => {
17
167
  format: 'color',
18
168
  slBarSize: [420, 200],
19
169
  hueBarSize: [420, 20],
20
- alphaBarSize: [420, 20]
170
+ alphaBarSize: [420, 20],
21
171
  };
22
172
  };
23
173
  const limit = (value, min, max) => {
24
174
  value = +value;
25
- return isNaN(value) ? min : (value < min ? min : (value > max ? max : value));
175
+ return isNaN(value) ? min : value < min ? min : value > max ? max : value;
26
176
  };
27
177
  const hslToRgb = (h, s, l) => {
28
178
  let r, g, b;
@@ -45,10 +195,10 @@ const hslToRgb = (h, s, l) => {
45
195
  return p;
46
196
  };
47
197
  const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
48
- const p = (2 * l) - q;
49
- r = hueToRgb(p, q, h + (1 / 3));
198
+ const p = 2 * l - q;
199
+ r = hueToRgb(p, q, h + 1 / 3);
50
200
  g = hueToRgb(p, q, h);
51
- b = hueToRgb(p, q, h - (1 / 3));
201
+ b = hueToRgb(p, q, h - 1 / 3);
52
202
  return [r * 255, g * 255, b * 255].map(Math.round);
53
203
  };
54
204
  const cssColorToRgba = (color) => {
@@ -56,32 +206,17 @@ const cssColorToRgba = (color) => {
56
206
  const colorByName = get(ColorNames, color.toLowerCase());
57
207
  const [, , , r, g, b, a, , rr, gg, bb, aa] = /^\s*#?((([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])?)|(([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?))\s*$/i.exec(colorByName || color) || [];
58
208
  if (!isNil(r)) {
59
- return [
60
- parseInt(r + r, 16),
61
- parseInt(g + g, 16),
62
- parseInt(b + b, 16),
63
- a ? +((parseInt(a + a, 16)) / 255).toFixed(2) : 1
64
- ];
209
+ return [parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), a ? +(parseInt(a + a, 16) / 255).toFixed(2) : 1];
65
210
  }
66
211
  if (!isNil(rr)) {
67
- return [
68
- parseInt(rr, 16),
69
- parseInt(gg, 16),
70
- parseInt(bb, 16),
71
- aa ? +((parseInt(aa, 16)) / 255).toFixed(2) : 1
72
- ];
212
+ return [parseInt(rr, 16), parseInt(gg, 16), parseInt(bb, 16), aa ? +(parseInt(aa, 16) / 255).toFixed(2) : 1];
73
213
  }
74
214
  }
75
215
  return undefined;
76
216
  };
77
217
  const parseColorToRgba = (color) => {
78
218
  if (Array.isArray(color)) {
79
- return [
80
- limit(color[0], 0, 255),
81
- limit(color[1], 0, 255),
82
- limit(color[2], 0, 255),
83
- limit(color[3] ?? 1, 0, 1)
84
- ];
219
+ return [limit(color[0], 0, 255), limit(color[1], 0, 255), limit(color[2], 0, 255), limit(color[3] ?? 1, 0, 1)];
85
220
  }
86
221
  const parsed = cssColorToRgba(color) || cssRgbaToRgba(color);
87
222
  if (parsed && parsed.length === 3) {
@@ -105,12 +240,7 @@ const cssHslaToHsla = (hsla) => {
105
240
  };
106
241
  const parseColorToHsla = (color) => {
107
242
  if (Array.isArray(color)) {
108
- return [
109
- limit(color[0], 0, 360),
110
- limit(color[1], 0, 100),
111
- limit(color[2], 0, 100),
112
- limit(color[3] ?? 1, 0, 1)
113
- ];
243
+ return [limit(color[0], 0, 360), limit(color[1], 0, 100), limit(color[2], 0, 100), limit(color[3] ?? 1, 0, 1)];
114
244
  }
115
245
  const parsed = cssHslaToHsla(color);
116
246
  if (parsed && parsed.length === 3) {
@@ -132,13 +262,13 @@ const rgbToHsl = (r, g, b) => {
132
262
  s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
133
263
  switch (max) {
134
264
  case r:
135
- h = ((g - b) / d) + (g < b ? 6 : 0);
265
+ h = (g - b) / d + (g < b ? 6 : 0);
136
266
  break;
137
267
  case g:
138
- h = ((b - r) / d) + 2;
268
+ h = (b - r) / d + 2;
139
269
  break;
140
270
  case b:
141
- h = ((r - g) / d) + 4;
271
+ h = (r - g) / d + 4;
142
272
  break;
143
273
  }
144
274
  h = (h || 0) / 6;
@@ -146,7 +276,7 @@ const rgbToHsl = (r, g, b) => {
146
276
  };
147
277
  const rgbToHex = (r, g, b) => {
148
278
  [r, g, b] = [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255)];
149
- return "#" + ("000000" + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);
279
+ return '#' + ('000000' + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);
150
280
  };
151
281
  const rgbToInt = (r, g, b) => {
152
282
  return (r << 16) | (g << 8) | b;
@@ -231,9 +361,11 @@ const parseColor = (color, format) => {
231
361
  };
232
362
  const defaultHelper = () => {
233
363
  return {
234
- setHue: () => { return; },
364
+ setHue: () => {
365
+ return;
366
+ },
235
367
  grabColor: () => [],
236
- findColor: () => []
368
+ findColor: () => [],
237
369
  };
238
370
  };
239
371
 
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-color-picker.mjs","sources":["../../../../../libs-ui/components/color-picker/src/utils/picker.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.html","../../../../../libs-ui/components/color-picker/src/libs-ui-components-color-picker.ts"],"sourcesContent":["import { get, isNil, set } from \"@libs-ui/utils\";\nimport { IPickerOptions } from \"../interfaces\";\n\nexport const ColorNames = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', 'aqua': '#00FFFF', 'aquamarine': '#7FFFD4', 'azure': '#F0FFFF', 'beige': '#F5F5DC', 'bisque': '#FFE4C4', 'black': '#000000', 'blanchedalmond': '#FFEBCD', 'blue': '#0000FF', 'blueviolet': '#8A2BE2', 'brown': '#A52A2A', 'burlywood': '#DEB887', 'cadetblue': '#5F9EA0', 'chartreuse': '#7FFF00', 'chocolate': '#D2691E', 'coral': '#FF7F50', 'cornflowerblue': '#6495ED', 'cornsilk': '#FFF8DC', 'crimson': '#DC143C', 'cyan': '#00FFFF', 'darkblue': '#00008B', 'darkcyan': '#008B8B', 'darkgoldenrod': '#B8860B', 'darkgray': '#A9A9A9', 'darkgrey': '#A9A9A9', 'darkgreen': '#006400', 'darkkhaki': '#BDB76B', 'darkmagenta': '#8B008B', 'darkolivegreen': '#556B2F', 'darkorange': '#FF8C00', 'darkorchid': '#9932CC', 'darkred': '#8B0000', 'darksalmon': '#E9967A', 'darkseagreen': '#8FBC8F', 'darkslateblue': '#483D8B', 'darkslategray': '#2F4F4F', 'darkslategrey': '#2F4F4F', 'darkturquoise': '#00CED1', 'darkviolet': '#9400D3', 'deeppink': '#FF1493', 'deepskyblue': '#00BFFF', 'dimgray': '#696969', 'dimgrey': '#696969', 'dodgerblue': '#1E90FF', 'firebrick': '#B22222', 'floralwhite': '#FFFAF0', 'forestgreen': '#228B22', 'fuchsia': '#FF00FF', 'gainsboro': '#DCDCDC', 'ghostwhite': '#F8F8FF', 'gold': '#FFD700', 'goldenrod': '#DAA520', 'gray': '#808080', 'grey': '#808080', 'green': '#008000', 'greenyellow': '#ADFF2F', 'honeydew': '#F0FFF0', 'hotpink': '#FF69B4', 'indianred ': '#CD5C5C', 'indigo ': '#4B0082', 'ivory': '#FFFFF0', 'khaki': '#F0E68C', 'lavender': '#E6E6FA', 'lavenderblush': '#FFF0F5', 'lawngreen': '#7CFC00', 'lemonchiffon': '#FFFACD', 'lightblue': '#ADD8E6', 'lightcoral': '#F08080', 'lightcyan': '#E0FFFF', 'lightgoldenrodyellow': '#FAFAD2', 'lightgray': '#D3D3D3', 'lightgrey': '#D3D3D3', 'lightgreen': '#90EE90', 'lightpink': '#FFB6C1', 'lightsalmon': '#FFA07A', 'lightseagreen': '#20B2AA', 'lightskyblue': '#87CEFA', 'lightslategray': '#778899', 'lightslategrey': '#778899', 'lightsteelblue': '#B0C4DE', 'lightyellow': '#FFFFE0', 'lime': '#00FF00', 'limegreen': '#32CD32', 'linen': '#FAF0E6', 'magenta': '#FF00FF', 'maroon': '#800000', 'mediumaquamarine': '#66CDAA', 'mediumblue': '#0000CD', 'mediumorchid': '#BA55D3', 'mediumpurple': '#9370DB', 'mediumseagreen': '#3CB371', 'mediumslateblue': '#7B68EE', 'mediumspringgreen': '#00FA9A', 'mediumturquoise': '#48D1CC', 'mediumvioletred': '#C71585', 'midnightblue': '#191970', 'mintcream': '#F5FFFA', 'mistyrose': '#FFE4E1', 'moccasin': '#FFE4B5', 'navajowhite': '#FFDEAD', 'navy': '#000080', 'oldlace': '#FDF5E6', 'olive': '#808000', 'olivedrab': '#6B8E23', 'orange': '#FFA500', 'orangered': '#FF4500', 'orchid': '#DA70D6', 'palegoldenrod': '#EEE8AA', 'palegreen': '#98FB98', 'paleturquoise': '#AFEEEE', 'palevioletred': '#DB7093', 'papayawhip': '#FFEFD5', 'peachpuff': '#FFDAB9', 'peru': '#CD853F', 'pink': '#FFC0CB', 'plum': '#DDA0DD', 'powderblue': '#B0E0E6', 'purple': '#800080', 'rebeccapurple': '#663399', 'red': '#FF0000', 'rosybrown': '#BC8F8F', 'royalblue': '#4169E1', 'saddlebrown': '#8B4513', 'salmon': '#FA8072', 'sandybrown': '#F4A460', 'seagreen': '#2E8B57', 'seashell': '#FFF5EE', 'sienna': '#A0522D', 'silver': '#C0C0C0', 'skyblue': '#87CEEB', 'slateblue': '#6A5ACD', 'slategray': '#708090', 'slategrey': '#708090', 'snow': '#FFFAFA', 'springgreen': '#00FF7F', 'steelblue': '#4682B4', 'tan': '#D2B48C', 'teal': '#008080', 'thistle': '#D8BFD8', 'tomato': '#FF6347', 'turquoise': '#40E0D0', 'violet': '#EE82EE', 'wheat': '#F5DEB3', 'white': '#FFFFFF', 'whitesmoke': '#F5F5F5', 'yellow': '#FFFF00', 'yellowgreen': '#9ACD32' };\nexport const optionsDefault = (): IPickerOptions => {\n return {\n showHsl: false,\n showRgb: true,\n showHex: true,\n showAlpha: false,\n color: '#ff0000',\n format: 'color',\n slBarSize: [420, 200],\n hueBarSize: [420, 20],\n alphaBarSize: [420, 20]\n };\n}\n\nexport const limit = (value: number | string, min: number, max: number) => {\n value = +value;\n return isNaN(value) ? min : (value < min ? min : (value > max ? max : value));\n}\n\nexport const hslToRgb = (h: number, s: number, l: number) => {\n let r, g, b;\n [h, s, l] = [limit(h, 0, 360) / 360, limit(s, 0, 100) / 100, limit(l, 0, 100) / 100];\n\n if (s == 0) {\n r = g = b = l; // achromatic\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n }\n const hueToRgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\n return p;\n };\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = (2 * l) - q;\n\n r = hueToRgb(p, q, h + (1 / 3));\n g = hueToRgb(p, q, h);\n b = hueToRgb(p, q, h - (1 / 3));\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n}\n\nexport const cssColorToRgba = (color: string) => {\n if (color) {\n const colorByName = get(ColorNames, color.toLowerCase());\n const [, , , r, g, b, a, , rr, gg, bb, aa] = /^\\s*#?((([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])?)|(([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?))\\s*$/i.exec(colorByName || color) || [];\n if (!isNil(r)) {\n return [\n parseInt(r + r, 16),\n parseInt(g + g, 16),\n parseInt(b + b, 16),\n a ? +((parseInt(a + a, 16)) / 255).toFixed(2) : 1\n ];\n }\n if (!isNil(rr)) {\n return [\n parseInt(rr, 16),\n parseInt(gg, 16),\n parseInt(bb, 16),\n aa ? +((parseInt(aa, 16)) / 255).toFixed(2) : 1\n ];\n }\n }\n\n return undefined;\n}\n\nexport const parseColorToRgba = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [\n limit(color[0], 0, 255),\n limit(color[1], 0, 255),\n limit(color[2], 0, 255),\n limit(color[3] ?? 1, 0, 1)\n ];\n }\n const parsed = cssColorToRgba(color) || cssRgbaToRgba(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n}\n\nexport const cssRgbaToRgba = (rgba: string) => {\n if (rgba) {\n const [m, r, g, b, , a] = /^rgba?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(rgba) || [];\n\n return m ? [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n}\n\nexport const cssHslaToHsla = (hsla: string) => {\n if (hsla) {\n const [m, h, s, l, , a] = /^hsla?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(hsla) || [];\n\n return m ? [limit(h, 0, 255), limit(s, 0, 255), limit(l, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n}\n\nexport const parseColorToHsla = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [\n limit(color[0], 0, 360),\n limit(color[1], 0, 100),\n limit(color[2], 0, 100),\n limit(color[3] ?? 1, 0, 1)\n ];\n }\n const parsed = cssHslaToHsla(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n}\n\nexport const rgbToHsl = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h, s = (max + min) / 2;\n const l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n }\n const d = max - min;\n\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = ((g - b) / d) + (g < b ? 6 : 0);\n break;\n case g:\n h = ((b - r) / d) + 2;\n break;\n case b:\n h = ((r - g) / d) + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n}\n\nexport const rgbToHex = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255)];\n\n return \"#\" + (\"000000\" + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);\n}\n\nexport const rgbToInt = (r: number, g: number, b: number) => {\n return (r << 16) | (g << 8) | b;\n}\n\nexport const rgbToHsv = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h, s = max;\n const v = max;\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0;\n\n return [h, s, v];\n }\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h = (h || 0) / 6;\n\n return [h, s, v];\n}\n\nexport const formatColor = (data: Array<number>, format: string) => {\n switch (format) {\n case 'rgb':\n default:\n return data.slice(0, 3);\n case 'rgbcss':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'rgbcss4':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'rgba':\n return data;\n case 'rgbacss':\n return `rgba(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'hsl':\n return rgbToHsl(data[0], data[1], data[2]);\n case 'hslcss':\n data = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'hslcss4': {\n const hh = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${hh[0]}, ${hh[1]}, ${hh[2]}, ${data[3]})`;\n }\n case 'hsla':\n return [...rgbToHsl(data[0], data[1], data[2]), data[3]];\n case 'hslacss': {\n const ha = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsla(${ha[0]}, ${ha[1]}, ${ha[2]}, ${data[3]})`;\n }\n case 'hex':\n return rgbToHex(data[0], data[1], data[2]);\n case 'hexcss4':\n return rgbToHex(data[0], data[1], data[2]) + ('00' + parseInt((data[3] * 255).toString()).toString(16)).slice(-2);\n case 'int':\n return rgbToInt(data[0], data[1], data[2]);\n }\n}\n\nexport const parseColor = (color: string | Array<number>, format: string | object) => {\n if (!isNil(color)) {\n let data: Array<number> | undefined = [];\n\n data = parseColorToRgba(color) || (parseColorToHsla(color) && [...hslToRgb(data[0], data[1], data[2]), data[3]]);\n if (data) {\n if (typeof format === 'object') {\n return ['rgb', 'rgbcss', 'rgbcss4', 'rgba', 'rgbacss', 'hsl', 'hslcss', 'hslcss4', 'hsla', 'hslacss', 'hex', 'hexcss4', 'int'].reduce((m, f) => {\n set(m, f, formatColor(data, f));\n\n return m;\n }, format);\n }\n\n return formatColor(data, format as string);\n }\n }\n\n return undefined;\n}\n\nexport const defaultHelper = () => {\n return {\n setHue: () => { return },\n grabColor: () => [],\n findColor: () => []\n };\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, OnDestroy, OnInit, output, signal, viewChild } from \"@angular/core\";\nimport { IFocusAndBlurEvent, LibsUiComponentsInputsInputComponent } from \"@libs-ui/components-inputs-input\";\nimport { LibsUiComponentsInputsValidComponent } from \"@libs-ui/components-inputs-valid\";\nimport { LibsUiNotificationService } from \"@libs-ui/services-notification\";\nimport { getDragEventByElement, set } from \"@libs-ui/utils\";\nimport { Subject } from \"rxjs\";\nimport { ICanvasHelper, IConfigUpdate, IOutputColorChangeMultipleType, IPickerCustomOptions, IPickerOptions } from \"./interfaces/picker.interface\";\nimport { cssColorToRgba, defaultHelper, hslToRgb, limit, optionsDefault, parseColor, rgbToHex, rgbToHsl, rgbToHsv } from \"./utils/picker\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-color_picker',\n templateUrl: './color-picker.component.html',\n styleUrl: './color-picker.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsInputsInputComponent,\n LibsUiComponentsInputsValidComponent\n ]\n})\nexport class LibsUiComponentsColorPickerComponent implements OnInit, AfterViewInit,OnDestroy {\n\n // #region PROPERTY\n protected options = signal<IPickerOptions>(optionsDefault());\n protected focus = signal<string | undefined>(undefined);\n protected hex = signal<string>('');\n protected s = signal<number>(0);\n protected h = signal<number>(0);\n protected l = signal<number>(0);\n protected r = signal<number>(0);\n protected g = signal<number>(0);\n protected b = signal<number>(0);\n protected a = signal<number>(1);\n\n private slBarHelper = signal<ICanvasHelper>(defaultHelper());\n private notificationService = inject(LibsUiNotificationService);\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly customOptions = input<IPickerCustomOptions>();\n readonly noEmitEventColorWhenInitComponent = input<boolean,boolean | undefined>(true, {transform: (value) => value ?? true});\n\n // #region OUTPUT\n readonly outColorChange = output<string>();\n readonly outColorChangeMultipleType = output<IOutputColorChangeMultipleType>();\n\n /* VIEW CHILD */\n private readonly hueEl = viewChild<ElementRef>('hueEl');\n private readonly huePointerEl = viewChild<ElementRef>('huePointerEl');\n private readonly slEl = viewChild<ElementRef>('slEl');\n private readonly slPointerEl = viewChild<ElementRef>('slPointerEl');\n private readonly alphaEl = viewChild<ElementRef>('alphaEl');\n private readonly alphaPointerEl = viewChild<ElementRef>('alphaPointerEl');\n private readonly previewEl = viewChild<ElementRef>('previewEl');\n\n constructor() {\n effect(() => {\n const ctx = this.alphaEl()?.nativeElement.getContext('2d');\n\n if (!ctx) {\n return;\n }\n ctx.clearRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n const gradient = ctx.createLinearGradient(0, 0, this.alphaEl()?.nativeElement.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n });\n }\n\n /* FUNCTIONS */\n ngOnInit(): void {\n if (this.customOptions()) {\n this.options.update(options => ({ ...options, ...this.customOptions() }));\n }\n }\n\n ngAfterViewInit(): void {\n this.setupHueCanvas();\n this.setupSlCanvas();\n this.setupSlBarHelper();\n if (this.options().showAlpha) {\n this.setupAlphaCanvas();\n }\n this.handlerColorChange(this.options().format, this.options().color, this.noEmitEventColorWhenInitComponent());\n }\n\n private setupHueCanvas() {\n const canvas = this.hueEl()?.nativeElement;\n\n canvas.width = this.options().hueBarSize[0];\n canvas.height = this.options().hueBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, this.options().hueBarSize[0], 0);\n const step = 1 / 360;\n\n for (let ii = 0; ii <= 1; ii += step) {\n gradient.addColorStop(ii, `hsl(${360 * ii}, 100%, 50%)`);\n }\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().hueBarSize[0], this.options().hueBarSize[1]);\n\n getDragEventByElement({elementMouseDown:canvas,isStartWithMouseDownEvent:true,onDestroy:this.onDestroy}).subscribe((event: MouseEvent)=>{\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().hueBarSize[0]);\n const hue = Math.round(x * 360 / this.options().hueBarSize[0]);\n \n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.h.set(hue);\n this.handlerColorChange('h', hue);\n });\n \n }\n\n private setupSlCanvas() {\n const canvas = this.slEl()?.nativeElement;\n\n canvas.width = this.options().slBarSize[0];\n canvas.height = this.options().slBarSize[1];\n\n getDragEventByElement({elementMouseDown:canvas,isStartWithMouseDownEvent:true,onDestroy:this.onDestroy}).subscribe((event)=>{\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().slBarSize[0] - 1);\n const y = limit(event.clientY - canvas.getBoundingClientRect().top, 0, this.options().slBarSize[1] - 1);\n const c = this.slBarHelper().grabColor(x, y);\n\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n this.handlerColorChange('rgb', c);\n });\n \n }\n\n private setupSlBarHelper() {\n const canvas = this.slEl()?.nativeElement;\n const ctx = canvas.getContext('2d');\n const width = +canvas.width;\n const height = +canvas.height;\n const whiteBlackGradient = ctx.createLinearGradient(1, 1, 1, height - 1);\n\n whiteBlackGradient.addColorStop(0, 'white');\n whiteBlackGradient.addColorStop(1, 'black');\n\n this.slBarHelper.set({\n setHue: (hue: number) => {\n const colorGradient = ctx.createLinearGradient(1, 0, width - 1, 0);\n colorGradient.addColorStop(0, `hsla(${hue}, 100%, 50%, 0)`);\n colorGradient.addColorStop(1, `hsla(${hue}, 100%, 50%, 1)`);\n\n ctx.fillStyle = whiteBlackGradient;\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = colorGradient;\n ctx.globalCompositeOperation = 'multiply';\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = 'source-over';\n },\n grabColor: (x: number, y: number) => ctx.getImageData(x, y, 1, 1).data,\n findColor: (r: number, g: number, b: number) => {\n const [, s, v] = rgbToHsv(r, g, b);\n const x = s * width;\n const y = height - (v * height);\n\n return [x, y];\n }\n });\n }\n\n private setupAlphaCanvas() {\n const canvas = this.alphaEl()?.nativeElement;\n\n canvas.width = this.options().alphaBarSize[0];\n canvas.height = this.options().alphaBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, canvas.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n \n getDragEventByElement({elementMouseDown:canvas,isStartWithMouseDownEvent:true,onDestroy:this.onDestroy}).subscribe((event)=>{\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().alphaBarSize[0]);\n const alpha = +(x / this.options().alphaBarSize[0]).toFixed(2);\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.handlerColorChange('alpha', alpha);\n });\n }\n\n protected handlerCopyColor(event: Event) {\n event.stopPropagation();\n window.navigator.clipboard.writeText(this.hex());\n // this.notificationService.showCompTypeTextSuccess('i18n_copy_successfully');\n }\n\n private updatePointerH(h: number) {\n const x = this.options().hueBarSize[0] * h / 360;\n\n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updatePointerSl(h: number, s: number, l: number) {\n const [r, g, b] = hslToRgb(h, s, l);\n const [x, y] = this.slBarHelper().findColor(r, g, b) as Array<number>;\n\n if (x >= 0) {\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n }\n }\n\n private updatePointerA(a: number) {\n if (!this.options().showAlpha) {\n return;\n }\n const x = this.options().alphaBarSize[0] * a;\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updateHex(r: number, g: number, b: number, a: number) {\n if (this.options().showAlpha) {\n this.hex.set(parseColor([r, g, b, a], 'hexcss4') as string);\n\n return;\n }\n this.hex.set(rgbToHex(r, g, b));\n }\n\n private updateRgb() {\n const rgb = hslToRgb(this.h(), this.s(), this.l());\n\n this.r.set(rgb[0]);\n this.g.set(rgb[1]);\n this.b.set(rgb[2]);\n }\n\n private updateHsl() {\n const hsl = rgbToHsl(this.r(), this.g(), this.b());\n\n this.h.set(hsl[0]);\n this.s.set(hsl[1]);\n this.l.set(hsl[2]);\n }\n\n private updateValuesAndPointer(config: IConfigUpdate) {\n if (config.rgb) {\n this.updateRgb();\n }\n if (config.hsl) {\n this.updateHsl();\n }\n if (config.hue) {\n this.slBarHelper().setHue(this.h());\n }\n if (config.hPoint) {\n this.updatePointerH(this.h());\n }\n if (config.slPoint) {\n this.updatePointerSl(this.h(), this.s(), this.l());\n }\n if (config.hex) {\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n }\n if (config.aPoint) {\n this.updatePointerA(this.a());\n }\n }\n\n private handlerColorChange(key: string, value: string | number | Array<number>, isCallInitComponent = false) {\n let config: IConfigUpdate = {};\n\n switch (key) {\n case 'h':\n config = { hPoint: true, hex: true, rgb: true, hue: true };\n break;\n case 's':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'l':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'r':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'g':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'b':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'rgb':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n config = { hex: true, hsl: true };\n break;\n case 'rgba':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n break;\n case 'hsl':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hsla':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hex': {\n const rgba = cssColorToRgba(value as string) || [this.r(), this.g(), this.b(), this.a()];\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, aPoint: true, hsl: true, hue: true };\n break;\n }\n case 'color': {\n const rgba = (parseColor(value as string | Array<number>, 'rgba') || [0, 0, 0, 1]) as Array<number>;\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n\n break;\n }\n case 'alpha':\n this.a.set(value as number);\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n break;\n }\n this.updateValuesAndPointer(config);\n set(this.previewEl()?.nativeElement.style, 'backgroundColor', this.a() === 1 ? `rgb(${this.r()},${this.g()},${this.b()})` : `rgba(${this.r()},${this.g()},${this.b()},${this.a()})`);\n if (!isCallInitComponent) {\n this.outColorChange.emit(this.hex());\n this.outColorChangeMultipleType.emit({\n hex:this.hex(),\n rgba:`rgba(${this.r()},${this.g()},${this.b()},${this.a()})`,\n rgb:`rgb(${this.r()},${this.g()},${this.b()})`,\n hsl:`hsl(${this.h()},${this.s()},${this.l()})`,\n hsla:`hsla(${this.h()},${this.s()},${this.l()},${this.a()})`\n });\n }\n }\n\n protected handlerFocusAndBlur(event: IFocusAndBlurEvent, key: string) {\n this.focus.set(event.name === 'blur' ? undefined : key);\n }\n\n protected handlerValueChange(event: string | number, key: string) {\n this.handlerColorChange(key, event);\n }\n\n protected handlerValueChangeAlphaInput(event: string | number) {\n this.handlerColorChange('alpha', ( event as number || 0)/100);\n this.updatePointerA(this.a());\n }\n\n protected handlerResetColor() {\n this.handlerColorChange('alpha',0);\n this.updatePointerA(this.a());\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}","<div>\n <div class=\"relative\"\n [style.width.px]=\"options().slBarSize[0]\">\n <div>\n <canvas #slEl\n class=\"rounded-tl-[4px] rounded-tr-[4px] libs-ui-color-picker-background-transparent\"></canvas>\n <div #slPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n <div class=\"relative\">\n <canvas #hueEl\n class=\"libs-ui-color-picker-background-transparent\"\n [class.rounded-bl-[4px]]=\"!options().showAlpha\"\n [class.rounded-br-[4px]]=\"!options().showAlpha\"></canvas>\n <div #huePointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n @if (options().showAlpha) {\n <div class=\"relative\">\n <canvas #alphaEl\n class=\"rounded-bl-[4px] rounded-br-[4px] libs-ui-color-picker-background-transparent\">\n </canvas>\n <div #alphaPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n }\n <div class=\"flex items-end\">\n <div class=\"text-center mr-[16px]\">\n <div class=\"libs-ui-color-picker-background-transparent rounded-[4px]\">\n <div #previewEl\n class=\"w-[32px] h-[32px] rounded-[4px] cursor-pointer\"\n (click)=\"handlerCopyColor($event)\"></div>\n </div>\n </div>\n @if (options().showHex) {\n <div class=\"text-center mr-[12px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">HEX</span>\n <div class=\"w-[88px]\">\n <libs_ui-components-inputs-input [(value)]=\"hex\"\n [classInclude]=\"'text-center !p-0'\"\n (outChange)=\"handlerValueChange($event, 'hex')\" />\n </div>\n </div>\n }\n <div>\n @if (options().showHsl) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">H</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"h\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"360\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 's' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'h')\"\n (outChange)=\"handlerValueChange($event, 'h')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">S</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"s\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 's' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 's')\"\n (outChange)=\"handlerValueChange($event, 's')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">L</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"l\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 's' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'l')\"\n (outChange)=\"handlerValueChange($event, 'l')\" />\n </div>\n </div>\n </div>\n }\n @if (options().showRgb) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">R</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"r\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 'g' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'r')\"\n (outChange)=\"handlerValueChange($event, 'r')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">G</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"g\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 'g' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'g')\"\n (outChange)=\"handlerValueChange($event, 'g')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">B</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"b\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 'g' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'b')\"\n (outChange)=\"handlerValueChange($event, 'b')\" />\n </div>\n </div>\n <div class=\"text-center ml-[8px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">A</span>\n <div class=\"w-[78px]\">\n <libs_ui-components-inputs-valid [item]=\"{aValue:a()*100}\"\n [fieldNameBind]=\"'aValue'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [unitsRight]=\"[{label:'%'}]\"\n [emitEmptyInDataTypeNumber]=\"true\"\n (outValueChange)=\"handlerValueChangeAlphaInput($event)\"/>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-color-picker.mjs","sources":["../../../../../libs-ui/components/color-picker/src/utils/picker.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.ts","../../../../../libs-ui/components/color-picker/src/color-picker.component.html","../../../../../libs-ui/components/color-picker/src/libs-ui-components-color-picker.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { get, isNil, set } from '@libs-ui/utils';\nimport { IColor, IPickerOptions } from '../interfaces';\n\nexport const ColorNames: IColor = {\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgrey: '#A9A9A9',\n darkgreen: '#006400',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n grey: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgrey: '#D3D3D3',\n lightgreen: '#90EE90',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n};\nexport const optionsDefault = (): IPickerOptions => {\n return {\n showHsl: false,\n showRgb: true,\n showHex: true,\n showAlpha: false,\n color: '#ff0000',\n format: 'color',\n slBarSize: [420, 200],\n hueBarSize: [420, 20],\n alphaBarSize: [420, 20],\n };\n};\n\nexport const limit = (value: number | string, min: number, max: number) => {\n value = +value;\n return isNaN(value) ? min : value < min ? min : value > max ? max : value;\n};\n\nexport const hslToRgb = (h: number, s: number, l: number) => {\n let r, g, b;\n [h, s, l] = [limit(h, 0, 360) / 360, limit(s, 0, 100) / 100, limit(l, 0, 100) / 100];\n\n if (s == 0) {\n r = g = b = l; // achromatic\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n }\n const hueToRgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\n return p;\n };\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hueToRgb(p, q, h + 1 / 3);\n g = hueToRgb(p, q, h);\n b = hueToRgb(p, q, h - 1 / 3);\n\n return [r * 255, g * 255, b * 255].map(Math.round);\n};\n\nexport const cssColorToRgba = (color: string) => {\n if (color) {\n const colorByName = get(ColorNames, color.toLowerCase());\n const [, , , r, g, b, a, , rr, gg, bb, aa] = /^\\s*#?((([0-9A-F])([0-9A-F])([0-9A-F])([0-9A-F])?)|(([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?))\\s*$/i.exec(colorByName || color) || [];\n if (!isNil(r)) {\n return [parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), a ? +(parseInt(a + a, 16) / 255).toFixed(2) : 1];\n }\n if (!isNil(rr)) {\n return [parseInt(rr, 16), parseInt(gg, 16), parseInt(bb, 16), aa ? +(parseInt(aa, 16) / 255).toFixed(2) : 1];\n }\n }\n\n return undefined;\n};\n\nexport const parseColorToRgba = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [limit(color[0], 0, 255), limit(color[1], 0, 255), limit(color[2], 0, 255), limit(color[3] ?? 1, 0, 1)];\n }\n const parsed = cssColorToRgba(color) || cssRgbaToRgba(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n};\n\nexport const cssRgbaToRgba = (rgba: string) => {\n if (rgba) {\n const [m, r, g, b, , a] = /^rgba?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(rgba) || [];\n\n return m ? [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n};\n\nexport const cssHslaToHsla = (hsla: string) => {\n if (hsla) {\n const [m, h, s, l, , a] = /^hsla?\\((\\d+)\\s*[\\s,]\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)(\\s*[\\s,]\\s*(\\d*(.\\d+)?))?\\)/i.exec(hsla) || [];\n\n return m ? [limit(h, 0, 255), limit(s, 0, 255), limit(l, 0, 255), limit(a ?? 1, 0, 1)] : undefined;\n }\n\n return undefined;\n};\n\nexport const parseColorToHsla = (color: string | Array<number>) => {\n if (Array.isArray(color)) {\n return [limit(color[0], 0, 360), limit(color[1], 0, 100), limit(color[2], 0, 100), limit(color[3] ?? 1, 0, 1)];\n }\n const parsed = cssHslaToHsla(color);\n\n if (parsed && parsed.length === 3) {\n parsed.push(1);\n }\n\n return parsed;\n};\n\nexport const rgbToHsl = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h,\n s = (max + min) / 2;\n const l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n }\n const d = max - min;\n\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h * 360, s * 100, l * 100].map(Math.round);\n};\n\nexport const rgbToHex = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255), limit(g, 0, 255), limit(b, 0, 255)];\n\n return '#' + ('000000' + ((r << 16) | (g << 8) | b).toString(16)).slice(-6);\n};\n\nexport const rgbToInt = (r: number, g: number, b: number) => {\n return (r << 16) | (g << 8) | b;\n};\n\nexport const rgbToHsv = (r: number, g: number, b: number) => {\n [r, g, b] = [limit(r, 0, 255) / 255, limit(g, 0, 255) / 255, limit(b, 0, 255) / 255];\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h,\n s = max;\n const v = max;\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0;\n\n return [h, s, v];\n }\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h = (h || 0) / 6;\n\n return [h, s, v];\n};\n\nexport const formatColor = (data: Array<number>, format: string) => {\n switch (format) {\n case 'rgb':\n default:\n return data.slice(0, 3);\n case 'rgbcss':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'rgbcss4':\n return `rgb(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'rgba':\n return data;\n case 'rgbacss':\n return `rgba(${data[0]}, ${data[1]}, ${data[2]}, ${data[3]})`;\n case 'hsl':\n return rgbToHsl(data[0], data[1], data[2]);\n case 'hslcss':\n data = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${data[0]}, ${data[1]}, ${data[2]})`;\n case 'hslcss4': {\n const hh = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsl(${hh[0]}, ${hh[1]}, ${hh[2]}, ${data[3]})`;\n }\n case 'hsla':\n return [...rgbToHsl(data[0], data[1], data[2]), data[3]];\n case 'hslacss': {\n const ha = rgbToHsl(data[0], data[1], data[2]);\n\n return `hsla(${ha[0]}, ${ha[1]}, ${ha[2]}, ${data[3]})`;\n }\n case 'hex':\n return rgbToHex(data[0], data[1], data[2]);\n case 'hexcss4':\n return rgbToHex(data[0], data[1], data[2]) + ('00' + parseInt((data[3] * 255).toString()).toString(16)).slice(-2);\n case 'int':\n return rgbToInt(data[0], data[1], data[2]);\n }\n};\n\nexport const parseColor = (color: string | Array<number>, format: string | object) => {\n if (!isNil(color)) {\n let data: Array<number> | undefined = [];\n\n data = parseColorToRgba(color) || (parseColorToHsla(color) && [...hslToRgb(data[0], data[1], data[2]), data[3]]);\n if (data) {\n if (typeof format === 'object') {\n return ['rgb', 'rgbcss', 'rgbcss4', 'rgba', 'rgbacss', 'hsl', 'hslcss', 'hslcss4', 'hsla', 'hslacss', 'hex', 'hexcss4', 'int'].reduce((m, f) => {\n set<any>(m, f, formatColor(data, f));\n\n return m;\n }, format);\n }\n\n return formatColor(data, format as string);\n }\n }\n\n return undefined;\n};\n\nexport const defaultHelper = () => {\n return {\n setHue: () => {\n return;\n },\n grabColor: () => [],\n findColor: () => [],\n };\n};\n","import { AfterViewInit, ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, OnDestroy, OnInit, output, signal, viewChild } from \"@angular/core\";\nimport { IFocusAndBlurEvent, LibsUiComponentsInputsInputComponent } from \"@libs-ui/components-inputs-input\";\nimport { LibsUiComponentsInputsValidComponent } from \"@libs-ui/components-inputs-valid\";\nimport { LibsUiNotificationService } from \"@libs-ui/services-notification\";\nimport { getDragEventByElement, set } from \"@libs-ui/utils\";\nimport { Subject } from \"rxjs\";\nimport { ICanvasHelper, IConfigUpdate, IOutputColorChangeMultipleType, IPickerCustomOptions, IPickerOptions } from \"./interfaces/picker.interface\";\nimport { cssColorToRgba, defaultHelper, hslToRgb, limit, optionsDefault, parseColor, rgbToHex, rgbToHsl, rgbToHsv } from \"./utils/picker\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-color_picker',\n templateUrl: './color-picker.component.html',\n styleUrl: './color-picker.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n LibsUiComponentsInputsInputComponent,\n LibsUiComponentsInputsValidComponent\n ]\n})\nexport class LibsUiComponentsColorPickerComponent implements OnInit, AfterViewInit,OnDestroy {\n\n // #region PROPERTY\n protected options = signal<IPickerOptions>(optionsDefault());\n protected focus = signal<string | undefined>(undefined);\n protected hex = signal<string>('');\n protected s = signal<number>(0);\n protected h = signal<number>(0);\n protected l = signal<number>(0);\n protected r = signal<number>(0);\n protected g = signal<number>(0);\n protected b = signal<number>(0);\n protected a = signal<number>(1);\n\n private slBarHelper = signal<ICanvasHelper>(defaultHelper());\n private notificationService = inject(LibsUiNotificationService);\n private onDestroy = new Subject<void>();\n\n // #region INPUT\n readonly customOptions = input<IPickerCustomOptions>();\n readonly noEmitEventColorWhenInitComponent = input<boolean,boolean | undefined>(true, {transform: (value) => value ?? true});\n\n // #region OUTPUT\n readonly outColorChange = output<string>();\n readonly outColorChangeMultipleType = output<IOutputColorChangeMultipleType>();\n\n /* VIEW CHILD */\n private readonly hueEl = viewChild<ElementRef>('hueEl');\n private readonly huePointerEl = viewChild<ElementRef>('huePointerEl');\n private readonly slEl = viewChild<ElementRef>('slEl');\n private readonly slPointerEl = viewChild<ElementRef>('slPointerEl');\n private readonly alphaEl = viewChild<ElementRef>('alphaEl');\n private readonly alphaPointerEl = viewChild<ElementRef>('alphaPointerEl');\n private readonly previewEl = viewChild<ElementRef>('previewEl');\n\n constructor() {\n effect(() => {\n const ctx = this.alphaEl()?.nativeElement.getContext('2d');\n\n if (!ctx) {\n return;\n }\n ctx.clearRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n const gradient = ctx.createLinearGradient(0, 0, this.alphaEl()?.nativeElement.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n });\n }\n\n /* FUNCTIONS */\n ngOnInit(): void {\n if (this.customOptions()) {\n this.options.update(options => ({ ...options, ...this.customOptions() }));\n }\n }\n\n ngAfterViewInit(): void {\n this.setupHueCanvas();\n this.setupSlCanvas();\n this.setupSlBarHelper();\n if (this.options().showAlpha) {\n this.setupAlphaCanvas();\n }\n this.handlerColorChange(this.options().format, this.options().color, this.noEmitEventColorWhenInitComponent());\n }\n\n private setupHueCanvas() {\n const canvas = this.hueEl()?.nativeElement;\n\n canvas.width = this.options().hueBarSize[0];\n canvas.height = this.options().hueBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, this.options().hueBarSize[0], 0);\n const step = 1 / 360;\n\n for (let ii = 0; ii <= 1; ii += step) {\n gradient.addColorStop(ii, `hsl(${360 * ii}, 100%, 50%)`);\n }\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().hueBarSize[0], this.options().hueBarSize[1]);\n\n getDragEventByElement({elementMouseDown:canvas,isStartWithMouseDownEvent:true,onDestroy:this.onDestroy}).subscribe((event: MouseEvent)=>{\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().hueBarSize[0]);\n const hue = Math.round(x * 360 / this.options().hueBarSize[0]);\n \n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.h.set(hue);\n this.handlerColorChange('h', hue);\n });\n \n }\n\n private setupSlCanvas() {\n const canvas = this.slEl()?.nativeElement;\n\n canvas.width = this.options().slBarSize[0];\n canvas.height = this.options().slBarSize[1];\n\n getDragEventByElement({elementMouseDown:canvas,isStartWithMouseDownEvent:true,onDestroy:this.onDestroy}).subscribe((event)=>{\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().slBarSize[0] - 1);\n const y = limit(event.clientY - canvas.getBoundingClientRect().top, 0, this.options().slBarSize[1] - 1);\n const c = this.slBarHelper().grabColor(x, y);\n\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n this.handlerColorChange('rgb', c);\n });\n \n }\n\n private setupSlBarHelper() {\n const canvas = this.slEl()?.nativeElement;\n const ctx = canvas.getContext('2d');\n const width = +canvas.width;\n const height = +canvas.height;\n const whiteBlackGradient = ctx.createLinearGradient(1, 1, 1, height - 1);\n\n whiteBlackGradient.addColorStop(0, 'white');\n whiteBlackGradient.addColorStop(1, 'black');\n\n this.slBarHelper.set({\n setHue: (hue: number) => {\n const colorGradient = ctx.createLinearGradient(1, 0, width - 1, 0);\n colorGradient.addColorStop(0, `hsla(${hue}, 100%, 50%, 0)`);\n colorGradient.addColorStop(1, `hsla(${hue}, 100%, 50%, 1)`);\n\n ctx.fillStyle = whiteBlackGradient;\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = colorGradient;\n ctx.globalCompositeOperation = 'multiply';\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = 'source-over';\n },\n grabColor: (x: number, y: number) => ctx.getImageData(x, y, 1, 1).data,\n findColor: (r: number, g: number, b: number) => {\n const [, s, v] = rgbToHsv(r, g, b);\n const x = s * width;\n const y = height - (v * height);\n\n return [x, y];\n }\n });\n }\n\n private setupAlphaCanvas() {\n const canvas = this.alphaEl()?.nativeElement;\n\n canvas.width = this.options().alphaBarSize[0];\n canvas.height = this.options().alphaBarSize[1];\n const ctx = canvas.getContext('2d');\n const gradient = ctx.createLinearGradient(0, 0, canvas.width - 1, 0);\n\n gradient.addColorStop(0, `hsla(${this.h()},${this.s()}%,${this.l()}%, 0)`);\n gradient.addColorStop(1, `hsla(${this.h()},${this.s()}%,${this.l()}%, 1)`);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, this.options().alphaBarSize[0], this.options().alphaBarSize[1]);\n \n getDragEventByElement({elementMouseDown:canvas,isStartWithMouseDownEvent:true,onDestroy:this.onDestroy}).subscribe((event)=>{\n const x = limit(event.clientX - canvas.getBoundingClientRect().left, 0, this.options().alphaBarSize[0]);\n const alpha = +(x / this.options().alphaBarSize[0]).toFixed(2);\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n this.handlerColorChange('alpha', alpha);\n });\n }\n\n protected handlerCopyColor(event: Event) {\n event.stopPropagation();\n window.navigator.clipboard.writeText(this.hex());\n // this.notificationService.showCompTypeTextSuccess('i18n_copy_successfully');\n }\n\n private updatePointerH(h: number) {\n const x = this.options().hueBarSize[0] * h / 360;\n\n set(this.huePointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updatePointerSl(h: number, s: number, l: number) {\n const [r, g, b] = hslToRgb(h, s, l);\n const [x, y] = this.slBarHelper().findColor(r, g, b) as Array<number>;\n\n if (x >= 0) {\n set(this.slPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n set(this.slPointerEl()?.nativeElement.style, 'top', `${y - 7}px`);\n }\n }\n\n private updatePointerA(a: number) {\n if (!this.options().showAlpha) {\n return;\n }\n const x = this.options().alphaBarSize[0] * a;\n\n set(this.alphaPointerEl()?.nativeElement.style, 'left', `${x - 7}px`);\n }\n\n private updateHex(r: number, g: number, b: number, a: number) {\n if (this.options().showAlpha) {\n this.hex.set(parseColor([r, g, b, a], 'hexcss4') as string);\n\n return;\n }\n this.hex.set(rgbToHex(r, g, b));\n }\n\n private updateRgb() {\n const rgb = hslToRgb(this.h(), this.s(), this.l());\n\n this.r.set(rgb[0]);\n this.g.set(rgb[1]);\n this.b.set(rgb[2]);\n }\n\n private updateHsl() {\n const hsl = rgbToHsl(this.r(), this.g(), this.b());\n\n this.h.set(hsl[0]);\n this.s.set(hsl[1]);\n this.l.set(hsl[2]);\n }\n\n private updateValuesAndPointer(config: IConfigUpdate) {\n if (config.rgb) {\n this.updateRgb();\n }\n if (config.hsl) {\n this.updateHsl();\n }\n if (config.hue) {\n this.slBarHelper().setHue(this.h());\n }\n if (config.hPoint) {\n this.updatePointerH(this.h());\n }\n if (config.slPoint) {\n this.updatePointerSl(this.h(), this.s(), this.l());\n }\n if (config.hex) {\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n }\n if (config.aPoint) {\n this.updatePointerA(this.a());\n }\n }\n\n private handlerColorChange(key: string, value: string | number | Array<number>, isCallInitComponent = false) {\n let config: IConfigUpdate = {};\n\n switch (key) {\n case 'h':\n config = { hPoint: true, hex: true, rgb: true, hue: true };\n break;\n case 's':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'l':\n config = { slPoint: true, hex: true, rgb: true };\n break;\n case 'r':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'g':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'b':\n config = { hPoint: true, slPoint: true, hex: true, hsl: true, hue: true };\n break;\n case 'rgb':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n config = { hex: true, hsl: true };\n break;\n case 'rgba':\n this.r.set((value as Array<number>)[0]);\n this.g.set((value as Array<number>)[1]);\n this.b.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n break;\n case 'hsl':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hsla':\n this.h.set((value as Array<number>)[0]);\n this.s.set((value as Array<number>)[1]);\n this.l.set((value as Array<number>)[2]);\n this.a.set((value as Array<number>)[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, rgb: true, hue: true };\n break;\n case 'hex': {\n const rgba = cssColorToRgba(value as string) || [this.r(), this.g(), this.b(), this.a()];\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, aPoint: true, hsl: true, hue: true };\n break;\n }\n case 'color': {\n const rgba = (parseColor(value as string | Array<number>, 'rgba') || [0, 0, 0, 1]) as Array<number>;\n\n this.r.set(rgba[0]);\n this.g.set(rgba[1]);\n this.b.set(rgba[2]);\n this.a.set(rgba[3]);\n config = { hPoint: true, slPoint: true, hex: true, aPoint: true, hsl: true, hue: true };\n\n break;\n }\n case 'alpha':\n this.a.set(value as number);\n this.updateHex(this.r(), this.g(), this.b(), this.a());\n break;\n }\n this.updateValuesAndPointer(config);\n set(this.previewEl()?.nativeElement.style, 'backgroundColor', this.a() === 1 ? `rgb(${this.r()},${this.g()},${this.b()})` : `rgba(${this.r()},${this.g()},${this.b()},${this.a()})`);\n if (!isCallInitComponent) {\n this.outColorChange.emit(this.hex());\n this.outColorChangeMultipleType.emit({\n hex:this.hex(),\n rgba:`rgba(${this.r()},${this.g()},${this.b()},${this.a()})`,\n rgb:`rgb(${this.r()},${this.g()},${this.b()})`,\n hsl:`hsl(${this.h()},${this.s()},${this.l()})`,\n hsla:`hsla(${this.h()},${this.s()},${this.l()},${this.a()})`\n });\n }\n }\n\n protected handlerFocusAndBlur(event: IFocusAndBlurEvent, key: string) {\n this.focus.set(event.name === 'blur' ? undefined : key);\n }\n\n protected handlerValueChange(event: string | number, key: string) {\n this.handlerColorChange(key, event);\n }\n\n protected handlerValueChangeAlphaInput(event: string | number) {\n this.handlerColorChange('alpha', ( event as number || 0)/100);\n this.updatePointerA(this.a());\n }\n\n protected handlerResetColor() {\n this.handlerColorChange('alpha',0);\n this.updatePointerA(this.a());\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}","<div>\n <div class=\"relative\"\n [style.width.px]=\"options().slBarSize[0]\">\n <div>\n <canvas #slEl\n class=\"rounded-tl-[4px] rounded-tr-[4px] libs-ui-color-picker-background-transparent\"></canvas>\n <div #slPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n <div class=\"relative\">\n <canvas #hueEl\n class=\"libs-ui-color-picker-background-transparent\"\n [class.rounded-bl-[4px]]=\"!options().showAlpha\"\n [class.rounded-br-[4px]]=\"!options().showAlpha\"></canvas>\n <div #huePointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n @if (options().showAlpha) {\n <div class=\"relative\">\n <canvas #alphaEl\n class=\"rounded-bl-[4px] rounded-br-[4px] libs-ui-color-picker-background-transparent\">\n </canvas>\n <div #alphaPointerEl\n class=\"libs-ui-color-picker-dot\"></div>\n </div>\n }\n <div class=\"flex items-end\">\n <div class=\"text-center mr-[16px]\">\n <div class=\"libs-ui-color-picker-background-transparent rounded-[4px]\">\n <div #previewEl\n class=\"w-[32px] h-[32px] rounded-[4px] cursor-pointer\"\n (click)=\"handlerCopyColor($event)\"></div>\n </div>\n </div>\n @if (options().showHex) {\n <div class=\"text-center mr-[12px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">HEX</span>\n <div class=\"w-[88px]\">\n <libs_ui-components-inputs-input [(value)]=\"hex\"\n [classInclude]=\"'text-center !p-0'\"\n (outChange)=\"handlerValueChange($event, 'hex')\" />\n </div>\n </div>\n }\n <div>\n @if (options().showHsl) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">H</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"h\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"360\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 's' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'h')\"\n (outChange)=\"handlerValueChange($event, 'h')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">S</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"s\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 's' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 's')\"\n (outChange)=\"handlerValueChange($event, 's')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">L</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"l\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 's' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'l')\"\n (outChange)=\"handlerValueChange($event, 'l')\" />\n </div>\n </div>\n </div>\n }\n @if (options().showRgb) {\n <div class=\"flex\">\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">R</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"r\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tr-none !rounded-br-none ' + (focus() === 'g' ? '!border-r-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'r')\"\n (outChange)=\"handlerValueChange($event, 'r')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">G</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"g\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-none ' + (focus() === 'g' ? '' : '!border-x-transparent')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'g')\"\n (outChange)=\"handlerValueChange($event, 'g')\" />\n </div>\n </div>\n <div class=\"text-center\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">B</span>\n <div class=\"w-[56px]\">\n <libs_ui-components-inputs-input [(value)]=\"b\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"255\"\n [classInclude]=\"'text-center !p-0 !rounded-tl-none !rounded-bl-none ' + (focus() === 'g' ? '!border-l-transparent' : '')\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event, 'b')\"\n (outChange)=\"handlerValueChange($event, 'b')\" />\n </div>\n </div>\n <div class=\"text-center ml-[8px]\">\n <span class=\"libs-ui-font-h7r text-[#6a7383]\">A</span>\n <div class=\"w-[78px]\">\n <libs_ui-components-inputs-valid [item]=\"{aValue:a()*100}\"\n [fieldNameBind]=\"'aValue'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [unitsRight]=\"[{label:'%'}]\"\n [emitEmptyInDataTypeNumber]=\"true\"\n (outValueChange)=\"handlerValueChangeAlphaInput($event)\"/>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -44,3 +44,6 @@ export interface IOutputColorChangeMultipleType {
44
44
  hsl: string;
45
45
  hsla: string;
46
46
  }
47
+ export interface IColor {
48
+ [key: string]: string;
49
+ }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@libs-ui/components-color-picker",
3
- "version": "0.2.305",
3
+ "version": "0.2.306-3",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=18.0.0",
6
- "@libs-ui/components-inputs-input": "0.2.305",
7
- "@libs-ui/services-notification": "0.2.305",
8
- "@libs-ui/utils": "0.2.305",
6
+ "@libs-ui/components-inputs-input": "0.2.306-3",
7
+ "@libs-ui/services-notification": "0.2.306-3",
8
+ "@libs-ui/utils": "0.2.306-3",
9
9
  "rxjs": "~7.8.0"
10
10
  },
11
11
  "sideEffects": false,
package/utils/picker.d.ts CHANGED
@@ -1,154 +1,5 @@
1
- import { IPickerOptions } from "../interfaces";
2
- export declare const ColorNames: {
3
- aliceblue: string;
4
- antiquewhite: string;
5
- aqua: string;
6
- aquamarine: string;
7
- azure: string;
8
- beige: string;
9
- bisque: string;
10
- black: string;
11
- blanchedalmond: string;
12
- blue: string;
13
- blueviolet: string;
14
- brown: string;
15
- burlywood: string;
16
- cadetblue: string;
17
- chartreuse: string;
18
- chocolate: string;
19
- coral: string;
20
- cornflowerblue: string;
21
- cornsilk: string;
22
- crimson: string;
23
- cyan: string;
24
- darkblue: string;
25
- darkcyan: string;
26
- darkgoldenrod: string;
27
- darkgray: string;
28
- darkgrey: string;
29
- darkgreen: string;
30
- darkkhaki: string;
31
- darkmagenta: string;
32
- darkolivegreen: string;
33
- darkorange: string;
34
- darkorchid: string;
35
- darkred: string;
36
- darksalmon: string;
37
- darkseagreen: string;
38
- darkslateblue: string;
39
- darkslategray: string;
40
- darkslategrey: string;
41
- darkturquoise: string;
42
- darkviolet: string;
43
- deeppink: string;
44
- deepskyblue: string;
45
- dimgray: string;
46
- dimgrey: string;
47
- dodgerblue: string;
48
- firebrick: string;
49
- floralwhite: string;
50
- forestgreen: string;
51
- fuchsia: string;
52
- gainsboro: string;
53
- ghostwhite: string;
54
- gold: string;
55
- goldenrod: string;
56
- gray: string;
57
- grey: string;
58
- green: string;
59
- greenyellow: string;
60
- honeydew: string;
61
- hotpink: string;
62
- 'indianred ': string;
63
- 'indigo ': string;
64
- ivory: string;
65
- khaki: string;
66
- lavender: string;
67
- lavenderblush: string;
68
- lawngreen: string;
69
- lemonchiffon: string;
70
- lightblue: string;
71
- lightcoral: string;
72
- lightcyan: string;
73
- lightgoldenrodyellow: string;
74
- lightgray: string;
75
- lightgrey: string;
76
- lightgreen: string;
77
- lightpink: string;
78
- lightsalmon: string;
79
- lightseagreen: string;
80
- lightskyblue: string;
81
- lightslategray: string;
82
- lightslategrey: string;
83
- lightsteelblue: string;
84
- lightyellow: string;
85
- lime: string;
86
- limegreen: string;
87
- linen: string;
88
- magenta: string;
89
- maroon: string;
90
- mediumaquamarine: string;
91
- mediumblue: string;
92
- mediumorchid: string;
93
- mediumpurple: string;
94
- mediumseagreen: string;
95
- mediumslateblue: string;
96
- mediumspringgreen: string;
97
- mediumturquoise: string;
98
- mediumvioletred: string;
99
- midnightblue: string;
100
- mintcream: string;
101
- mistyrose: string;
102
- moccasin: string;
103
- navajowhite: string;
104
- navy: string;
105
- oldlace: string;
106
- olive: string;
107
- olivedrab: string;
108
- orange: string;
109
- orangered: string;
110
- orchid: string;
111
- palegoldenrod: string;
112
- palegreen: string;
113
- paleturquoise: string;
114
- palevioletred: string;
115
- papayawhip: string;
116
- peachpuff: string;
117
- peru: string;
118
- pink: string;
119
- plum: string;
120
- powderblue: string;
121
- purple: string;
122
- rebeccapurple: string;
123
- red: string;
124
- rosybrown: string;
125
- royalblue: string;
126
- saddlebrown: string;
127
- salmon: string;
128
- sandybrown: string;
129
- seagreen: string;
130
- seashell: string;
131
- sienna: string;
132
- silver: string;
133
- skyblue: string;
134
- slateblue: string;
135
- slategray: string;
136
- slategrey: string;
137
- snow: string;
138
- springgreen: string;
139
- steelblue: string;
140
- tan: string;
141
- teal: string;
142
- thistle: string;
143
- tomato: string;
144
- turquoise: string;
145
- violet: string;
146
- wheat: string;
147
- white: string;
148
- whitesmoke: string;
149
- yellow: string;
150
- yellowgreen: string;
151
- };
1
+ import { IColor, IPickerOptions } from '../interfaces';
2
+ export declare const ColorNames: IColor;
152
3
  export declare const optionsDefault: () => IPickerOptions;
153
4
  export declare const limit: (value: number | string, min: number, max: number) => number;
154
5
  export declare const hslToRgb: (h: number, s: number, l: number) => number[];