color-map 1.1.2 → 2.0.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.
Files changed (44) hide show
  1. package/README.md +3 -12
  2. package/cjs/createColors.d.ts +2 -0
  3. package/cjs/createColors.js +41 -0
  4. package/cjs/createColors.js.map +1 -0
  5. package/cjs/createColorsFromMap.d.ts +5 -0
  6. package/cjs/createColorsFromMap.js +26 -0
  7. package/cjs/createColorsFromMap.js.map +1 -0
  8. package/cjs/index.d.ts +5 -0
  9. package/cjs/index.js +22 -0
  10. package/cjs/index.js.map +1 -0
  11. package/cjs/interfaces.d.ts +14 -0
  12. package/cjs/interfaces.js +3 -0
  13. package/cjs/interfaces.js.map +1 -0
  14. package/cjs/rgbHex.d.ts +6 -0
  15. package/cjs/rgbHex.js +20 -0
  16. package/cjs/rgbHex.js.map +1 -0
  17. package/cjs/rgbaString.d.ts +2 -0
  18. package/cjs/rgbaString.js +8 -0
  19. package/cjs/rgbaString.js.map +1 -0
  20. package/dist/color-map.es5.js +1 -1
  21. package/dist/color-map.es5.js.map +1 -0
  22. package/esm/createColors.d.ts +2 -0
  23. package/esm/createColors.js +27 -0
  24. package/esm/createColors.js.map +1 -0
  25. package/esm/createColorsFromMap.d.ts +5 -0
  26. package/esm/createColorsFromMap.js +22 -0
  27. package/esm/createColorsFromMap.js.map +1 -0
  28. package/esm/index.d.ts +5 -0
  29. package/esm/index.js +6 -0
  30. package/esm/index.js.map +1 -0
  31. package/esm/interfaces.d.ts +14 -0
  32. package/esm/interfaces.js +2 -0
  33. package/esm/interfaces.js.map +1 -0
  34. package/esm/rgbHex.d.ts +6 -0
  35. package/esm/rgbHex.js +16 -0
  36. package/esm/rgbHex.js.map +1 -0
  37. package/esm/rgbaString.d.ts +2 -0
  38. package/esm/rgbaString.js +4 -0
  39. package/esm/rgbaString.js.map +1 -0
  40. package/package.json +64 -43
  41. package/ts/createColors.spec.ts +0 -176
  42. package/ts/createColorsFromMap.spec.ts +0 -11
  43. package/ts/rgbHex.spec.ts +0 -17
  44. package/ts/rgbaString.spec.ts +0 -9
package/README.md CHANGED
@@ -3,12 +3,9 @@
3
3
  [![NPM version][npm-image]][npm-url]
4
4
  [![NPM downloads][downloads-image]][downloads-url]
5
5
 
6
- [![Circle CI][circleci-image]][circleci-url]
7
- [![Travis CI][travis-image]][travis-url]
6
+ [![Github NodeJS][github-nodejs]][github-action-url]
8
7
  [![Codecov][codecov-image]][codecov-url]
9
- [![Coveralls Status][coveralls-image]][coveralls-url]
10
8
 
11
- [![Greenkeeper][greenkeeper-image]][greenkeeper-url]
12
9
  [![Semantic Release][semantic-release-image]][semantic-release-url]
13
10
 
14
11
  [![Visual Studio Code][vscode-image]][vscode-url]
@@ -75,22 +72,16 @@ git push
75
72
  # create PR
76
73
  ```
77
74
 
78
- [circleci-image]: https://circleci.com/gh/unional/color-map/tree/master.svg?style=shield
79
- [circleci-url]: https://circleci.com/gh/unional/color-map/tree/master
80
75
  [codecov-image]: https://codecov.io/gh/unional/color-map/branch/master/graph/badge.svg
81
76
  [codecov-url]: https://codecov.io/gh/unional/color-map
82
- [coveralls-image]: https://coveralls.io/repos/github/unional/color-map/badge.svg?branch=master
83
- [coveralls-url]: https://coveralls.io/github/unional/color-map?branch=master
84
77
  [downloads-image]: https://img.shields.io/npm/dm/color-map.svg?style=flat
85
78
  [downloads-url]: https://npmjs.org/package/color-map
86
- [greenkeeper-image]: https://badges.greenkeeper.io/unional/color-map.svg
87
- [greenkeeper-url]: https://greenkeeper.io/
79
+ [github-nodejs]: https://github.com/unional/color-map/workflows/nodejs/badge.svg
80
+ [github-action-url]: https://github.com/unional/color-map/actions
88
81
  [npm-image]: https://img.shields.io/npm/v/color-map.svg?style=flat
89
82
  [npm-url]: https://npmjs.org/package/color-map
90
83
  [semantic-release-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
91
84
  [semantic-release-url]: https://github.com/semantic-release/semantic-release
92
- [travis-image]: https://img.shields.io/travis/unional/color-map/master.svg?style=flat
93
- [travis-url]: https://travis-ci.org/unional/color-map?branch=master
94
85
  [vscode-image]: https://img.shields.io/badge/vscode-ready-green.svg
95
86
  [vscode-url]: https://code.visualstudio.com/
96
87
  [wallaby-image]: https://img.shields.io/badge/wallaby.js-configured-green.svg
@@ -0,0 +1,2 @@
1
+ import { RGB, RGBA, Alpha } from './interfaces';
2
+ export declare function createColors(from: RGB | RGBA, to: RGB | RGBA, shades: number, alpha?: Alpha): RGBA[];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createColors = void 0;
13
+ function createColors(from, to, shades, alpha) {
14
+ if (alpha === void 0) { alpha = [
15
+ from.length === 4 ? from[3] : to.length === 4 ? to[3] : 1,
16
+ to.length === 4 ? to[3] : from.length === 4 ? from[3] : 1
17
+ ]; }
18
+ var start = __spreadArray([], from, true);
19
+ var diff = [
20
+ to[0] - from[0],
21
+ to[1] - from[1],
22
+ to[2] - from[2],
23
+ alpha[1] - alpha[0]
24
+ ];
25
+ if (start.length === 3)
26
+ start.push(alpha[0]);
27
+ var inc = 1 / Math.max(shades - 1, 1);
28
+ var rgba = [];
29
+ for (var i = 0; i < shades; i++) {
30
+ var color = [
31
+ Math.round(start[0] + i * diff[0] * inc),
32
+ Math.round(start[1] + i * diff[1] * inc),
33
+ Math.round(start[2] + i * diff[2] * inc),
34
+ start[3] + i * diff[3] * inc
35
+ ];
36
+ rgba.push(color);
37
+ }
38
+ return rgba;
39
+ }
40
+ exports.createColors = createColors;
41
+ //# sourceMappingURL=createColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createColors.js","sourceRoot":"","sources":["../ts/createColors.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAgB,YAAY,CAC1B,IAAgB,EAChB,EAAc,EACd,MAAc,EACd,KAGC;IAHD,sBAAA,EAAA;QACE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D;IACD,IAAM,KAAK,qBAAO,IAAI,OAAC,CAAA;IACvB,IAAM,IAAI,GAAG;QACX,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACf,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACf,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;KACpB,CAAA;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtB,IAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAEvC,IAAM,IAAI,GAAU,EAAE,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAM,KAAK,GAAG;YACZ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACxC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;SAC7B,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjB;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAhCD,oCAgCC"}
@@ -0,0 +1,5 @@
1
+ import { ColorMap, Alpha, RGBA } from './interfaces';
2
+ /**
3
+ * Create colors with specified color map.
4
+ */
5
+ export declare function createColorsFromMap(colormap: ColorMap, shades: number, alpha?: Alpha): RGBA[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createColorsFromMap = void 0;
4
+ var createColors_1 = require("./createColors");
5
+ /**
6
+ * Create colors with specified color map.
7
+ */
8
+ function createColorsFromMap(colormap, shades, alpha) {
9
+ if (shades < colormap.length) {
10
+ throw new Error("Requires at least ".concat(colormap.length, " shades."));
11
+ }
12
+ var result = [];
13
+ var steps = [];
14
+ for (var i = 0; i < colormap.length; i++) {
15
+ steps.push(Math.round(colormap[i].index * shades));
16
+ }
17
+ for (var i = 0; i < colormap.length - 1; i++) {
18
+ var n = steps[i + 1] - steps[i];
19
+ var from = colormap[i].rgb;
20
+ var to = colormap[i + 1].rgb;
21
+ result.push.apply(result, (0, createColors_1.createColors)(from, to, n, alpha));
22
+ }
23
+ return result;
24
+ }
25
+ exports.createColorsFromMap = createColorsFromMap;
26
+ //# sourceMappingURL=createColorsFromMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createColorsFromMap.js","sourceRoot":"","sources":["../ts/createColorsFromMap.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAG7C;;GAEG;AACH,SAAgB,mBAAmB,CAAC,QAAkB,EAAE,MAAc,EAAE,KAAa;IACnF,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,4BAAqB,QAAQ,CAAC,MAAM,aAAU,CAAC,CAAA;KAChE;IAED,IAAM,MAAM,GAAW,EAAE,CAAA;IACzB,IAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAA;KACnD;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5C,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACjC,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7B,IAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,IAAA,2BAAY,EAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAC;KACjD;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAnBD,kDAmBC"}
package/cjs/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './createColors';
2
+ export * from './createColorsFromMap';
3
+ export * from './interfaces';
4
+ export * from './rgbHex';
5
+ export * from './rgbaString';
package/cjs/index.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./createColors"), exports);
18
+ __exportStar(require("./createColorsFromMap"), exports);
19
+ __exportStar(require("./interfaces"), exports);
20
+ __exportStar(require("./rgbHex"), exports);
21
+ __exportStar(require("./rgbaString"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,wDAAqC;AACrC,+CAA4B;AAC5B,2CAAwB;AACxB,+CAA4B"}
@@ -0,0 +1,14 @@
1
+ export declare type RGB = [number, number, number];
2
+ export declare type RGBA = [number, number, number, number];
3
+ export declare type Alpha = [number, number];
4
+ export declare type ColorMap = {
5
+ /**
6
+ * Defines how fast or slow the `rgb` values will change from one segment to the next.
7
+ * i.e. the steepness of the gradient between two segments.
8
+ */
9
+ index: number;
10
+ /**
11
+ * RGB or RGBA. if RGBA, this alpha will be used instead of the alpha specified in the call.
12
+ */
13
+ rgb: RGB | RGBA;
14
+ }[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../ts/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { RGB, RGBA } from './interfaces';
2
+ /**
3
+ * Convert `RGB` to `#rgb`
4
+ * JavaScript note: no check for array length, use it properly.
5
+ */
6
+ export declare function rgbHex(rgb: RGB | RGBA): string;
package/cjs/rgbHex.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rgbHex = void 0;
4
+ /**
5
+ * Convert `RGB` to `#rgb`
6
+ * JavaScript note: no check for array length, use it properly.
7
+ */
8
+ function rgbHex(rgb) {
9
+ var hex = '#';
10
+ for (var i = 0; i < 3; i++) {
11
+ hex += d2h(rgb[i]);
12
+ }
13
+ return hex;
14
+ }
15
+ exports.rgbHex = rgbHex;
16
+ function d2h(d) {
17
+ var s = (+d).toString(16);
18
+ return s.length < 2 ? '0' + s : s;
19
+ }
20
+ //# sourceMappingURL=rgbHex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbHex.js","sourceRoot":"","sources":["../ts/rgbHex.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,SAAgB,MAAM,CAAC,GAAe;IACpC,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KACnB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAND,wBAMC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,IAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC3B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RGBA } from './interfaces';
2
+ export declare function rgbaString(rgba: RGBA): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rgbaString = void 0;
4
+ function rgbaString(rgba) {
5
+ return 'rgba(' + rgba.join(',') + ')';
6
+ }
7
+ exports.rgbaString = rgbaString;
8
+ //# sourceMappingURL=rgbaString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbaString.js","sourceRoot":"","sources":["../ts/rgbaString.ts"],"names":[],"mappings":";;;AAEA,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACxC,CAAC;AAFD,gCAEC"}
@@ -1,2 +1,2 @@
1
- var ColorMap;(()=>{"use strict";var e={938:function(e,r){var t=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var o,n=0,a=r.length;n<a;n++)!o&&n in r||(o||(o=Array.prototype.slice.call(r,0,n)),o[n]=r[n]);return e.concat(o||Array.prototype.slice.call(r))};Object.defineProperty(r,"__esModule",{value:!0}),r.createColors=void 0,r.createColors=function(e,r,o,n){void 0===n&&(n=[4===e.length?e[3]:4===r.length?r[3]:1,4===r.length?r[3]:4===e.length?e[3]:1]);var a=t([],e,!0),i=[r[0]-e[0],r[1]-e[1],r[2]-e[2],n[1]-n[0]];3===a.length&&a.push(n[0]);for(var l=1/Math.max(o-1,1),u=[],c=0;c<o;c++){var s=[Math.round(a[0]+c*i[0]*l),Math.round(a[1]+c*i[1]*l),Math.round(a[2]+c*i[2]*l),a[3]+c*i[3]*l];u.push(s)}return u}},879:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.createColorsFromMap=void 0;var o=t(938);r.createColorsFromMap=function(e,r,t){if(r<e.length)throw new Error("Requires at least ".concat(e.length," shades."));for(var n=[],a=[],i=0;i<e.length;i++)a.push(Math.round(e[i].index*r));for(i=0;i<e.length-1;i++){var l=a[i+1]-a[i],u=e[i].rgb,c=e[i+1].rgb;n.push.apply(n,(0,o.createColors)(u,c,l,t))}return n}},403:function(e,r,t){var o=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t),Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),n=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||o(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),n(t(938),r),n(t(879),r),n(t(676),r),n(t(140),r),n(t(0),r)},676:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})},140:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.rgbHex=void 0,r.rgbHex=function(e){for(var r,t="#",o=0;o<3;o++)t+=(void 0,(r=(+e[o]).toString(16)).length<2?"0"+r:r);return t}},0:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.rgbaString=void 0,r.rgbaString=function(e){return"rgba("+e.join(",")+")"}}},r={},t=function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o].call(a.exports,a,a.exports,t),a.exports}(403);ColorMap=t})();
1
+ var ColorMap;(()=>{"use strict";var e={938:function(e,r){var t=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var o,n=0,a=r.length;n<a;n++)!o&&n in r||(o||(o=Array.prototype.slice.call(r,0,n)),o[n]=r[n]);return e.concat(o||Array.prototype.slice.call(r))};Object.defineProperty(r,"__esModule",{value:!0}),r.createColors=void 0,r.createColors=function(e,r,o,n){void 0===n&&(n=[4===e.length?e[3]:4===r.length?r[3]:1,4===r.length?r[3]:4===e.length?e[3]:1]);var a=t([],e,!0),i=[r[0]-e[0],r[1]-e[1],r[2]-e[2],n[1]-n[0]];3===a.length&&a.push(n[0]);for(var l=1/Math.max(o-1,1),u=[],c=0;c<o;c++){var s=[Math.round(a[0]+c*i[0]*l),Math.round(a[1]+c*i[1]*l),Math.round(a[2]+c*i[2]*l),a[3]+c*i[3]*l];u.push(s)}return u}},879:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.createColorsFromMap=void 0;var o=t(938);r.createColorsFromMap=function(e,r,t){if(r<e.length)throw new Error("Requires at least ".concat(e.length," shades."));for(var n=[],a=[],i=0;i<e.length;i++)a.push(Math.round(e[i].index*r));for(i=0;i<e.length-1;i++){var l=a[i+1]-a[i],u=e[i].rgb,c=e[i+1].rgb;n.push.apply(n,(0,o.createColors)(u,c,l,t))}return n}},403:function(e,r,t){var o=this&&this.__createBinding||(Object.create?function(e,r,t,o){void 0===o&&(o=t);var n=Object.getOwnPropertyDescriptor(r,t);n&&!("get"in n?!r.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,o,n)}:function(e,r,t,o){void 0===o&&(o=t),e[o]=r[t]}),n=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||o(r,e,t)};Object.defineProperty(r,"__esModule",{value:!0}),n(t(938),r),n(t(879),r),n(t(676),r),n(t(140),r),n(t(0),r)},676:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0})},140:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.rgbHex=void 0,r.rgbHex=function(e){for(var r,t="#",o=0;o<3;o++)t+=(void 0,(r=(+e[o]).toString(16)).length<2?"0"+r:r);return t}},0:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.rgbaString=void 0,r.rgbaString=function(e){return"rgba("+e.join(",")+")"}}},r={},t=function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o].call(a.exports,a,a.exports,t),a.exports}(403);ColorMap=t})();
2
2
  //# sourceMappingURL=color-map.es5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-map.es5.js","mappings":"gWAEA,wBACEA,EACAC,EACAC,EACAC,QAAA,IAAAA,IAAAA,EAAA,CACkB,IAAhBH,EAAKI,OAAeJ,EAAK,GAAmB,IAAdC,EAAGG,OAAeH,EAAG,GAAK,EAC1C,IAAdA,EAAGG,OAAeH,EAAG,GAAqB,IAAhBD,EAAKI,OAAeJ,EAAK,GAAK,IAE1D,IAAMK,EAAQ,EAAH,GAAOL,GAAI,GAChBM,EAAO,CACXL,EAAG,GAAKD,EAAK,GACbC,EAAG,GAAKD,EAAK,GACbC,EAAG,GAAKD,EAAK,GACbG,EAAM,GAAKA,EAAM,IAGE,IAAjBE,EAAMD,QACRC,EAAME,KAAKJ,EAAM,IAKnB,IAHA,IAAMK,EAAM,EAAIC,KAAKC,IAAIR,EAAS,EAAG,GAE/BS,EAAc,GACXC,EAAI,EAAGA,EAAIV,EAAQU,IAAK,CAC/B,IAAMC,EAAQ,CACZJ,KAAKK,MAAMT,EAAM,GAAKO,EAAIN,EAAK,GAAKE,GACpCC,KAAKK,MAAMT,EAAM,GAAKO,EAAIN,EAAK,GAAKE,GACpCC,KAAKK,MAAMT,EAAM,GAAKO,EAAIN,EAAK,GAAKE,GACpCH,EAAM,GAAKO,EAAIN,EAAK,GAAKE,GAE3BG,EAAKJ,KAAKM,GAEZ,OAAOF,I,4FCjCT,aAMA,+BAAoCI,EAAoBb,EAAgBC,GACtE,GAAID,EAASa,EAASX,OACpB,MAAM,IAAIY,MAAM,4BAAqBD,EAASX,OAAM,aAKtD,IAFA,IAAMa,EAAiB,GACjBC,EAAkB,GACfN,EAAI,EAAGA,EAAIG,EAASX,OAAQQ,IACnCM,EAAMX,KAAKE,KAAKK,MAAMC,EAASH,GAAGO,MAAQjB,IAG5C,IAASU,EAAI,EAAGA,EAAIG,EAASX,OAAS,EAAGQ,IAAK,CAC5C,IAAMQ,EAAIF,EAAMN,EAAI,GAAKM,EAAMN,GACzBZ,EAAOe,EAASH,GAAGS,IACnBpB,EAAKc,EAASH,EAAI,GAAGS,IAC3BJ,EAAOV,KAAI,MAAXU,GAAe,IAAAK,cAAatB,EAAMC,EAAImB,EAAGjB,IAG3C,OAAOc,I,yfCxBT,YACA,YACA,YACA,YACA,W,2ICEA,kBAAuBI,GAErB,IADA,IAQME,EARFC,EAAM,IACDZ,EAAI,EAAGA,EAAI,EAAGA,IACrBY,SAMID,GAAAA,IANOF,EAAIT,IAMFa,SAAS,KACfrB,OAAS,EAAI,IAAMmB,EAAIA,GALhC,OAAOC,I,+ECTT,sBAA2Bb,GACzB,MAAO,QAAUA,EAAKe,KAAK,KAAO,OCFhCC,EAA2B,GCE3BC,EDCJ,SAASC,EAAoBC,GAE5B,IAAIC,EAAeJ,EAAyBG,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASP,EAAyBG,GAAY,CAGjDG,QAAS,IAOV,OAHAE,EAAoBL,GAAUM,KAAKF,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,QClBWJ,CAAoB,K","sources":["webpack://ColorMap/./ts/createColors.ts","webpack://ColorMap/./ts/createColorsFromMap.ts","webpack://ColorMap/./ts/index.ts","webpack://ColorMap/./ts/rgbHex.ts","webpack://ColorMap/./ts/rgbaString.ts","webpack://ColorMap/webpack/bootstrap","webpack://ColorMap/webpack/startup"],"sourcesContent":["import { RGB, RGBA, Alpha } from './interfaces'\n\nexport function createColors(\n from: RGB | RGBA,\n to: RGB | RGBA,\n shades: number,\n alpha: Alpha = [\n from.length === 4 ? from[3] : to.length === 4 ? to[3] : 1,\n to.length === 4 ? to[3] : from.length === 4 ? from[3] : 1\n ]): RGBA[] {\n const start = [...from]\n const diff = [\n to[0] - from[0],\n to[1] - from[1],\n to[2] - from[2],\n alpha[1] - alpha[0]\n ]\n\n if (start.length === 3)\n start.push(alpha[0])\n\n const inc = 1 / Math.max(shades - 1, 1)\n\n const rgba: any[] = []\n for (let i = 0; i < shades; i++) {\n const color = [\n Math.round(start[0] + i * diff[0] * inc),\n Math.round(start[1] + i * diff[1] * inc),\n Math.round(start[2] + i * diff[2] * inc),\n start[3] + i * diff[3] * inc\n ]\n rgba.push(color)\n }\n return rgba\n}\n","import { createColors } from './createColors'\nimport { ColorMap, Alpha, RGBA } from './interfaces'\n\n/**\n * Create colors with specified color map.\n */\nexport function createColorsFromMap(colormap: ColorMap, shades: number, alpha?: Alpha): RGBA[] {\n if (shades < colormap.length) {\n throw new Error(`Requires at least ${colormap.length} shades.`)\n }\n\n const result: RGBA[] = []\n const steps: number[] = []\n for (let i = 0; i < colormap.length; i++) {\n steps.push(Math.round(colormap[i].index * shades))\n }\n\n for (let i = 0; i < colormap.length - 1; i++) {\n const n = steps[i + 1] - steps[i]\n const from = colormap[i].rgb;\n const to = colormap[i + 1].rgb;\n result.push(...createColors(from, to, n, alpha))\n }\n\n return result\n}\n","export * from './createColors'\nexport * from './createColorsFromMap'\nexport * from './interfaces'\nexport * from './rgbHex'\nexport * from './rgbaString'\n","import { RGB, RGBA } from './interfaces'\n\n/**\n * Convert `RGB` to `#rgb`\n * JavaScript note: no check for array length, use it properly.\n */\nexport function rgbHex(rgb: RGB | RGBA) {\n let hex = '#'\n for (let i = 0; i < 3; i++) {\n hex += d2h(rgb[i])\n }\n return hex\n}\n\nfunction d2h(d: number) {\n const s = (+d).toString(16)\n return s.length < 2 ? '0' + s : s\n}\n","import { RGBA } from './interfaces'\n\nexport function rgbaString(rgba: RGBA) {\n return 'rgba(' + rgba.join(',') + ')';\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(403);\n"],"names":["from","to","shades","alpha","length","start","diff","push","inc","Math","max","rgba","i","color","round","colormap","Error","result","steps","index","n","rgb","createColors","s","hex","toString","join","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ import { RGB, RGBA, Alpha } from './interfaces';
2
+ export declare function createColors(from: RGB | RGBA, to: RGB | RGBA, shades: number, alpha?: Alpha): RGBA[];
@@ -0,0 +1,27 @@
1
+ export function createColors(from, to, shades, alpha = [
2
+ from.length === 4 ? from[3] : to.length === 4 ? to[3] : 1,
3
+ to.length === 4 ? to[3] : from.length === 4 ? from[3] : 1
4
+ ]) {
5
+ const start = [...from];
6
+ const diff = [
7
+ to[0] - from[0],
8
+ to[1] - from[1],
9
+ to[2] - from[2],
10
+ alpha[1] - alpha[0]
11
+ ];
12
+ if (start.length === 3)
13
+ start.push(alpha[0]);
14
+ const inc = 1 / Math.max(shades - 1, 1);
15
+ const rgba = [];
16
+ for (let i = 0; i < shades; i++) {
17
+ const color = [
18
+ Math.round(start[0] + i * diff[0] * inc),
19
+ Math.round(start[1] + i * diff[1] * inc),
20
+ Math.round(start[2] + i * diff[2] * inc),
21
+ start[3] + i * diff[3] * inc
22
+ ];
23
+ rgba.push(color);
24
+ }
25
+ return rgba;
26
+ }
27
+ //# sourceMappingURL=createColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createColors.js","sourceRoot":"","sources":["../ts/createColors.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAC1B,IAAgB,EAChB,EAAc,EACd,MAAc,EACd,QAAe;IACb,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1D;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACvB,MAAM,IAAI,GAAG;QACX,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACf,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACf,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACf,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;KACpB,CAAA;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAEvC,MAAM,IAAI,GAAU,EAAE,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACxC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;SAC7B,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjB;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ColorMap, Alpha, RGBA } from './interfaces';
2
+ /**
3
+ * Create colors with specified color map.
4
+ */
5
+ export declare function createColorsFromMap(colormap: ColorMap, shades: number, alpha?: Alpha): RGBA[];
@@ -0,0 +1,22 @@
1
+ import { createColors } from './createColors';
2
+ /**
3
+ * Create colors with specified color map.
4
+ */
5
+ export function createColorsFromMap(colormap, shades, alpha) {
6
+ if (shades < colormap.length) {
7
+ throw new Error(`Requires at least ${colormap.length} shades.`);
8
+ }
9
+ const result = [];
10
+ const steps = [];
11
+ for (let i = 0; i < colormap.length; i++) {
12
+ steps.push(Math.round(colormap[i].index * shades));
13
+ }
14
+ for (let i = 0; i < colormap.length - 1; i++) {
15
+ const n = steps[i + 1] - steps[i];
16
+ const from = colormap[i].rgb;
17
+ const to = colormap[i + 1].rgb;
18
+ result.push(...createColors(from, to, n, alpha));
19
+ }
20
+ return result;
21
+ }
22
+ //# sourceMappingURL=createColorsFromMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createColorsFromMap.js","sourceRoot":"","sources":["../ts/createColorsFromMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAkB,EAAE,MAAc,EAAE,KAAa;IACnF,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,UAAU,CAAC,CAAA;KAChE;IAED,MAAM,MAAM,GAAW,EAAE,CAAA;IACzB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAA;KACnD;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;KACjD;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
package/esm/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export * from './createColors';
2
+ export * from './createColorsFromMap';
3
+ export * from './interfaces';
4
+ export * from './rgbHex';
5
+ export * from './rgbaString';
package/esm/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from './createColors';
2
+ export * from './createColorsFromMap';
3
+ export * from './interfaces';
4
+ export * from './rgbHex';
5
+ export * from './rgbaString';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ export declare type RGB = [number, number, number];
2
+ export declare type RGBA = [number, number, number, number];
3
+ export declare type Alpha = [number, number];
4
+ export declare type ColorMap = {
5
+ /**
6
+ * Defines how fast or slow the `rgb` values will change from one segment to the next.
7
+ * i.e. the steepness of the gradient between two segments.
8
+ */
9
+ index: number;
10
+ /**
11
+ * RGB or RGBA. if RGBA, this alpha will be used instead of the alpha specified in the call.
12
+ */
13
+ rgb: RGB | RGBA;
14
+ }[];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../ts/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { RGB, RGBA } from './interfaces';
2
+ /**
3
+ * Convert `RGB` to `#rgb`
4
+ * JavaScript note: no check for array length, use it properly.
5
+ */
6
+ export declare function rgbHex(rgb: RGB | RGBA): string;
package/esm/rgbHex.js ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Convert `RGB` to `#rgb`
3
+ * JavaScript note: no check for array length, use it properly.
4
+ */
5
+ export function rgbHex(rgb) {
6
+ let hex = '#';
7
+ for (let i = 0; i < 3; i++) {
8
+ hex += d2h(rgb[i]);
9
+ }
10
+ return hex;
11
+ }
12
+ function d2h(d) {
13
+ const s = (+d).toString(16);
14
+ return s.length < 2 ? '0' + s : s;
15
+ }
16
+ //# sourceMappingURL=rgbHex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbHex.js","sourceRoot":"","sources":["../ts/rgbHex.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAe;IACpC,IAAI,GAAG,GAAG,GAAG,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KACnB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC3B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RGBA } from './interfaces';
2
+ export declare function rgbaString(rgba: RGBA): string;
@@ -0,0 +1,4 @@
1
+ export function rgbaString(rgba) {
2
+ return 'rgba(' + rgba.join(',') + ')';
3
+ }
4
+ //# sourceMappingURL=rgbaString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbaString.js","sourceRoot":"","sources":["../ts/rgbaString.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "color-map",
3
- "version": "1.1.2",
3
+ "version": "2.0.0",
4
4
  "description": "Color map generator",
5
5
  "homepage": "https://github.com/unional/color-map",
6
6
  "bugs": {
@@ -15,72 +15,93 @@
15
15
  "name": "Homa Wong (unional)",
16
16
  "email": "homawong@gmail.com"
17
17
  },
18
- "main": "cjs/index.js",
19
- "module": "esm/index.js",
20
- "jsnext:main": "esm/index.js",
21
- "typings": "cjs/index.d.ts",
18
+ "type": "module",
19
+ "exports": {
20
+ "import": "./esm/index.js"
21
+ },
22
+ "types": "./esm/index.d.ts",
22
23
  "files": [
23
24
  "cjs",
24
25
  "dist",
25
26
  "esm",
26
- "ts"
27
+ "ts",
28
+ "!ts/**/*.spec.ts"
27
29
  ],
28
30
  "scripts": {
29
- "build": "run-p build:cjs build:esm bundle",
31
+ "build": "run-p build:cjs build:esm build:tslib bundle",
30
32
  "build:cjs": "tsc -p tsconfig.cjs.json",
31
33
  "build:esm": "tsc -p tsconfig.esm.json",
32
- "build:verify": "run-s build dependency-check size-limit",
34
+ "build:tslib": "tsc -p tsconfig.tslib.json",
33
35
  "bundle": "webpack",
34
- "clean": "rimraf cjs esm lib libm",
36
+ "clean": "rimraf cjs coverage esm lib libm && mkdir cjs && echo '{\"type\":\"commonjs\"}' > cjs/package.json || true",
35
37
  "coverage": "jest --coverage",
36
- "dependency-check": "run-p dependency-check:unused dependency-check:missing",
37
- "dependency-check:missing": "dependency-check . --missing --no-dev",
38
- "dependency-check:unused": "dependency-check . --unused --no-dev",
38
+ "depcheck": "depcheck",
39
39
  "lint": "eslint --ext=js,ts .",
40
- "release": "npx semantic-release",
41
- "size-limit": "size-limit",
40
+ "nuke": "yarn clean && rimraf node_modules",
41
+ "_postinstall": "husky install",
42
+ "prepack": "pinst --disable",
43
+ "postpack": "pinst --enable",
44
+ "size": "size-limit",
42
45
  "test": "jest",
43
- "verify": "run-p build:verify lint coverage",
46
+ "verify": "npm-run-all clean -p build depcheck lint coverage -p size",
44
47
  "watch": "jest --watch"
45
48
  },
46
49
  "devDependencies": {
47
- "@babel/core": "^7.16.0",
48
- "@babel/plugin-proposal-class-properties": "^7.16.0",
49
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0",
50
- "@babel/plugin-proposal-optional-chaining": "^7.16.0",
51
- "@babel/preset-env": "^7.16.4",
52
- "@babel/preset-typescript": "^7.16.0",
53
- "@commitlint/cli": "^16.0.0",
54
- "@commitlint/config-conventional": "^16.0.0",
55
- "@size-limit/preset-small-lib": "^7.0.5",
56
- "@types/jest": "^27.4.0",
57
- "assertron": "^9.0.0",
58
- "colormap": "^2.3.1",
59
- "dependency-check": "^4.1.0",
60
- "eslint": "^8.6.0",
61
- "eslint-plugin-harmony": "^6.0.0",
62
- "husky": "^7.0.4",
63
- "jest": "^27.4.5",
64
- "jest-junit": "^13.0.0",
65
- "jest-progress-tracker": "^3.0.1",
66
- "jest-validate": "^27.4.2",
50
+ "@babel/core": "^7.18.2",
51
+ "@babel/plugin-proposal-class-properties": "^7.17.12",
52
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12",
53
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12",
54
+ "@babel/preset-env": "^7.18.2",
55
+ "@babel/preset-typescript": "^7.17.12",
56
+ "@commitlint/cli": "^17.0.2",
57
+ "@commitlint/config-conventional": "^17.0.2",
58
+ "@semantic-release/changelog": "^6.0.1",
59
+ "@semantic-release/git": "^10.0.1",
60
+ "@semantic-release/github": "^8.0.4",
61
+ "@semantic-release/npm": "^9.0.1",
62
+ "@size-limit/preset-small-lib": "^7.0.8",
63
+ "@types/jest": "^28.1.1",
64
+ "@typescript-eslint/eslint-plugin": "^5.27.1",
65
+ "assertron": "^9.2.4",
66
+ "colormap": "^2.3.2",
67
+ "depcheck": "^1.4.3",
68
+ "eslint": "^8.17.0",
69
+ "eslint-plugin-harmony": "^7.1.0",
70
+ "husky": "^8.0.1",
71
+ "jest": "^28.1.1",
72
+ "jest-junit": "^13.2.0",
73
+ "jest-progress-tracker": "^3.0.4",
74
+ "jest-validate": "^28.1.1",
67
75
  "jest-watch-repeat": "^2.0.0",
68
76
  "jest-watch-suspend": "^1.1.2",
69
77
  "jest-watch-toggle-config": "^2.0.1",
70
- "jest-watch-typeahead": "^1.0.0",
78
+ "jest-watch-typeahead": "^1.1.0",
71
79
  "npm-run-all": "^4.1.5",
72
- "param-case": "^2.1.1",
73
- "pascal-case": "^2.0.1",
80
+ "param-case": "^3.0.4",
81
+ "pascal-case": "^3.1.2",
82
+ "pinst": "^3.0.0",
74
83
  "rimraf": "^3.0.2",
75
- "size-limit": "^7.0.5",
76
- "ts-loader": "^5.0.0",
77
- "typescript": "^4.5.4",
78
- "webpack": "^5.0.0",
79
- "webpack-cli": "^3.3.2"
84
+ "semantic-release": "^19.0.2",
85
+ "size-limit": "^7.0.8",
86
+ "ts-loader": "^9.3.0",
87
+ "tslib": "^2.4.0",
88
+ "typescript": "^4.7.3",
89
+ "webpack": "^5.73.0",
90
+ "webpack-cli": "^4.9.2"
80
91
  },
92
+ "packageManager": "yarn@3.2.1",
81
93
  "size-limit": [
82
94
  {
95
+ "path": "./cjs/index.js",
96
+ "limit": "2 KB"
97
+ },
98
+ {
99
+ "path": "./esm/index.js",
83
100
  "limit": "2 KB"
101
+ },
102
+ {
103
+ "path": "./tslib/index.js",
104
+ "limit": "5 KB"
84
105
  }
85
106
  ]
86
107
  }
@@ -1,176 +0,0 @@
1
- import t from 'assert';
2
- import { createColors } from '.';
3
-
4
- test('match colormap output', () => {
5
- const actual = createColors([0, 0, 255], [0, 255, 128], 72)
6
-
7
- expect(actual).toEqual([
8
- [0, 0, 255, 1],
9
- [0, 4, 253, 1],
10
- [0, 7, 251, 1],
11
- [0, 11, 250, 1],
12
- [0, 14, 248, 1],
13
- [0, 18, 246, 1],
14
- [0, 22, 244, 1],
15
- [0, 25, 242, 1],
16
- [0, 29, 241, 1],
17
- [0, 32, 239, 1],
18
- [0, 36, 237, 1],
19
- [0, 40, 235, 1],
20
- [0, 43, 234, 1],
21
- [0, 47, 232, 1],
22
- [0, 50, 230, 1],
23
- [0, 54, 228, 1],
24
- [0, 57, 226, 1],
25
- [0, 61, 225, 1],
26
- [0, 65, 223, 1],
27
- [0, 68, 221, 1],
28
- [0, 72, 219, 1],
29
- [0, 75, 217, 1],
30
- [0, 79, 216, 1],
31
- [0, 83, 214, 1],
32
- [0, 86, 212, 1],
33
- [0, 90, 210, 1],
34
- [0, 93, 208, 1],
35
- [0, 97, 207, 1],
36
- [0, 101, 205, 1],
37
- [0, 104, 203, 1],
38
- [0, 108, 201, 1],
39
- [0, 111, 200, 1],
40
- [0, 115, 198, 1],
41
- [0, 119, 196, 1],
42
- [0, 122, 194, 1],
43
- [0, 126, 192, 1],
44
- [0, 129, 191, 1],
45
- [0, 133, 189, 1],
46
- [0, 136, 187, 1],
47
- [0, 140, 185, 1],
48
- [0, 144, 183, 1],
49
- [0, 147, 182, 1],
50
- [0, 151, 180, 1],
51
- [0, 154, 178, 1],
52
- [0, 158, 176, 1],
53
- [0, 162, 175, 1],
54
- [0, 165, 173, 1],
55
- [0, 169, 171, 1],
56
- [0, 172, 169, 1],
57
- [0, 176, 167, 1],
58
- [0, 180, 166, 1],
59
- [0, 183, 164, 1],
60
- [0, 187, 162, 1],
61
- [0, 190, 160, 1],
62
- [0, 194, 158, 1],
63
- [0, 198, 157, 1],
64
- [0, 201, 155, 1],
65
- [0, 205, 153, 1],
66
- [0, 208, 151, 1],
67
- [0, 212, 149, 1],
68
- [0, 215, 148, 1],
69
- [0, 219, 146, 1],
70
- [0, 223, 144, 1],
71
- [0, 226, 142, 1],
72
- [0, 230, 141, 1],
73
- [0, 233, 139, 1],
74
- [0, 237, 137, 1],
75
- [0, 241, 135, 1],
76
- [0, 244, 133, 1],
77
- [0, 248, 132, 1],
78
- [0, 251, 130, 1],
79
- [0, 255, 128, 1]])
80
- })
81
-
82
- test('Uses alpha in from/to', () => {
83
- const actual = createColors([0, 0, 0, .2], [1, 1, 1, .8], 2)
84
- expect(actual).toEqual([[0, 0, 0, .2], [1, 1, 1, .8]])
85
- })
86
-
87
- test('alpha in from but not in to, will use alpha in from', () => {
88
- const actual = createColors([0, 0, 0, .2], [1, 1, 1], 2)
89
- expect(actual).toEqual([[0, 0, 0, .2], [1, 1, 1, .2]])
90
- })
91
-
92
- test('alpha in `to` but not in `from`, will use alpha in `to`', () => {
93
- const actual = createColors([0, 0, 0], [1, 1, 1, .5], 2)
94
- expect(actual).toEqual([[0, 0, 0, .5], [1, 1, 1, .5]])
95
- })
96
-
97
-
98
- test('match actual colors', () => {
99
- let actual = createColors([150, 0, 90], [0, 0, 200], 72, [0, 1])
100
-
101
- t.deepStrictEqual(actual, [
102
- [150, 0, 90, 0],
103
- [148, 0, 92, 0.014084507042253521],
104
- [146, 0, 93, 0.028169014084507043],
105
- [144, 0, 95, 0.04225352112676056],
106
- [142, 0, 96, 0.056338028169014086],
107
- [139, 0, 98, 0.07042253521126761],
108
- [137, 0, 99, 0.08450704225352113],
109
- [135, 0, 101, 0.09859154929577466],
110
- [133, 0, 102, 0.11267605633802817],
111
- [131, 0, 104, 0.1267605633802817],
112
- [129, 0, 105, 0.14084507042253522],
113
- [127, 0, 107, 0.15492957746478875],
114
- [125, 0, 109, 0.16901408450704225],
115
- [123, 0, 110, 0.18309859154929578],
116
- [120, 0, 112, 0.1971830985915493],
117
- [118, 0, 113, 0.2112676056338028],
118
- [116, 0, 115, 0.22535211267605634],
119
- [114, 0, 116, 0.23943661971830987],
120
- [112, 0, 118, 0.2535211267605634],
121
- [110, 0, 119, 0.26760563380281693],
122
- [108, 0, 121, 0.28169014084507044],
123
- [106, 0, 123, 0.29577464788732394],
124
- [104, 0, 124, 0.3098591549295775],
125
- [101, 0, 126, 0.323943661971831],
126
- [99, 0, 127, 0.3380281690140845],
127
- [97, 0, 129, 0.35211267605633806],
128
- [95, 0, 130, 0.36619718309859156],
129
- [93, 0, 132, 0.38028169014084506],
130
- [91, 0, 133, 0.3943661971830986],
131
- [89, 0, 135, 0.4084507042253521],
132
- [87, 0, 136, 0.4225352112676056],
133
- [85, 0, 138, 0.4366197183098592],
134
- [82, 0, 140, 0.4507042253521127],
135
- [80, 0, 141, 0.4647887323943662],
136
- [78, 0, 143, 0.47887323943661975],
137
- [76, 0, 144, 0.49295774647887325],
138
- [74, 0, 146, 0.5070422535211268],
139
- [72, 0, 147, 0.5211267605633803],
140
- [70, 0, 149, 0.5352112676056339],
141
- [68, 0, 150, 0.5492957746478874],
142
- [65, 0, 152, 0.5633802816901409],
143
- [63, 0, 154, 0.5774647887323944],
144
- [61, 0, 155, 0.5915492957746479],
145
- [59, 0, 157, 0.6056338028169014],
146
- [57, 0, 158, 0.619718309859155],
147
- [55, 0, 160, 0.6338028169014085],
148
- [53, 0, 161, 0.647887323943662],
149
- [51, 0, 163, 0.6619718309859155],
150
- [49, 0, 164, 0.676056338028169],
151
- [46, 0, 166, 0.6901408450704225],
152
- [44, 0, 167, 0.7042253521126761],
153
- [42, 0, 169, 0.7183098591549296],
154
- [40, 0, 171, 0.7323943661971831],
155
- [38, 0, 172, 0.7464788732394366],
156
- [36, 0, 174, 0.7605633802816901],
157
- [34, 0, 175, 0.7746478873239436],
158
- [32, 0, 177, 0.7887323943661972],
159
- [30, 0, 178, 0.8028169014084507],
160
- [27, 0, 180, 0.8169014084507042],
161
- [25, 0, 181, 0.8309859154929577],
162
- [23, 0, 183, 0.8450704225352113],
163
- [21, 0, 185, 0.8591549295774648],
164
- [19, 0, 186, 0.8732394366197184],
165
- [17, 0, 188, 0.8873239436619719],
166
- [15, 0, 189, 0.9014084507042254],
167
- [13, 0, 191, 0.9154929577464789],
168
- [11, 0, 192, 0.9295774647887324],
169
- [8, 0, 194, 0.943661971830986],
170
- [6, 0, 195, 0.9577464788732395],
171
- [4, 0, 197, 0.971830985915493],
172
- [2, 0, 198, 0.9859154929577465],
173
- [0, 0, 200, 1]])
174
- actual = createColors([150, 0, 90], [0, 0, 200], 72)
175
- expect(actual).toEqual([[150, 0, 90, 1], [148, 0, 92, 1], [146, 0, 93, 1], [144, 0, 95, 1], [142, 0, 96, 1], [139, 0, 98, 1], [137, 0, 99, 1], [135, 0, 101, 1], [133, 0, 102, 1], [131, 0, 104, 1], [129, 0, 105, 1], [127, 0, 107, 1], [125, 0, 109, 1], [123, 0, 110, 1], [120, 0, 112, 1], [118, 0, 113, 1], [116, 0, 115, 1], [114, 0, 116, 1], [112, 0, 118, 1], [110, 0, 119, 1], [108, 0, 121, 1], [106, 0, 123, 1], [104, 0, 124, 1], [101, 0, 126, 1], [99, 0, 127, 1], [97, 0, 129, 1], [95, 0, 130, 1], [93, 0, 132, 1], [91, 0, 133, 1], [89, 0, 135, 1], [87, 0, 136, 1], [85, 0, 138, 1], [82, 0, 140, 1], [80, 0, 141, 1], [78, 0, 143, 1], [76, 0, 144, 1], [74, 0, 146, 1], [72, 0, 147, 1], [70, 0, 149, 1], [68, 0, 150, 1], [65, 0, 152, 1], [63, 0, 154, 1], [61, 0, 155, 1], [59, 0, 157, 1], [57, 0, 158, 1], [55, 0, 160, 1], [53, 0, 161, 1], [51, 0, 163, 1], [49, 0, 164, 1], [46, 0, 166, 1], [44, 0, 167, 1], [42, 0, 169, 1], [40, 0, 171, 1], [38, 0, 172, 1], [36, 0, 174, 1], [34, 0, 175, 1], [32, 0, 177, 1], [30, 0, 178, 1], [27, 0, 180, 1], [25, 0, 181, 1], [23, 0, 183, 1], [21, 0, 185, 1], [19, 0, 186, 1], [17, 0, 188, 1], [15, 0, 189, 1], [13, 0, 191, 1], [11, 0, 192, 1], [8, 0, 194, 1], [6, 0, 195, 1], [4, 0, 197, 1], [2, 0, 198, 1], [0, 0, 200, 1]])
176
- })
@@ -1,11 +0,0 @@
1
- import a from 'assertron';
2
- import { ColorMap, createColorsFromMap } from '.';
3
-
4
- test('summer colors', () => {
5
- const summer: ColorMap = [{ index: 0, rgb: [0, 128, 102] }, { index: 1, rgb: [255, 255, 102] }]
6
-
7
- a.throws(() => createColorsFromMap(summer, 1))
8
-
9
- const actual = createColorsFromMap(summer, 60)
10
- expect(actual).toEqual([[0, 128, 102, 1], [4, 130, 102, 1], [9, 132, 102, 1], [13, 134, 102, 1], [17, 137, 102, 1], [22, 139, 102, 1], [26, 141, 102, 1], [30, 143, 102, 1], [35, 145, 102, 1], [39, 147, 102, 1], [43, 150, 102, 1], [48, 152, 102, 1], [52, 154, 102, 1], [56, 156, 102, 1], [61, 158, 102, 1], [65, 160, 102, 1], [69, 162, 102, 1], [73, 165, 102, 1], [78, 167, 102, 1], [82, 169, 102, 1], [86, 171, 102, 1], [91, 173, 102, 1], [95, 175, 102, 1], [99, 178, 102, 1], [104, 180, 102, 1], [108, 182, 102, 1], [112, 184, 102, 1], [117, 186, 102, 1], [121, 188, 102, 1], [125, 190, 102, 1], [130, 193, 102, 1], [134, 195, 102, 1], [138, 197, 102, 1], [143, 199, 102, 1], [147, 201, 102, 1], [151, 203, 102, 1], [156, 205, 102, 1], [160, 208, 102, 1], [164, 210, 102, 1], [169, 212, 102, 1], [173, 214, 102, 1], [177, 216, 102, 1], [182, 218, 102, 1], [186, 221, 102, 1], [190, 223, 102, 1], [194, 225, 102, 1], [199, 227, 102, 1], [203, 229, 102, 1], [207, 231, 102, 1], [212, 233, 102, 1], [216, 236, 102, 1], [220, 238, 102, 1], [225, 240, 102, 1], [229, 242, 102, 1], [233, 244, 102, 1], [238, 246, 102, 1], [242, 249, 102, 1], [246, 251, 102, 1], [251, 253, 102, 1], [255, 255, 102, 1]])
11
- })
package/ts/rgbHex.spec.ts DELETED
@@ -1,17 +0,0 @@
1
- import { rgbHex } from '.'
2
-
3
- test('[0,0,0] => #000000', () => {
4
- expect(rgbHex([0, 0, 0])).toBe('#000000')
5
- })
6
-
7
- test('[255,128,16] => #ff8010', () => {
8
- expect(rgbHex([255, 128, 16])).toBe('#ff8010')
9
- })
10
-
11
- test('[255,128,16,0] => #ff8010', () => {
12
- expect(rgbHex([255, 128, 16, 0])).toBe('#ff8010')
13
- })
14
-
15
- test('[255,128,16,0.8] => #ff8010', () => {
16
- expect(rgbHex([255, 128, 16, 0.8])).toBe('#ff8010')
17
- })
@@ -1,9 +0,0 @@
1
- import { rgbaString } from '.';
2
-
3
- test('[255,128,16,0] => rgba(255,128,16,0)', () => {
4
- expect(rgbaString([255, 128, 16, 0])).toBe('rgba(255,128,16,0)')
5
- })
6
-
7
- test('[255,128,16,0.3] => rgba(255,128,16,0.3)', () => {
8
- expect(rgbaString([255, 128, 16, 0.3])).toBe('rgba(255,128,16,0.3)')
9
- })