@leafer-in/color 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/color.cjs CHANGED
@@ -1,253 +1,264 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var draw = require('@leafer-ui/draw');
3
+ var draw = require("@leafer-ui/draw");
4
4
 
5
5
  const colorNames = {
6
- transparent: 'FFF0',
7
- aliceblue: 'F0F8FF',
8
- antiquewhite: 'FAEBD7',
9
- aqua: '0FF',
10
- aquamarine: '7FFFD4',
11
- azure: 'F0FFFF',
12
- beige: 'F5F5DC',
13
- bisque: 'FFE4C4',
14
- black: '0',
15
- blanchedalmond: 'FFEBCD',
16
- blue: '00F',
17
- blueviolet: '8A2BE2',
18
- brown: 'A52A2A',
19
- burlywood: 'DEB887',
20
- cadetblue: '5F9EA0',
21
- chartreuse: '7FFF00',
22
- chocolate: 'D2691E',
23
- coral: 'FF7F50',
24
- cornflowerblue: '6495ED',
25
- cornsilk: 'FFF8DC',
26
- crimson: 'DC143C',
27
- cyan: '0FF',
28
- darkblue: '00008B',
29
- darkcyan: '008B8B',
30
- darkgoldenrod: 'B8860B',
31
- darkgray: 'A9',
32
- darkgreen: '006400',
33
- darkgrey: 'A9',
34
- darkkhaki: 'BDB76B',
35
- darkmagenta: '8B008B',
36
- darkolivegreen: '556B2F',
37
- darkorange: 'FF8C00',
38
- darkorchid: '9932CC',
39
- darkred: '8B0000',
40
- darksalmon: 'E9967A',
41
- darkseagreen: '8FBC8F',
42
- darkslateblue: '483D8B',
43
- darkslategray: '2F4F4F',
44
- darkslategrey: '2F4F4F',
45
- darkturquoise: '00CED1',
46
- darkviolet: '9400D3',
47
- deeppink: 'FF1493',
48
- deepskyblue: '00BFFF',
49
- dimgray: '69',
50
- dimgrey: '69',
51
- dodgerblue: '1E90FF',
52
- firebrick: 'B22222',
53
- floralwhite: 'FFFAF0',
54
- forestgreen: '228B22',
55
- fuchsia: 'F0F',
56
- gainsboro: 'DC',
57
- ghostwhite: 'F8F8FF',
58
- gold: 'FFD700',
59
- goldenrod: 'DAA520',
60
- gray: '80',
61
- green: '008000',
62
- greenyellow: 'ADFF2F',
63
- grey: '80',
64
- honeydew: 'F0FFF0',
65
- hotpink: 'FF69B4',
66
- indianred: 'CD5C5C',
67
- indigo: '4B0082',
68
- ivory: 'FFFFF0',
69
- khaki: 'F0E68C',
70
- lavender: 'E6E6FA',
71
- lavenderblush: 'FFF0F5',
72
- lawngreen: '7CFC00',
73
- lemonchiffon: 'FFFACD',
74
- lightblue: 'ADD8E6',
75
- lightcoral: 'F08080',
76
- lightcyan: 'E0FFFF',
77
- lightgoldenrodyellow: 'FAFAD2',
78
- lightgray: 'D3',
79
- lightgreen: '90EE90',
80
- lightgrey: 'D3',
81
- lightpink: 'FFB6C1',
82
- lightsalmon: 'FFA07A',
83
- lightseagreen: '20B2AA',
84
- lightskyblue: '87CEFA',
85
- lightslategray: '789',
86
- lightslategrey: '789',
87
- lightsteelblue: 'B0C4DE',
88
- lightyellow: 'FFFFE0',
89
- lime: '00FF00',
90
- limegreen: '32CD32',
91
- linen: 'FAF0E6',
92
- magenta: 'FF00FF',
93
- maroon: '800000',
94
- mediumaquamarine: '66CDAA',
95
- mediumblue: '0000CD',
96
- mediumorchid: 'BA55D3',
97
- mediumpurple: '9370DB',
98
- mediumseagreen: '3CB371',
99
- mediumslateblue: '7B68EE',
100
- mediumspringgreen: '00FA9A',
101
- mediumturquoise: '48D1CC',
102
- mediumvioletred: 'C71585',
103
- midnightblue: '191970',
104
- mintcream: 'F5FFFA',
105
- mistyrose: 'FFE4E1',
106
- moccasin: 'FFE4B5',
107
- navajowhite: 'FFDEAD',
108
- navy: '000080',
109
- oldlace: 'FDF5E6',
110
- olive: '808000',
111
- olivedrab: '6B8E23',
112
- orange: 'FFA500',
113
- orangered: 'FF4500',
114
- orchid: 'DA70D6',
115
- palegoldenrod: 'EEE8AA',
116
- palegreen: '98FB98',
117
- paleturquoise: 'AFEEEE',
118
- palevioletred: 'D87093',
119
- papayawhip: 'FFEFD5',
120
- peachpuff: 'FFDAB9',
121
- peru: 'CD853F',
122
- pink: 'FFC0CB',
123
- plum: 'DDA0DD',
124
- powderblue: 'B0E0E6',
125
- purple: '800080',
126
- rebeccapurple: '639',
127
- red: 'F00',
128
- rosybrown: 'BC8F8F',
129
- royalblue: '4169E1',
130
- saddlebrown: '8B4513',
131
- salmon: 'FA8072',
132
- sandybrown: 'F4A460',
133
- seagreen: '2E8B57',
134
- seashell: 'FFF5EE',
135
- sienna: 'A0522D',
136
- silver: 'C0',
137
- skyblue: '87CEEB',
138
- slateblue: '6A5ACD',
139
- slategray: '708090',
140
- slategrey: '708090',
141
- snow: 'FFFAFA',
142
- springgreen: '00FF7F',
143
- steelblue: '4682B4',
144
- tan: 'D2B48C',
145
- teal: '008080',
146
- thistle: 'D8BFD8',
147
- tomato: 'FF6347',
148
- turquoise: '40E0D0',
149
- violet: 'EE82EE',
150
- wheat: 'F5DEB3',
151
- white: 'F',
152
- whitesmoke: 'F5',
153
- yellow: 'FF0',
154
- yellowgreen: '9ACD32'
6
+ transparent: "FFF0",
7
+ aliceblue: "F0F8FF",
8
+ antiquewhite: "FAEBD7",
9
+ aqua: "0FF",
10
+ aquamarine: "7FFFD4",
11
+ azure: "F0FFFF",
12
+ beige: "F5F5DC",
13
+ bisque: "FFE4C4",
14
+ black: "0",
15
+ blanchedalmond: "FFEBCD",
16
+ blue: "00F",
17
+ blueviolet: "8A2BE2",
18
+ brown: "A52A2A",
19
+ burlywood: "DEB887",
20
+ cadetblue: "5F9EA0",
21
+ chartreuse: "7FFF00",
22
+ chocolate: "D2691E",
23
+ coral: "FF7F50",
24
+ cornflowerblue: "6495ED",
25
+ cornsilk: "FFF8DC",
26
+ crimson: "DC143C",
27
+ cyan: "0FF",
28
+ darkblue: "00008B",
29
+ darkcyan: "008B8B",
30
+ darkgoldenrod: "B8860B",
31
+ darkgray: "A9",
32
+ darkgreen: "006400",
33
+ darkgrey: "A9",
34
+ darkkhaki: "BDB76B",
35
+ darkmagenta: "8B008B",
36
+ darkolivegreen: "556B2F",
37
+ darkorange: "FF8C00",
38
+ darkorchid: "9932CC",
39
+ darkred: "8B0000",
40
+ darksalmon: "E9967A",
41
+ darkseagreen: "8FBC8F",
42
+ darkslateblue: "483D8B",
43
+ darkslategray: "2F4F4F",
44
+ darkslategrey: "2F4F4F",
45
+ darkturquoise: "00CED1",
46
+ darkviolet: "9400D3",
47
+ deeppink: "FF1493",
48
+ deepskyblue: "00BFFF",
49
+ dimgray: "69",
50
+ dimgrey: "69",
51
+ dodgerblue: "1E90FF",
52
+ firebrick: "B22222",
53
+ floralwhite: "FFFAF0",
54
+ forestgreen: "228B22",
55
+ fuchsia: "F0F",
56
+ gainsboro: "DC",
57
+ ghostwhite: "F8F8FF",
58
+ gold: "FFD700",
59
+ goldenrod: "DAA520",
60
+ gray: "80",
61
+ green: "008000",
62
+ greenyellow: "ADFF2F",
63
+ grey: "80",
64
+ honeydew: "F0FFF0",
65
+ hotpink: "FF69B4",
66
+ indianred: "CD5C5C",
67
+ indigo: "4B0082",
68
+ ivory: "FFFFF0",
69
+ khaki: "F0E68C",
70
+ lavender: "E6E6FA",
71
+ lavenderblush: "FFF0F5",
72
+ lawngreen: "7CFC00",
73
+ lemonchiffon: "FFFACD",
74
+ lightblue: "ADD8E6",
75
+ lightcoral: "F08080",
76
+ lightcyan: "E0FFFF",
77
+ lightgoldenrodyellow: "FAFAD2",
78
+ lightgray: "D3",
79
+ lightgreen: "90EE90",
80
+ lightgrey: "D3",
81
+ lightpink: "FFB6C1",
82
+ lightsalmon: "FFA07A",
83
+ lightseagreen: "20B2AA",
84
+ lightskyblue: "87CEFA",
85
+ lightslategray: "789",
86
+ lightslategrey: "789",
87
+ lightsteelblue: "B0C4DE",
88
+ lightyellow: "FFFFE0",
89
+ lime: "00FF00",
90
+ limegreen: "32CD32",
91
+ linen: "FAF0E6",
92
+ magenta: "FF00FF",
93
+ maroon: "800000",
94
+ mediumaquamarine: "66CDAA",
95
+ mediumblue: "0000CD",
96
+ mediumorchid: "BA55D3",
97
+ mediumpurple: "9370DB",
98
+ mediumseagreen: "3CB371",
99
+ mediumslateblue: "7B68EE",
100
+ mediumspringgreen: "00FA9A",
101
+ mediumturquoise: "48D1CC",
102
+ mediumvioletred: "C71585",
103
+ midnightblue: "191970",
104
+ mintcream: "F5FFFA",
105
+ mistyrose: "FFE4E1",
106
+ moccasin: "FFE4B5",
107
+ navajowhite: "FFDEAD",
108
+ navy: "000080",
109
+ oldlace: "FDF5E6",
110
+ olive: "808000",
111
+ olivedrab: "6B8E23",
112
+ orange: "FFA500",
113
+ orangered: "FF4500",
114
+ orchid: "DA70D6",
115
+ palegoldenrod: "EEE8AA",
116
+ palegreen: "98FB98",
117
+ paleturquoise: "AFEEEE",
118
+ palevioletred: "D87093",
119
+ papayawhip: "FFEFD5",
120
+ peachpuff: "FFDAB9",
121
+ peru: "CD853F",
122
+ pink: "FFC0CB",
123
+ plum: "DDA0DD",
124
+ powderblue: "B0E0E6",
125
+ purple: "800080",
126
+ rebeccapurple: "639",
127
+ red: "F00",
128
+ rosybrown: "BC8F8F",
129
+ royalblue: "4169E1",
130
+ saddlebrown: "8B4513",
131
+ salmon: "FA8072",
132
+ sandybrown: "F4A460",
133
+ seagreen: "2E8B57",
134
+ seashell: "FFF5EE",
135
+ sienna: "A0522D",
136
+ silver: "C0",
137
+ skyblue: "87CEEB",
138
+ slateblue: "6A5ACD",
139
+ slategray: "708090",
140
+ slategrey: "708090",
141
+ snow: "FFFAFA",
142
+ springgreen: "00FF7F",
143
+ steelblue: "4682B4",
144
+ tan: "D2B48C",
145
+ teal: "008080",
146
+ thistle: "D8BFD8",
147
+ tomato: "FF6347",
148
+ turquoise: "40E0D0",
149
+ violet: "EE82EE",
150
+ wheat: "F5DEB3",
151
+ white: "F",
152
+ whitesmoke: "F5",
153
+ yellow: "FF0",
154
+ yellowgreen: "9ACD32"
155
155
  };
156
156
 
157
157
  const rgbMatch = /^rgb\((\d+),\s*(\d+),\s*(\d+)/i;
158
+
158
159
  const rgbaMatch = /^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d*\.?\d+)/i;
160
+
159
161
  const hslMatch = /^hsl\((\d+),\s*(\d+)%\s*,\s*(\d+)%/i;
162
+
160
163
  const hslaMatch = /^hsla\((\d+),\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d*\.?\d+)/i;
161
- const int = parseInt, float = parseFloat, { round } = Math;
164
+
165
+ const int = parseInt, float = parseFloat, {round: round} = Math;
166
+
162
167
  let cache = {}, totalCache = 0;
168
+
163
169
  function colorToRGBA(color, opacity) {
164
170
  let RGBA;
165
- let useOpacity = opacity !== undefined && opacity !== 1;
166
- if (typeof color === 'string') {
171
+ let useOpacity = !draw.isUndefined(opacity) && opacity < 1;
172
+ if (draw.isString(color)) {
167
173
  const cacheColor = cache[color];
168
174
  if (cacheColor) {
169
175
  RGBA = Object.assign({}, cacheColor);
170
- }
171
- else {
176
+ } else {
172
177
  switch (color[0]) {
173
- case '#':
174
- RGBA = hexToRGBA(color);
175
- break;
176
- case 'R':
177
- case 'r':
178
- if (color[4] === '(' && rgbaMatch.test(color))
179
- RGBA = rgbaToRGBA(color);
180
- else if (color[3] === '(' && rgbMatch.test(color))
181
- RGBA = rgbToRGBA(color);
182
- break;
183
- case 'H':
184
- case 'h':
185
- if (color[4] === '(' && hslaMatch.test(color))
186
- RGBA = hslaToRGBA(color);
187
- else if (color[3] === '(' && hslMatch.test(color))
188
- RGBA = hslToRGBA(color);
189
- break;
178
+ case "#":
179
+ RGBA = hexToRGBA(color);
180
+ break;
181
+
182
+ case "R":
183
+ case "r":
184
+ if (color[4] === "(" && rgbaMatch.test(color)) RGBA = rgbaToRGBA(color); else if (color[3] === "(" && rgbMatch.test(color)) RGBA = rgbToRGBA(color);
185
+ break;
186
+
187
+ case "H":
188
+ case "h":
189
+ if (color[4] === "(" && hslaMatch.test(color)) RGBA = hslaToRGBA(color); else if (color[3] === "(" && hslMatch.test(color)) RGBA = hslToRGBA(color);
190
+ break;
190
191
  }
191
192
  if (!RGBA) {
192
193
  const value = colorNames[color.toLowerCase()];
193
- if (value)
194
- RGBA = hexToRGBA('#' + value);
194
+ if (value) RGBA = hexToRGBA("#" + value);
195
195
  }
196
196
  if (RGBA) {
197
197
  totalCache++;
198
- if (totalCache > 10000)
199
- cache = {}, totalCache = 0;
198
+ if (totalCache > 1e4) cache = {}, totalCache = 0;
200
199
  cache[color] = Object.assign({}, RGBA);
201
200
  }
202
201
  }
203
- }
204
- else if (typeof color === 'object') {
205
- if (color.a === undefined)
206
- color.a = 1;
207
- if (useOpacity)
208
- color = Object.assign({}, color);
202
+ } else if (draw.isObject(color)) {
203
+ if (draw.isUndefined(color.a)) color.a = 1;
204
+ if (useOpacity) color = Object.assign({}, color);
209
205
  RGBA = color;
210
206
  }
211
- if (!RGBA)
212
- RGBA = { r: 255, g: 255, b: 255, a: 1 };
213
- if (useOpacity)
214
- RGBA.a *= opacity;
207
+ if (!RGBA) RGBA = {
208
+ r: 255,
209
+ g: 255,
210
+ b: 255,
211
+ a: 1
212
+ };
213
+ if (useOpacity) RGBA.a *= opacity;
215
214
  return RGBA;
216
215
  }
216
+
217
217
  function hexToRGBA(color) {
218
218
  let r, g, b, a = 1;
219
219
  switch (color.length) {
220
- case 9:
221
- r = int(color.slice(1, 3), 16);
222
- g = int(color.slice(3, 5), 16);
223
- b = int(color.slice(5, 7), 16);
224
- a = int(color.slice(7, 9), 16) / 255;
225
- break;
226
- case 7:
227
- r = int(color.slice(1, 3), 16);
228
- g = int(color.slice(3, 5), 16);
229
- b = int(color.slice(5, 7), 16);
230
- break;
231
- case 5:
232
- r = int(color[1] + color[1], 16);
233
- g = int(color[2] + color[2], 16);
234
- b = int(color[3] + color[3], 16);
235
- a = int(color[4] + color[4], 16) / 255;
236
- break;
237
- case 4:
238
- r = int(color[1] + color[1], 16);
239
- g = int(color[2] + color[2], 16);
240
- b = int(color[3] + color[3], 16);
241
- break;
242
- case 3:
243
- r = g = b = int(color[1] + color[2], 16);
244
- break;
245
- case 2:
246
- r = g = b = int(color[1] + color[1], 16);
247
- break;
220
+ case 9:
221
+ r = int(color.slice(1, 3), 16);
222
+ g = int(color.slice(3, 5), 16);
223
+ b = int(color.slice(5, 7), 16);
224
+ a = int(color.slice(7, 9), 16) / 255;
225
+ break;
226
+
227
+ case 7:
228
+ r = int(color.slice(1, 3), 16);
229
+ g = int(color.slice(3, 5), 16);
230
+ b = int(color.slice(5, 7), 16);
231
+ break;
232
+
233
+ case 5:
234
+ r = int(color[1] + color[1], 16);
235
+ g = int(color[2] + color[2], 16);
236
+ b = int(color[3] + color[3], 16);
237
+ a = int(color[4] + color[4], 16) / 255;
238
+ break;
239
+
240
+ case 4:
241
+ r = int(color[1] + color[1], 16);
242
+ g = int(color[2] + color[2], 16);
243
+ b = int(color[3] + color[3], 16);
244
+ break;
245
+
246
+ case 3:
247
+ r = g = b = int(color[1] + color[2], 16);
248
+ break;
249
+
250
+ case 2:
251
+ r = g = b = int(color[1] + color[1], 16);
252
+ break;
248
253
  }
249
- return { r, g, b, a };
254
+ return {
255
+ r: r,
256
+ g: g,
257
+ b: b,
258
+ a: a
259
+ };
250
260
  }
261
+
251
262
  function rgbToRGBA(color) {
252
263
  const match = rgbMatch.exec(color);
253
264
  return {
@@ -257,6 +268,7 @@ function rgbToRGBA(color) {
257
268
  a: 1
258
269
  };
259
270
  }
271
+
260
272
  function rgbaToRGBA(color) {
261
273
  const match = rgbaMatch.exec(color);
262
274
  return {
@@ -266,43 +278,47 @@ function rgbaToRGBA(color) {
266
278
  a: float(match[4])
267
279
  };
268
280
  }
281
+
269
282
  function hslToRGBA(color) {
270
283
  const match = hslMatch.exec(color);
271
284
  return hsla(float(match[1]), float(match[2]), float(match[3]), 1);
272
285
  }
286
+
273
287
  function hslaToRGBA(color) {
274
288
  const match = hslaMatch.exec(color);
275
289
  return hsla(float(match[1]), float(match[2]), float(match[3]), float(match[4]));
276
290
  }
277
- const n1 = 1 / 6, n2 = 0.5, n3 = 2 / 3, n4 = 1 / 3;
291
+
292
+ const n1 = 1 / 6, n2 = .5, n3 = 2 / 3, n4 = 1 / 3;
293
+
278
294
  function hue(p, q, t) {
279
- if (t < 0)
280
- t++;
281
- else if (t > 1)
282
- t--;
283
- if (t < n1)
284
- return p + (q - p) * 6 * t;
285
- if (t < n2)
286
- return q;
287
- if (t < n3)
288
- return p + (q - p) * (n3 - t) * 6;
295
+ if (t < 0) t++; else if (t > 1) t--;
296
+ if (t < n1) return p + (q - p) * 6 * t;
297
+ if (t < n2) return q;
298
+ if (t < n3) return p + (q - p) * (n3 - t) * 6;
289
299
  return p;
290
300
  }
301
+
291
302
  function hsla(h, s, l, a = 1) {
292
303
  let r, g, b;
293
304
  h /= 360, s /= 100, l /= 100;
294
305
  if (s === 0) {
295
306
  r = g = b = l;
296
- }
297
- else {
298
- let q = l < 0.5 ? l * (1 + s) : l + s - l * s;
307
+ } else {
308
+ let q = l < .5 ? l * (1 + s) : l + s - l * s;
299
309
  let p = 2 * l - q;
300
310
  r = hue(p, q, h + n4);
301
311
  g = hue(p, q, h);
302
312
  b = hue(p, q, h - n4);
303
313
  }
304
- return { r: round(r * 255), g: round(g * 255), b: round(b * 255), a };
314
+ return {
315
+ r: round(r * 255),
316
+ g: round(g * 255),
317
+ b: round(b * 255),
318
+ a: a
319
+ };
305
320
  }
306
321
 
307
- draw.Plugin.add('color');
322
+ draw.Plugin.add("color");
323
+
308
324
  draw.ColorConvert.object = colorToRGBA;