chartjs-chart-matrix 3.0.4 → 3.0.5
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.
|
@@ -24,12 +24,22 @@ class MatrixController extends chart_js.DatasetController {
|
|
|
24
24
|
updateElements(rects, start, count, mode) {
|
|
25
25
|
const reset = mode === 'reset';
|
|
26
26
|
const { xScale, yScale } = this._cachedMeta;
|
|
27
|
+
if (!xScale || !yScale) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
27
30
|
const firstOpts = this.resolveDataElementOptions(start, mode);
|
|
28
31
|
const sharedOptions = this.getSharedOptions(firstOpts);
|
|
29
32
|
for(let i = start; i < start + count; i++){
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
let x;
|
|
34
|
+
let y;
|
|
35
|
+
if (reset) {
|
|
36
|
+
x = xScale.getBasePixel();
|
|
37
|
+
y = yScale.getBasePixel();
|
|
38
|
+
} else {
|
|
39
|
+
const parsed = this.getParsed(i);
|
|
40
|
+
x = xScale.getPixelForValue(parsed.x);
|
|
41
|
+
y = yScale.getPixelForValue(parsed.y);
|
|
42
|
+
}
|
|
33
43
|
const options = this.resolveDataElementOptions(i, mode);
|
|
34
44
|
const { width, height, anchorX, anchorY } = options;
|
|
35
45
|
const properties = {
|
|
@@ -41,7 +51,9 @@ class MatrixController extends chart_js.DatasetController {
|
|
|
41
51
|
};
|
|
42
52
|
this.updateElement(rects[i], i, properties, mode);
|
|
43
53
|
}
|
|
44
|
-
|
|
54
|
+
if (sharedOptions) {
|
|
55
|
+
this.updateSharedOptions(sharedOptions, mode, firstOpts);
|
|
56
|
+
}
|
|
45
57
|
}
|
|
46
58
|
draw() {
|
|
47
59
|
const ctx = this.chart.ctx;
|
|
@@ -120,16 +132,17 @@ function getBounds(element, useFinalPosition) {
|
|
|
120
132
|
function limit(value, min, max) {
|
|
121
133
|
return Math.max(Math.min(value, max), min);
|
|
122
134
|
}
|
|
135
|
+
const borderValue = (value)=>+(value ?? 0) || 0;
|
|
123
136
|
function parseBorderWidth(options, maxW, maxH) {
|
|
124
137
|
const value = options.borderWidth;
|
|
125
138
|
let t, r, b, l;
|
|
126
|
-
if (helpers.isObject(value)) {
|
|
127
|
-
t =
|
|
128
|
-
r =
|
|
129
|
-
b =
|
|
130
|
-
l =
|
|
139
|
+
if (value != null && helpers.isObject(value)) {
|
|
140
|
+
t = borderValue(value.top);
|
|
141
|
+
r = borderValue(value.right);
|
|
142
|
+
b = borderValue(value.bottom);
|
|
143
|
+
l = borderValue(value.left);
|
|
131
144
|
} else {
|
|
132
|
-
t = r = b = l =
|
|
145
|
+
t = r = b = l = borderValue(value);
|
|
133
146
|
}
|
|
134
147
|
return {
|
|
135
148
|
b: limit(b, 0, maxH),
|
|
@@ -206,13 +219,13 @@ class MatrixElement extends chart_js.Element {
|
|
|
206
219
|
ctx.restore();
|
|
207
220
|
}
|
|
208
221
|
inRange(mouseX, mouseY, useFinalPosition) {
|
|
209
|
-
return inRange(this, mouseX, mouseY, useFinalPosition);
|
|
222
|
+
return inRange(this, mouseX, mouseY, useFinalPosition ?? false);
|
|
210
223
|
}
|
|
211
224
|
inXRange(mouseX, useFinalPosition) {
|
|
212
|
-
return inRange(this, mouseX, null, useFinalPosition);
|
|
225
|
+
return inRange(this, mouseX, null, useFinalPosition ?? false);
|
|
213
226
|
}
|
|
214
227
|
inYRange(mouseY, useFinalPosition) {
|
|
215
|
-
return inRange(this, null, mouseY, useFinalPosition);
|
|
228
|
+
return inRange(this, null, mouseY, useFinalPosition ?? false);
|
|
216
229
|
}
|
|
217
230
|
getCenterPoint(useFinalPosition) {
|
|
218
231
|
const { x, y, width, height } = this.getProps([
|
|
@@ -233,7 +246,7 @@ class MatrixElement extends chart_js.Element {
|
|
|
233
246
|
return axis === 'x' ? this.width / 2 : this.height / 2;
|
|
234
247
|
}
|
|
235
248
|
constructor(cfg){
|
|
236
|
-
super();
|
|
249
|
+
super(), this.width = MatrixElement.defaults.width, this.height = MatrixElement.defaults.height;
|
|
237
250
|
if (cfg) {
|
|
238
251
|
Object.assign(this, cfg);
|
|
239
252
|
}
|
|
@@ -21,12 +21,22 @@ class MatrixController extends DatasetController {
|
|
|
21
21
|
updateElements(rects, start, count, mode) {
|
|
22
22
|
const reset = mode === 'reset';
|
|
23
23
|
const { xScale, yScale } = this._cachedMeta;
|
|
24
|
+
if (!xScale || !yScale) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
24
27
|
const firstOpts = this.resolveDataElementOptions(start, mode);
|
|
25
28
|
const sharedOptions = this.getSharedOptions(firstOpts);
|
|
26
29
|
for(let i = start; i < start + count; i++){
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
let x;
|
|
31
|
+
let y;
|
|
32
|
+
if (reset) {
|
|
33
|
+
x = xScale.getBasePixel();
|
|
34
|
+
y = yScale.getBasePixel();
|
|
35
|
+
} else {
|
|
36
|
+
const parsed = this.getParsed(i);
|
|
37
|
+
x = xScale.getPixelForValue(parsed.x);
|
|
38
|
+
y = yScale.getPixelForValue(parsed.y);
|
|
39
|
+
}
|
|
30
40
|
const options = this.resolveDataElementOptions(i, mode);
|
|
31
41
|
const { width, height, anchorX, anchorY } = options;
|
|
32
42
|
const properties = {
|
|
@@ -38,7 +48,9 @@ class MatrixController extends DatasetController {
|
|
|
38
48
|
};
|
|
39
49
|
this.updateElement(rects[i], i, properties, mode);
|
|
40
50
|
}
|
|
41
|
-
|
|
51
|
+
if (sharedOptions) {
|
|
52
|
+
this.updateSharedOptions(sharedOptions, mode, firstOpts);
|
|
53
|
+
}
|
|
42
54
|
}
|
|
43
55
|
draw() {
|
|
44
56
|
const ctx = this.chart.ctx;
|
|
@@ -117,16 +129,17 @@ function getBounds(element, useFinalPosition) {
|
|
|
117
129
|
function limit(value, min, max) {
|
|
118
130
|
return Math.max(Math.min(value, max), min);
|
|
119
131
|
}
|
|
132
|
+
const borderValue = (value)=>+(value ?? 0) || 0;
|
|
120
133
|
function parseBorderWidth(options, maxW, maxH) {
|
|
121
134
|
const value = options.borderWidth;
|
|
122
135
|
let t, r, b, l;
|
|
123
|
-
if (isObject(value)) {
|
|
124
|
-
t =
|
|
125
|
-
r =
|
|
126
|
-
b =
|
|
127
|
-
l =
|
|
136
|
+
if (value != null && isObject(value)) {
|
|
137
|
+
t = borderValue(value.top);
|
|
138
|
+
r = borderValue(value.right);
|
|
139
|
+
b = borderValue(value.bottom);
|
|
140
|
+
l = borderValue(value.left);
|
|
128
141
|
} else {
|
|
129
|
-
t = r = b = l =
|
|
142
|
+
t = r = b = l = borderValue(value);
|
|
130
143
|
}
|
|
131
144
|
return {
|
|
132
145
|
b: limit(b, 0, maxH),
|
|
@@ -203,13 +216,13 @@ class MatrixElement extends Element {
|
|
|
203
216
|
ctx.restore();
|
|
204
217
|
}
|
|
205
218
|
inRange(mouseX, mouseY, useFinalPosition) {
|
|
206
|
-
return inRange(this, mouseX, mouseY, useFinalPosition);
|
|
219
|
+
return inRange(this, mouseX, mouseY, useFinalPosition ?? false);
|
|
207
220
|
}
|
|
208
221
|
inXRange(mouseX, useFinalPosition) {
|
|
209
|
-
return inRange(this, mouseX, null, useFinalPosition);
|
|
222
|
+
return inRange(this, mouseX, null, useFinalPosition ?? false);
|
|
210
223
|
}
|
|
211
224
|
inYRange(mouseY, useFinalPosition) {
|
|
212
|
-
return inRange(this, null, mouseY, useFinalPosition);
|
|
225
|
+
return inRange(this, null, mouseY, useFinalPosition ?? false);
|
|
213
226
|
}
|
|
214
227
|
getCenterPoint(useFinalPosition) {
|
|
215
228
|
const { x, y, width, height } = this.getProps([
|
|
@@ -230,7 +243,7 @@ class MatrixElement extends Element {
|
|
|
230
243
|
return axis === 'x' ? this.width / 2 : this.height / 2;
|
|
231
244
|
}
|
|
232
245
|
constructor(cfg){
|
|
233
|
-
super();
|
|
246
|
+
super(), this.width = MatrixElement.defaults.width, this.height = MatrixElement.defaults.height;
|
|
234
247
|
if (cfg) {
|
|
235
248
|
Object.assign(this, cfg);
|
|
236
249
|
}
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* (c) 2026 Jukka Kurkela
|
|
5
5
|
* Released under the MIT license
|
|
6
6
|
*/
|
|
7
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("chart.js"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["exports","chart.js","chart.js/helpers"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["chartjs-chart-matrix"]={},t.Chart,t.Chart.helpers)}(this,function(t,e,
|
|
7
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("chart.js"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["exports","chart.js","chart.js/helpers"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["chartjs-chart-matrix"]={},t.Chart,t.Chart.helpers)}(this,function(t,e,i){"use strict";class r extends e.DatasetController{initialize(){this.enableOptionSharing=!0,super.initialize()}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,r){const s="reset"===r,{xScale:h,yScale:a}=this._cachedMeta;if(!h||!a)return;const l=this.resolveDataElementOptions(e,r),d=this.getSharedOptions(l);for(let l=e;l<e+i;l++){let e,i;if(s)e=h.getBasePixel(),i=a.getBasePixel();else{const t=this.getParsed(l);e=h.getPixelForValue(t.x),i=a.getPixelForValue(t.y)}const d=this.resolveDataElementOptions(l,r),{width:u,height:c,anchorX:g,anchorY:f}=d,p={height:c,options:d,width:u,x:n(g,e,u),y:o(f,i,c)};this.updateElement(t[l],l,p,r)}d&&this.updateSharedOptions(d,r,l)}draw(){const t=this.chart.ctx,e=this.getMeta().data||[];let i,r;for(i=0,r=e.length;i<r;++i)e[i].draw(t)}}function n(t,e,i){return"left"===t||"start"===t?e:"right"===t||"end"===t?e-i:e-i/2}function o(t,e,i){return"top"===t||"start"===t?e:"bottom"===t||"end"===t?e-i:e-i/2}function s(t,e){const{x:i,y:r,width:n,height:o}=t.getProps(["x","y","width","height"],e);return{bottom:r+o,left:i,right:i+n,top:r}}function h(t,e,i){return Math.max(Math.min(t,i),e)}r.id="matrix",r.version="0.0.0-development",r.defaults={animations:{numbers:{properties:["x","y","width","height"],type:"number"}},dataElementType:"matrix"},r.overrides={interaction:{intersect:!0,mode:"nearest"},scales:{x:{offset:!0,type:"linear"},y:{reverse:!0,type:"linear"}}};const a=t=>+(t??0)||0;function l(t){const e=s(t,!1),r=e.right-e.left,n=e.bottom-e.top,o=function(t,e,r){const n=t.borderWidth;let o,s,l,d;return null!=n&&i.isObject(n)?(o=a(n.top),s=a(n.right),l=a(n.bottom),d=a(n.left)):o=s=l=d=a(n),{b:h(l,0,r),l:h(d,0,e),r:h(s,0,e),t:h(o,0,r)}}(t.options,r/2,n/2);return{inner:{h:n-o.t-o.b,w:r-o.l-o.r,x:e.left+o.l,y:e.top+o.t},outer:{h:n,w:r,x:e.left,y:e.top}}}function d(t,e,i,r){const n=null===e,o=null===i,h=!(!t||n&&o)&&s(t,r);return h&&(n||e>=h.left&&e<=h.right)&&(o||i>=h.top&&i<=h.bottom)}class u extends e.Element{draw(t){const e=this.options,{inner:r,outer:n}=l(this),o=i.toTRBLCorners(e.borderRadius);t.save(),n.w!==r.w||n.h!==r.h?(t.beginPath(),i.addRoundedRectPath(t,{h:n.h,radius:o,w:n.w,x:n.x,y:n.y}),i.addRoundedRectPath(t,{h:r.h,radius:o,w:r.w,x:r.x,y:r.y}),t.fillStyle=e.backgroundColor,t.fill(),t.fillStyle=e.borderColor,t.fill("evenodd")):(t.beginPath(),i.addRoundedRectPath(t,{h:r.h,radius:o,w:r.w,x:r.x,y:r.y}),t.fillStyle=e.backgroundColor,t.fill()),t.restore()}inRange(t,e,i){return d(this,t,e,i??!1)}inXRange(t,e){return d(this,t,null,e??!1)}inYRange(t,e){return d(this,null,t,e??!1)}getCenterPoint(t){const{x:e,y:i,width:r,height:n}=this.getProps(["x","y","width","height"],t);return{x:e+r/2,y:i+n/2}}tooltipPosition(){return this.getCenterPoint()}getRange(t){return"x"===t?this.width/2:this.height/2}constructor(t){super(),this.width=u.defaults.width,this.height=u.defaults.height,t&&Object.assign(this,t)}}u.id="matrix",u.defaults={anchorX:"center",anchorY:"center",backgroundColor:void 0,borderColor:void 0,borderRadius:0,borderWidth:void 0,height:20,width:20},e.Chart.register(r,u),t.MatrixController=r,t.MatrixElement=u});
|
|
8
8
|
//# sourceMappingURL=chartjs-chart-matrix.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartjs-chart-matrix.min.js","sources":["../src/controller.ts","../src/helpers.ts","../src/element.ts","../src/index.ts"],"sourcesContent":["import type { UpdateMode } from 'chart.js'\nimport type {\n AnchorX,\n AnchorY,\n MatrixControllerDatasetOptions,\n MatrixParsedDataPoint,\n} from 'types/index.esm'\nimport type MatrixElement from './element'\n\nimport { DatasetController } from 'chart.js'\n\nimport { version } from '../package.json'\n\nexport default class MatrixController extends DatasetController<\n 'matrix',\n MatrixElement,\n MatrixElement,\n MatrixParsedDataPoint\n> {\n static readonly id = 'matrix'\n static readonly version = version\n\n static readonly defaults = {\n animations: {\n numbers: {\n properties: ['x', 'y', 'width', 'height'],\n type: 'number',\n },\n },\n dataElementType: 'matrix',\n }\n\n static readonly overrides = {\n interaction: {\n intersect: true,\n mode: 'nearest',\n },\n scales: {\n x: {\n offset: true,\n type: 'linear',\n },\n y: {\n reverse: true,\n type: 'linear',\n },\n },\n }\n\n options: MatrixControllerDatasetOptions\n\n override initialize() {\n this.enableOptionSharing = true\n super.initialize()\n }\n\n override update(mode: UpdateMode) {\n const meta = this._cachedMeta\n\n this.updateElements(meta.data, 0, meta.data.length, mode)\n }\n\n override updateElements(rects: MatrixElement[], start: number, count: number, mode: UpdateMode) {\n const reset = mode === 'reset'\n const { xScale, yScale } = this._cachedMeta\n const firstOpts = this.resolveDataElementOptions(start, mode)\n const sharedOptions = this.getSharedOptions(firstOpts)\n\n for (let i = start; i < start + count; i++) {\n const parsed = !reset && this.getParsed(i)\n const x = reset ? xScale.getBasePixel() : xScale.getPixelForValue(parsed.x)\n const y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(parsed.y)\n const options = this.resolveDataElementOptions(i, mode)\n const { width, height, anchorX, anchorY } = options\n const properties = {\n height,\n options,\n width,\n x: resolveX(anchorX, x, width),\n y: resolveY(anchorY, y, height),\n }\n this.updateElement(rects[i], i, properties, mode)\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts)\n }\n\n override draw() {\n const ctx = this.chart.ctx\n const data = this.getMeta().data || []\n let i: number, ilen: number\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n data[i].draw(ctx)\n }\n }\n}\n\nfunction resolveX(anchorX: AnchorX, x: number, width: number) {\n if (anchorX === 'left' || anchorX === 'start') {\n return x\n }\n if (anchorX === 'right' || anchorX === 'end') {\n return x - width\n }\n return x - width / 2\n}\n\nfunction resolveY(anchorY: AnchorY, y: number, height: number) {\n if (anchorY === 'top' || anchorY === 'start') {\n return y\n }\n if (anchorY === 'bottom' || anchorY === 'end') {\n return y - height\n }\n return y - height / 2\n}\n","import type { MatrixOptions } from 'types/index.esm'\nimport type MatrixElement from './element'\n\nimport { isObject } from 'chart.js/helpers'\n\ntype Bounds = { left: number; top: number; right: number; bottom: number }\n\nfunction getBounds(element: MatrixElement, useFinalPosition: boolean): Bounds {\n const { x, y, width, height } = element.getProps(['x', 'y', 'width', 'height'], useFinalPosition)\n return { bottom: y + height, left: x, right: x + width, top: y }\n}\n\nfunction limit(value: number, min: number, max: number) {\n return Math.max(Math.min(value, max), min)\n}\n\nexport function parseBorderWidth(\n options: Pick<MatrixOptions, 'borderWidth'>,\n maxW: number,\n maxH: number\n) {\n const value = options.borderWidth\n let t: number, r: number, b: number, l: number\n\n if (isObject(value)) {\n t = +value.top || 0\n r = +value.right || 0\n b = +value.bottom || 0\n l = +value.left || 0\n } else {\n t = r = b = l = +value || 0\n }\n\n return {\n b: limit(b, 0, maxH),\n l: limit(l, 0, maxW),\n r: limit(r, 0, maxW),\n t: limit(t, 0, maxH),\n }\n}\n\nexport function boundingRects(element: MatrixElement) {\n const bounds = getBounds(element, false)\n const width = bounds.right - bounds.left\n const height = bounds.bottom - bounds.top\n const border = parseBorderWidth(element.options, width / 2, height / 2)\n\n return {\n inner: {\n h: height - border.t - border.b,\n w: width - border.l - border.r,\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n },\n outer: {\n h: height,\n w: width,\n x: bounds.left,\n y: bounds.top,\n },\n }\n}\n\nexport function inRange(element: MatrixElement, x: number, y: number, useFinalPosition: boolean) {\n const skipX = x === null\n const skipY = y === null\n const bounds = !element || (skipX && skipY) ? false : getBounds(element, useFinalPosition)\n\n return (\n bounds &&\n (skipX || (x >= bounds.left && x <= bounds.right)) &&\n (skipY || (y >= bounds.top && y <= bounds.bottom))\n )\n}\n","import type { MatrixOptions, MatrixProps } from 'types/index.esm'\n\nimport { Element } from 'chart.js'\nimport { addRoundedRectPath, toTRBLCorners } from 'chart.js/helpers'\n\nimport { boundingRects, inRange } from './helpers'\n\nexport default class MatrixElement extends Element<MatrixProps, MatrixOptions> {\n static readonly id = 'matrix'\n\n static override readonly defaults = {\n anchorX: 'center',\n anchorY: 'center',\n backgroundColor: undefined,\n borderColor: undefined,\n borderRadius: 0,\n borderWidth: undefined,\n height: 20,\n width: 20,\n }\n\n width: number\n height: number\n\n constructor(cfg: MatrixProps) {\n super()\n\n if (cfg) {\n Object.assign(this, cfg)\n }\n }\n\n draw(ctx: CanvasRenderingContext2D) {\n const options = this.options\n const { inner, outer } = boundingRects(this)\n const radius = toTRBLCorners(options.borderRadius)\n\n ctx.save()\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath()\n addRoundedRectPath(ctx, { h: outer.h, radius, w: outer.w, x: outer.x, y: outer.y })\n addRoundedRectPath(ctx, { h: inner.h, radius, w: inner.w, x: inner.x, y: inner.y })\n ctx.fillStyle = options.backgroundColor\n ctx.fill()\n ctx.fillStyle = options.borderColor\n ctx.fill('evenodd')\n } else {\n ctx.beginPath()\n addRoundedRectPath(ctx, { h: inner.h, radius, w: inner.w, x: inner.x, y: inner.y })\n ctx.fillStyle = options.backgroundColor\n ctx.fill()\n }\n\n ctx.restore()\n }\n\n inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, mouseY, useFinalPosition)\n }\n\n inXRange(mouseX: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, null, useFinalPosition)\n }\n\n inYRange(mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, null, mouseY, useFinalPosition)\n }\n\n getCenterPoint(useFinalPosition?: boolean) {\n const { x, y, width, height } = this.getProps(['x', 'y', 'width', 'height'], useFinalPosition)\n return {\n x: x + width / 2,\n y: y + height / 2,\n }\n }\n\n override tooltipPosition() {\n return this.getCenterPoint()\n }\n\n getRange(axis: 'x' | 'y') {\n return axis === 'x' ? this.width / 2 : this.height / 2\n }\n}\n","import { Chart } from 'chart.js'\n\nimport MatrixController from './controller.js'\nimport MatrixElement from './element.js'\n\nChart.register(MatrixController, MatrixElement)\n\nexport { MatrixController, MatrixElement }\n"],"names":["MatrixController","DatasetController","initialize","this","enableOptionSharing","super","update","mode","meta","_cachedMeta","updateElements","data","length","rects","start","count","reset","xScale","yScale","firstOpts","resolveDataElementOptions","sharedOptions","getSharedOptions","i","parsed","getParsed","x","getBasePixel","getPixelForValue","y","options","width","height","anchorX","anchorY","properties","resolveX","resolveY","updateElement","updateSharedOptions","draw","ctx","chart","getMeta","ilen","getBounds","element","useFinalPosition","getProps","bottom","left","right","top","limit","value","min","max","Math","boundingRects","bounds","border","maxW","maxH","borderWidth","t","r","b","l","isObject","parseBorderWidth","inner","h","w","outer","inRange","skipX","skipY","id","version","defaults","animations","numbers","type","dataElementType","overrides","interaction","intersect","scales","offset","reverse","MatrixElement","Element","radius","toTRBLCorners","borderRadius","save","beginPath","addRoundedRectPath","fillStyle","backgroundColor","fill","borderColor","restore","mouseX","mouseY","inXRange","inYRange","getCenterPoint","tooltipPosition","getRange","axis","constructor","cfg","Object","assign","undefined","Chart","register"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chartjs-chart-matrix.min.js","sources":["../src/controller.ts","../src/helpers.ts","../src/element.ts","../src/index.ts"],"sourcesContent":["import type { UpdateMode } from 'chart.js'\nimport type { AnchorX, AnchorY, MatrixParsedDataPoint } from '../types/index.esm'\nimport type MatrixElement from './element'\n\nimport { DatasetController } from 'chart.js'\n\nimport { version } from '../package.json'\n\nexport default class MatrixController extends DatasetController<\n 'matrix',\n MatrixElement,\n MatrixElement,\n MatrixParsedDataPoint\n> {\n static readonly id = 'matrix'\n static readonly version = version\n\n static readonly defaults = {\n animations: {\n numbers: {\n properties: ['x', 'y', 'width', 'height'],\n type: 'number',\n },\n },\n dataElementType: 'matrix',\n }\n\n static readonly overrides = {\n interaction: {\n intersect: true,\n mode: 'nearest',\n },\n scales: {\n x: {\n offset: true,\n type: 'linear',\n },\n y: {\n reverse: true,\n type: 'linear',\n },\n },\n }\n\n override initialize() {\n this.enableOptionSharing = true\n super.initialize()\n }\n\n override update(mode: UpdateMode) {\n const meta = this._cachedMeta\n\n this.updateElements(meta.data, 0, meta.data.length, mode)\n }\n\n override updateElements(rects: MatrixElement[], start: number, count: number, mode: UpdateMode) {\n const reset = mode === 'reset'\n const { xScale, yScale } = this._cachedMeta\n\n if (!xScale || !yScale) {\n return\n }\n\n const firstOpts = this.resolveDataElementOptions(start, mode)\n const sharedOptions = this.getSharedOptions(firstOpts)\n\n for (let i = start; i < start + count; i++) {\n let x: number\n let y: number\n\n if (reset) {\n x = xScale.getBasePixel()\n y = yScale.getBasePixel()\n } else {\n const parsed = this.getParsed(i)\n x = xScale.getPixelForValue(parsed.x)\n y = yScale.getPixelForValue(parsed.y)\n }\n\n const options = this.resolveDataElementOptions(i, mode)\n const { width, height, anchorX, anchorY } = options\n const properties = {\n height,\n options,\n width,\n x: resolveX(anchorX, x, width),\n y: resolveY(anchorY, y, height),\n }\n this.updateElement(rects[i], i, properties, mode)\n }\n\n if (sharedOptions) {\n this.updateSharedOptions(sharedOptions, mode, firstOpts)\n }\n }\n\n override draw() {\n const ctx = this.chart.ctx\n const data = this.getMeta().data || []\n let i: number, ilen: number\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n data[i].draw(ctx)\n }\n }\n}\n\nfunction resolveX(anchorX: AnchorX, x: number, width: number) {\n if (anchorX === 'left' || anchorX === 'start') {\n return x\n }\n if (anchorX === 'right' || anchorX === 'end') {\n return x - width\n }\n return x - width / 2\n}\n\nfunction resolveY(anchorY: AnchorY, y: number, height: number) {\n if (anchorY === 'top' || anchorY === 'start') {\n return y\n }\n if (anchorY === 'bottom' || anchorY === 'end') {\n return y - height\n }\n return y - height / 2\n}\n","import type MatrixElement from './element'\n\nimport { isObject } from 'chart.js/helpers'\n\ntype Bounds = { left: number; top: number; right: number; bottom: number }\n\nfunction getBounds(element: MatrixElement, useFinalPosition: boolean): Bounds {\n const { x, y, width, height } = element.getProps(['x', 'y', 'width', 'height'], useFinalPosition)\n return { bottom: y + height, left: x, right: x + width, top: y }\n}\n\nfunction limit(value: number, min: number, max: number) {\n return Math.max(Math.min(value, max), min)\n}\n\ntype BorderWidthObject = {\n bottom?: number | null\n left?: number | null\n right?: number | null\n top?: number | null\n}\ntype BorderWidth = number | BorderWidthObject\ntype BorderWidthOptions = { borderWidth?: BorderWidth | null }\n\nconst borderValue = (value?: string | number | null): number => +(value ?? 0) || 0\n\nexport function parseBorderWidth(options: BorderWidthOptions, maxW: number, maxH: number) {\n const value = options.borderWidth\n let t: number, r: number, b: number, l: number\n\n if (value != null && isObject(value)) {\n t = borderValue(value.top)\n r = borderValue(value.right)\n b = borderValue(value.bottom)\n l = borderValue(value.left)\n } else {\n t = r = b = l = borderValue(value)\n }\n\n return {\n b: limit(b, 0, maxH),\n l: limit(l, 0, maxW),\n r: limit(r, 0, maxW),\n t: limit(t, 0, maxH),\n }\n}\n\nexport function boundingRects(element: MatrixElement) {\n const bounds = getBounds(element, false)\n const width = bounds.right - bounds.left\n const height = bounds.bottom - bounds.top\n const border = parseBorderWidth(element.options, width / 2, height / 2)\n\n return {\n inner: {\n h: height - border.t - border.b,\n w: width - border.l - border.r,\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n },\n outer: {\n h: height,\n w: width,\n x: bounds.left,\n y: bounds.top,\n },\n }\n}\n\nexport function inRange(\n element: MatrixElement | null,\n x: number | null,\n y: number | null,\n useFinalPosition: boolean\n) {\n const skipX = x === null\n const skipY = y === null\n const bounds = !element || (skipX && skipY) ? false : getBounds(element, useFinalPosition)\n\n return (\n bounds &&\n (skipX || (x >= bounds.left && x <= bounds.right)) &&\n (skipY || (y >= bounds.top && y <= bounds.bottom))\n )\n}\n","import type { MatrixOptions, MatrixProps } from '../types/index.esm'\n\nimport { Element } from 'chart.js'\nimport { addRoundedRectPath, toTRBLCorners } from 'chart.js/helpers'\n\nimport { boundingRects, inRange } from './helpers'\n\nexport default class MatrixElement extends Element<MatrixProps, MatrixOptions> {\n static readonly id = 'matrix'\n\n static override readonly defaults = {\n anchorX: 'center',\n anchorY: 'center',\n backgroundColor: undefined,\n borderColor: undefined,\n borderRadius: 0,\n borderWidth: undefined,\n height: 20,\n width: 20,\n }\n\n width = MatrixElement.defaults.width\n height = MatrixElement.defaults.height\n\n constructor(cfg: MatrixProps) {\n super()\n\n if (cfg) {\n Object.assign(this, cfg)\n }\n }\n\n draw(ctx: CanvasRenderingContext2D) {\n const options = this.options\n const { inner, outer } = boundingRects(this)\n const radius = toTRBLCorners(options.borderRadius)\n\n ctx.save()\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath()\n addRoundedRectPath(ctx, { h: outer.h, radius, w: outer.w, x: outer.x, y: outer.y })\n addRoundedRectPath(ctx, { h: inner.h, radius, w: inner.w, x: inner.x, y: inner.y })\n ctx.fillStyle = options.backgroundColor\n ctx.fill()\n ctx.fillStyle = options.borderColor\n ctx.fill('evenodd')\n } else {\n ctx.beginPath()\n addRoundedRectPath(ctx, { h: inner.h, radius, w: inner.w, x: inner.x, y: inner.y })\n ctx.fillStyle = options.backgroundColor\n ctx.fill()\n }\n\n ctx.restore()\n }\n\n inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, mouseY, useFinalPosition ?? false)\n }\n\n inXRange(mouseX: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, null, useFinalPosition ?? false)\n }\n\n inYRange(mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, null, mouseY, useFinalPosition ?? false)\n }\n\n getCenterPoint(useFinalPosition?: boolean) {\n const { x, y, width, height } = this.getProps(['x', 'y', 'width', 'height'], useFinalPosition)\n return {\n x: x + width / 2,\n y: y + height / 2,\n }\n }\n\n override tooltipPosition() {\n return this.getCenterPoint()\n }\n\n getRange(axis: 'x' | 'y') {\n return axis === 'x' ? this.width / 2 : this.height / 2\n }\n}\n","import { Chart } from 'chart.js'\n\nimport MatrixController from './controller.js'\nimport MatrixElement from './element.js'\n\nChart.register(MatrixController, MatrixElement)\n\nexport { MatrixController, MatrixElement }\n"],"names":["MatrixController","DatasetController","initialize","this","enableOptionSharing","super","update","mode","meta","_cachedMeta","updateElements","data","length","rects","start","count","reset","xScale","yScale","firstOpts","resolveDataElementOptions","sharedOptions","getSharedOptions","i","x","y","getBasePixel","parsed","getParsed","getPixelForValue","options","width","height","anchorX","anchorY","properties","resolveX","resolveY","updateElement","updateSharedOptions","draw","ctx","chart","getMeta","ilen","getBounds","element","useFinalPosition","getProps","bottom","left","right","top","limit","value","min","max","Math","id","version","defaults","animations","numbers","type","dataElementType","overrides","interaction","intersect","scales","offset","reverse","borderValue","boundingRects","bounds","border","maxW","maxH","borderWidth","t","r","b","l","isObject","parseBorderWidth","inner","h","w","outer","inRange","skipX","skipY","MatrixElement","Element","radius","toTRBLCorners","borderRadius","save","beginPath","addRoundedRectPath","fillStyle","backgroundColor","fill","borderColor","restore","mouseX","mouseY","inXRange","inYRange","getCenterPoint","tooltipPosition","getRange","axis","constructor","cfg","Object","assign","undefined","Chart","register"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
"description": "Chart.js module for creating matrix charts",
|
|
7
7
|
"devDependencies": {
|
|
8
8
|
"@astrojs/check": "^0.9.9",
|
|
9
|
-
"@astrojs/mdx": "^
|
|
10
|
-
"@astrojs/starlight": "^0.
|
|
9
|
+
"@astrojs/mdx": "^7.0.2",
|
|
10
|
+
"@astrojs/starlight": "^0.41.3",
|
|
11
11
|
"@biomejs/biome": "^2.4.14",
|
|
12
|
+
"@emnapi/core": "^1.11.2",
|
|
13
|
+
"@emnapi/runtime": "^1.11.2",
|
|
12
14
|
"@kurkle/configs": "^1.0.1",
|
|
13
|
-
"@napi-rs/canvas": "^0.
|
|
15
|
+
"@napi-rs/canvas": "^1.0.0",
|
|
14
16
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
15
17
|
"@rollup/plugin-json": "^6.0.0",
|
|
16
18
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
@@ -19,15 +21,15 @@
|
|
|
19
21
|
"@swc/cli": "^0.8.1",
|
|
20
22
|
"@swc/core": "^1.11.9",
|
|
21
23
|
"@types/jasmine": "^6.0.0",
|
|
22
|
-
"@types/node": "^
|
|
23
|
-
"astro": "^
|
|
24
|
+
"@types/node": "^26.0.0",
|
|
25
|
+
"astro": "^7.0.6",
|
|
24
26
|
"c8": "^11.0.0",
|
|
25
27
|
"chart.js": "^4.0.1",
|
|
26
28
|
"chartjs-adapter-date-fns": "^3.0.0",
|
|
27
29
|
"chartjs-test-utils": "^0.5.0",
|
|
28
|
-
"concurrently": "^
|
|
30
|
+
"concurrently": "^10.0.3",
|
|
29
31
|
"cross-env": "^10.1.0",
|
|
30
|
-
"date-fns": "^
|
|
32
|
+
"date-fns": "^4.3.0",
|
|
31
33
|
"globals": "^17.0.0",
|
|
32
34
|
"jasmine": "^6.2.0",
|
|
33
35
|
"jasmine-core": "^6.2.0",
|
|
@@ -44,7 +46,7 @@
|
|
|
44
46
|
"rollup-plugin-cleanup": "^3.2.1",
|
|
45
47
|
"rollup-plugin-istanbul": "^5.0.0",
|
|
46
48
|
"semantic-release": "^25.0.3",
|
|
47
|
-
"typescript": "^
|
|
49
|
+
"typescript": "^6.0.3"
|
|
48
50
|
},
|
|
49
51
|
"exports": {
|
|
50
52
|
"import": "./dist/chartjs-chart-matrix.esm.js",
|
|
@@ -102,5 +104,5 @@
|
|
|
102
104
|
"type": "module",
|
|
103
105
|
"types": "types/index.esm.d.ts",
|
|
104
106
|
"unpkg": "dist/chartjs-chart-matrix.min.js",
|
|
105
|
-
"version": "3.0.
|
|
107
|
+
"version": "3.0.5"
|
|
106
108
|
}
|