chartjs-chart-matrix 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* chartjs-chart-matrix v1.
|
|
2
|
+
* chartjs-chart-matrix v1.3.0
|
|
3
3
|
* https://chartjs-chart-matrix.pages.dev/
|
|
4
4
|
* (c) 2022 Jukka Kurkela
|
|
5
5
|
* Released under the MIT license
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { DatasetController, Element } from 'chart.js';
|
|
8
8
|
import { toTRBLCorners, addRoundedRectPath, isObject } from 'chart.js/helpers';
|
|
9
9
|
|
|
10
|
-
var version = "1.
|
|
10
|
+
var version = "1.3.0";
|
|
11
11
|
|
|
12
12
|
class MatrixController extends DatasetController {
|
|
13
13
|
initialize() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* chartjs-chart-matrix v1.
|
|
2
|
+
* chartjs-chart-matrix v1.3.0
|
|
3
3
|
* https://chartjs-chart-matrix.pages.dev/
|
|
4
4
|
* (c) 2022 Jukka Kurkela
|
|
5
5
|
* Released under the MIT license
|
|
@@ -10,11 +10,7 @@ typeof define === 'function' && define.amd ? define(['chart.js', 'chart.js/helpe
|
|
|
10
10
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Chart, global.Chart.helpers));
|
|
11
11
|
})(this, (function (Chart, helpers) { 'use strict';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var Chart__default = /*#__PURE__*/_interopDefaultLegacy(Chart);
|
|
16
|
-
|
|
17
|
-
var version = "1.2.1";
|
|
13
|
+
var version = "1.3.0";
|
|
18
14
|
|
|
19
15
|
class MatrixController extends Chart.DatasetController {
|
|
20
16
|
initialize() {
|
|
@@ -267,6 +263,6 @@ MatrixElement.defaults = {
|
|
|
267
263
|
height: 20
|
|
268
264
|
};
|
|
269
265
|
|
|
270
|
-
|
|
266
|
+
Chart.register(MatrixController, MatrixElement);
|
|
271
267
|
|
|
272
268
|
}));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* chartjs-chart-matrix v1.
|
|
2
|
+
* chartjs-chart-matrix v1.3.0
|
|
3
3
|
* https://chartjs-chart-matrix.pages.dev/
|
|
4
4
|
* (c) 2022 Jukka Kurkela
|
|
5
5
|
* Released under the MIT license
|
|
6
6
|
*/
|
|
7
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("chart.js"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["chart.js","chart.js/helpers"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Chart,t.Chart.helpers)}(this,(function(t,e){"use strict";
|
|
7
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("chart.js"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["chart.js","chart.js/helpers"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Chart,t.Chart.helpers)}(this,(function(t,e){"use strict";class i extends t.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,o){const s=this,h="reset"===o,{xScale:a,yScale:d}=s._cachedMeta,l=s.resolveDataElementOptions(e,o),u=s.getSharedOptions(o,t[e],l);for(let l=e;l<e+i;l++){const e=!h&&s.getParsed(l),i=h?a.getBasePixel():a.getPixelForValue(e.x),u=h?d.getBasePixel():d.getPixelForValue(e.y),c=s.resolveDataElementOptions(l,o),{width:g,height:p,anchorX:f,anchorY:x}=c,y={x:r(f,i,g),y:n(x,u,p),width:g,height:p,options:c};s.updateElement(t[l],l,y,o)}s.updateSharedOptions(u,o)}draw(){const t=this,e=t.getMeta().data||[];let i,r;for(i=0,r=e.length;i<r;++i)e[i].draw(t._ctx)}}function r(t,e,i){return"left"===t||"start"===t?e:"right"===t||"end"===t?e-i:e-i/2}function n(t,e,i){return"top"===t||"start"===t?e:"bottom"===t||"end"===t?e-i:e-i/2}function o(t,e){const{x:i,y:r,width:n,height:o}=t.getProps(["x","y","width","height"],e);return{left:i,top:r,right:i+n,bottom:r+o}}function s(t,e,i){return Math.max(Math.min(t,i),e)}function h(t){const i=o(t),r=i.right-i.left,n=i.bottom-i.top,h=function(t,i,r){const n=t.options.borderWidth;let o,h,a,d;return e.isObject(n)?(o=+n.top||0,h=+n.right||0,a=+n.bottom||0,d=+n.left||0):o=h=a=d=+n||0,{t:s(o,0,r),r:s(h,0,i),b:s(a,0,r),l:s(d,0,i)}}(t,r/2,n/2);return{outer:{x:i.left,y:i.top,w:r,h:n},inner:{x:i.left+h.l,y:i.top+h.t,w:r-h.l-h.r,h:n-h.t-h.b}}}function a(t,e,i,r){const n=null===e,s=null===i,h=!(!t||n&&s)&&o(t,r);return h&&(n||e>=h.left&&e<=h.right)&&(s||i>=h.top&&i<=h.bottom)}i.id="matrix",i.version="1.3.0",i.defaults={dataElementType:"matrix",animations:{numbers:{type:"number",properties:["x","y","width","height"]}}},i.overrides={interaction:{mode:"nearest",intersect:!0},scales:{x:{type:"linear",offset:!0},y:{type:"linear",reverse:!0}}};class d extends t.Element{constructor(t){super(),this.options=void 0,this.width=void 0,this.height=void 0,t&&Object.assign(this,t)}draw(t){const i=this.options,{inner:r,outer:n}=h(this),o=e.toTRBLCorners(i.borderRadius);t.save(),n.w!==r.w||n.h!==r.h?(t.beginPath(),e.addRoundedRectPath(t,{x:n.x,y:n.y,w:n.w,h:n.h,radius:o}),e.addRoundedRectPath(t,{x:r.x,y:r.y,w:r.w,h:r.h,radius:o}),t.fillStyle=i.backgroundColor,t.fill(),t.fillStyle=i.borderColor,t.fill("evenodd")):(t.beginPath(),e.addRoundedRectPath(t,{x:r.x,y:r.y,w:r.w,h:r.h,radius:o}),t.fillStyle=i.backgroundColor,t.fill()),t.restore()}inRange(t,e,i){return a(this,t,e,i)}inXRange(t,e){return a(this,t,null,e)}inYRange(t,e){return a(this,null,t,e)}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}}d.id="matrix",d.defaults={backgroundColor:void 0,borderColor:void 0,borderWidth:void 0,borderRadius:0,anchorX:"center",anchorY:"center",width:20,height:20},t.register(i,d)}));
|
|
8
8
|
//# sourceMappingURL=chartjs-chart-matrix.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartjs-chart-matrix.min.js","sources":["../src/controller.js","../src/element.js","../src/index.js"],"sourcesContent":["import {DatasetController} from 'chart.js';\nimport {version} from '../package.json';\n\nexport default class MatrixController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n\n update(mode) {\n const me = this;\n const meta = me._cachedMeta;\n\n me.updateElements(meta.data, 0, meta.data.length, mode);\n }\n\n updateElements(rects, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const {xScale, yScale} = me._cachedMeta;\n const firstOpts = me.resolveDataElementOptions(start, mode);\n const sharedOptions = me.getSharedOptions(mode, rects[start], firstOpts);\n\n for (let i = start; i < start + count; i++) {\n const parsed = !reset && me.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 = me.resolveDataElementOptions(i, mode);\n const {width, height, anchorX, anchorY} = options;\n const properties = {\n x: resolveX(anchorX, x, width),\n y: resolveY(anchorY, y, height),\n width,\n height,\n options\n };\n me.updateElement(rects[i], i, properties, mode);\n }\n\n me.updateSharedOptions(sharedOptions, mode);\n }\n\n draw() {\n const me = this;\n const data = me.getMeta().data || [];\n let i, ilen;\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n data[i].draw(me._ctx);\n }\n }\n}\n\nfunction resolveX(anchorX, x, width) {\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, y, height) {\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\nMatrixController.id = 'matrix';\n\nMatrixController.version = version;\n\nMatrixController.defaults = {\n dataElementType: 'matrix',\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height']\n }\n },\n};\n\nMatrixController.overrides = {\n interaction: {\n mode: 'nearest',\n intersect: true\n },\n\n scales: {\n x: {\n type: 'linear',\n offset: true\n },\n y: {\n type: 'linear',\n reverse: true\n }\n },\n};\n","import {Element} from 'chart.js';\nimport {isObject, addRoundedRectPath, toTRBLCorners} from 'chart.js/helpers';\n\n/**\n * Helper function to get the bounds of the rect\n * @param {MatrixElement} rect the rect\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the rect\n * @private\n */\nfunction getBounds(rect, useFinalPosition) {\n const {x, y, width, height} = rect.getProps(['x', 'y', 'width', 'height'], useFinalPosition);\n return {left: x, top: y, right: x + width, bottom: y + height};\n}\n\nfunction limit(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}\n\nfunction parseBorderWidth(rect, maxW, maxH) {\n const value = rect.options.borderWidth;\n let t, r, b, l;\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 t: limit(t, 0, maxH),\n r: limit(r, 0, maxW),\n b: limit(b, 0, maxH),\n l: limit(l, 0, maxW)\n };\n}\n\nfunction boundingRects(rect) {\n const bounds = getBounds(rect);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(rect, width / 2, height / 2);\n\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b\n }\n };\n}\n\nfunction inRange(rect, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const bounds = !rect || (skipX && skipY) ? false : getBounds(rect, useFinalPosition);\n\n return bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nexport default class MatrixElement extends Element {\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.width = undefined;\n this.height = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n draw(ctx) {\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, {x: outer.x, y: outer.y, w: outer.w, h: outer.h, radius});\n addRoundedRectPath(ctx, {x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius});\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, {x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius});\n ctx.fillStyle = options.backgroundColor;\n ctx.fill();\n }\n\n ctx.restore();\n }\n\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition) {\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 tooltipPosition() {\n return this.getCenterPoint();\n }\n\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nMatrixElement.id = 'matrix';\nMatrixElement.defaults = {\n backgroundColor: undefined,\n borderColor: undefined,\n borderWidth: undefined,\n borderRadius: 0,\n anchorX: 'center',\n anchorY: 'center',\n width: 20,\n height: 20\n};\n","import Chart from 'chart.js';\nimport MatrixController from './controller';\nimport MatrixElement from './element';\n\nChart.register(MatrixController, MatrixElement);\n"],"names":["MatrixController","DatasetController","initialize","this","enableOptionSharing","super","update","mode","meta","_cachedMeta","updateElements","data","length","rects","start","count","me","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","getMeta","ilen","_ctx","getBounds","rect","useFinalPosition","getProps","left","top","right","bottom","limit","value","min","max","Math","boundingRects","bounds","border","maxW","maxH","borderWidth","t","r","b","l","isObject","parseBorderWidth","outer","w","h","inner","inRange","skipX","skipY","id","version","defaults","dataElementType","animations","numbers","type","overrides","interaction","intersect","scales","offset","reverse","MatrixElement","Element","constructor","cfg","undefined","Object","assign","ctx","radius","toTRBLCorners","borderRadius","save","beginPath","addRoundedRectPath","fillStyle","backgroundColor","fill","borderColor","restore","mouseX","mouseY","inXRange","inYRange","getCenterPoint","tooltipPosition","getRange","axis","Chart","register"],"mappings":";;;;;;2YAGe,MAAMA,UAAyBC,EAAAA,kBAC5CC,aACEC,KAAKC,qBAAsB,EAC3BC,MAAMH,YACP,CAEDI,OAAOC,GACL,MACMC,EADKL,KACKM,YADLN,KAGRO,eAAeF,EAAKG,KAAM,EAAGH,EAAKG,KAAKC,OAAQL,EACnD,CAEDG,eAAeG,EAAOC,EAAOC,EAAOR,GAClC,MAAMS,EAAKb,KACLc,EAAiB,UAATV,GACRW,OAACA,EAAMC,OAAEA,GAAUH,EAAGP,YACtBW,EAAYJ,EAAGK,0BAA0BP,EAAOP,GAChDe,EAAgBN,EAAGO,iBAAiBhB,EAAMM,EAAMC,GAAQM,GAE9D,IAAK,IAAII,EAAIV,EAAOU,EAAIV,EAAQC,EAAOS,IAAK,CAC1C,MAAMC,GAAUR,GAASD,EAAGU,UAAUF,GAChCG,EAAIV,EAAQC,EAAOU,eAAiBV,EAAOW,iBAAiBJ,EAAOE,GACnEG,EAAIb,EAAQE,EAAOS,eAAiBT,EAAOU,iBAAiBJ,EAAOK,GACnEC,EAAUf,EAAGK,0BAA0BG,EAAGjB,IAC1CyB,MAACA,EAAKC,OAAEA,EAAMC,QAAEA,EAAOC,QAAEA,GAAWJ,EACpCK,EAAa,CACjBT,EAAGU,EAASH,EAASP,EAAGK,GACxBF,EAAGQ,EAASH,EAASL,EAAGG,GACxBD,QACAC,SACAF,WAEFf,EAAGuB,cAAc1B,EAAMW,GAAIA,EAAGY,EAAY7B,EAC3C,CAEDS,EAAGwB,oBAAoBlB,EAAef,EACvC,CAEDkC,OACE,MAAMzB,EAAKb,KACLQ,EAAOK,EAAG0B,UAAU/B,MAAQ,GAClC,IAAIa,EAAGmB,EAEP,IAAKnB,EAAI,EAAGmB,EAAOhC,EAAKC,OAAQY,EAAImB,IAAQnB,EAC1Cb,EAAKa,GAAGiB,KAAKzB,EAAG4B,KAEnB,EAGH,SAASP,EAASH,EAASP,EAAGK,GAC5B,MAAgB,SAAZE,GAAkC,UAAZA,EACjBP,EAEO,UAAZO,GAAmC,QAAZA,EAClBP,EAAIK,EAENL,EAAIK,EAAQ,CACrB,CAEA,SAASM,EAASH,EAASL,EAAGG,GAC5B,MAAgB,QAAZE,GAAiC,UAAZA,EAChBL,EAEO,WAAZK,GAAoC,QAAZA,EACnBL,EAAIG,EAENH,EAAIG,EAAS,CACtB,CC7DA,SAASY,EAAUC,EAAMC,GACvB,MAAMpB,EAACA,EAACG,EAAEA,EAACE,MAAEA,EAAKC,OAAEA,GAAUa,EAAKE,SAAS,CAAC,IAAK,IAAK,QAAS,UAAWD,GAC3E,MAAO,CAACE,KAAMtB,EAAGuB,IAAKpB,EAAGqB,MAAOxB,EAAIK,EAAOoB,OAAQtB,EAAIG,EACzD,CAEA,SAASoB,EAAMC,EAAOC,EAAKC,GACzB,OAAOC,KAAKD,IAAIC,KAAKF,IAAID,EAAOE,GAAMD,EACxC,CAuBA,SAASG,EAAcZ,GACrB,MAAMa,EAASd,EAAUC,GACnBd,EAAQ2B,EAAOR,MAAQQ,EAAOV,KAC9BhB,EAAS0B,EAAOP,OAASO,EAAOT,IAChCU,EAzBR,SAA0Bd,EAAMe,EAAMC,GACpC,MAAMR,EAAQR,EAAKf,QAAQgC,YAC3B,IAAIC,EAAGC,EAAGC,EAAGC,EAWb,OATIC,EAAAA,SAASd,IACXU,GAAKV,EAAMJ,KAAO,EAClBe,GAAKX,EAAMH,OAAS,EACpBe,GAAKZ,EAAMF,QAAU,EACrBe,GAAKb,EAAML,MAAQ,GAEnBe,EAAIC,EAAIC,EAAIC,GAAKb,GAAS,EAGrB,CACLU,EAAGX,EAAMW,EAAG,EAAGF,GACfG,EAAGZ,EAAMY,EAAG,EAAGJ,GACfK,EAAGb,EAAMa,EAAG,EAAGJ,GACfK,EAAGd,EAAMc,EAAG,EAAGN,GAEnB,CAMiBQ,CAAiBvB,EAAMd,EAAQ,EAAGC,EAAS,GAE1D,MAAO,CACLqC,MAAO,CACL3C,EAAGgC,EAAOV,KACVnB,EAAG6B,EAAOT,IACVqB,EAAGvC,EACHwC,EAAGvC,GAELwC,MAAO,CACL9C,EAAGgC,EAAOV,KAAOW,EAAOO,EACxBrC,EAAG6B,EAAOT,IAAMU,EAAOI,EACvBO,EAAGvC,EAAQ4B,EAAOO,EAAIP,EAAOK,EAC7BO,EAAGvC,EAAS2B,EAAOI,EAAIJ,EAAOM,GAGpC,CAEA,SAASQ,EAAQ5B,EAAMnB,EAAGG,EAAGiB,GAC3B,MAAM4B,EAAc,OAANhD,EACRiD,EAAc,OAAN9C,EACR6B,KAAUb,GAAS6B,GAASC,IAAiB/B,EAAUC,EAAMC,GAEnE,OAAOY,IACHgB,GAAShD,GAAKgC,EAAOV,MAAQtB,GAAKgC,EAAOR,SACzCyB,GAAS9C,GAAK6B,EAAOT,KAAOpB,GAAK6B,EAAOP,OAC9C,CDGApD,EAAiB6E,GAAK,SAEtB7E,EAAiB8E,gBAEjB9E,EAAiB+E,SAAW,CAC1BC,gBAAiB,SAEjBC,WAAY,CACVC,QAAS,CACPC,KAAM,SACN/C,WAAY,CAAC,IAAK,IAAK,QAAS,aAKtCpC,EAAiBoF,UAAY,CAC3BC,YAAa,CACX9E,KAAM,UACN+E,WAAW,GAGbC,OAAQ,CACN5D,EAAG,CACDwD,KAAM,SACNK,QAAQ,GAEV1D,EAAG,CACDqD,KAAM,SACNM,SAAS,KC7BA,MAAMC,UAAsBC,EAAAA,QACzCC,YAAYC,GACVxF,QAEAF,KAAK4B,aAAU+D,EACf3F,KAAK6B,WAAQ8D,EACb3F,KAAK8B,YAAS6D,EAEVD,GACFE,OAAOC,OAAO7F,KAAM0F,EAEvB,CAEDpD,KAAKwD,GACH,MAAMlE,EAAU5B,KAAK4B,SACf0C,MAACA,EAAKH,MAAEA,GAASZ,EAAcvD,MAC/B+F,EAASC,EAAAA,cAAcpE,EAAQqE,cAErCH,EAAII,OAEA/B,EAAMC,IAAME,EAAMF,GAAKD,EAAME,IAAMC,EAAMD,GAC3CyB,EAAIK,YACJC,EAAkBA,mBAACN,EAAK,CAACtE,EAAG2C,EAAM3C,EAAGG,EAAGwC,EAAMxC,EAAGyC,EAAGD,EAAMC,EAAGC,EAAGF,EAAME,EAAG0B,WACzEK,EAAkBA,mBAACN,EAAK,CAACtE,EAAG8C,EAAM9C,EAAGG,EAAG2C,EAAM3C,EAAGyC,EAAGE,EAAMF,EAAGC,EAAGC,EAAMD,EAAG0B,WACzED,EAAIO,UAAYzE,EAAQ0E,gBACxBR,EAAIS,OACJT,EAAIO,UAAYzE,EAAQ4E,YACxBV,EAAIS,KAAK,aAETT,EAAIK,YACJC,EAAkBA,mBAACN,EAAK,CAACtE,EAAG8C,EAAM9C,EAAGG,EAAG2C,EAAM3C,EAAGyC,EAAGE,EAAMF,EAAGC,EAAGC,EAAMD,EAAG0B,WACzED,EAAIO,UAAYzE,EAAQ0E,gBACxBR,EAAIS,QAGNT,EAAIW,SACL,CAEDlC,QAAQmC,EAAQC,EAAQ/D,GACtB,OAAO2B,EAAQvE,KAAM0G,EAAQC,EAAQ/D,EACtC,CAEDgE,SAASF,EAAQ9D,GACf,OAAO2B,EAAQvE,KAAM0G,EAAQ,KAAM9D,EACpC,CAEDiE,SAASF,EAAQ/D,GACf,OAAO2B,EAAQvE,KAAM,KAAM2G,EAAQ/D,EACpC,CAEDkE,eAAelE,GACb,MAAMpB,EAACA,EAACG,EAAEA,EAACE,MAAEA,EAAKC,OAAEA,GAAU9B,KAAK6C,SAAS,CAAC,IAAK,IAAK,QAAS,UAAWD,GAC3E,MAAO,CACLpB,EAAGA,EAAIK,EAAQ,EACfF,EAAGA,EAAIG,EAAS,EAEnB,CAEDiF,kBACE,OAAO/G,KAAK8G,gBACb,CAEDE,SAASC,GACP,MAAgB,MAATA,EAAejH,KAAK6B,MAAQ,EAAI7B,KAAK8B,OAAS,CACtD,EAGHyD,EAAcb,GAAK,SACnBa,EAAcX,SAAW,CACvB0B,qBAAiBX,EACjBa,iBAAab,EACb/B,iBAAa+B,EACbM,aAAc,EACdlE,QAAS,SACTC,QAAS,SACTH,MAAO,GACPC,OAAQ,IChJVoF,EAAAA,QAAMC,SAAStH,EAAkB0F"}
|
|
1
|
+
{"version":3,"file":"chartjs-chart-matrix.min.js","sources":["../src/controller.js","../src/element.js","../src/index.js"],"sourcesContent":["import {DatasetController} from 'chart.js';\nimport {version} from '../package.json';\n\nexport default class MatrixController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n\n update(mode) {\n const me = this;\n const meta = me._cachedMeta;\n\n me.updateElements(meta.data, 0, meta.data.length, mode);\n }\n\n updateElements(rects, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const {xScale, yScale} = me._cachedMeta;\n const firstOpts = me.resolveDataElementOptions(start, mode);\n const sharedOptions = me.getSharedOptions(mode, rects[start], firstOpts);\n\n for (let i = start; i < start + count; i++) {\n const parsed = !reset && me.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 = me.resolveDataElementOptions(i, mode);\n const {width, height, anchorX, anchorY} = options;\n const properties = {\n x: resolveX(anchorX, x, width),\n y: resolveY(anchorY, y, height),\n width,\n height,\n options\n };\n me.updateElement(rects[i], i, properties, mode);\n }\n\n me.updateSharedOptions(sharedOptions, mode);\n }\n\n draw() {\n const me = this;\n const data = me.getMeta().data || [];\n let i, ilen;\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n data[i].draw(me._ctx);\n }\n }\n}\n\nfunction resolveX(anchorX, x, width) {\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, y, height) {\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\nMatrixController.id = 'matrix';\n\nMatrixController.version = version;\n\nMatrixController.defaults = {\n dataElementType: 'matrix',\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height']\n }\n },\n};\n\nMatrixController.overrides = {\n interaction: {\n mode: 'nearest',\n intersect: true\n },\n\n scales: {\n x: {\n type: 'linear',\n offset: true\n },\n y: {\n type: 'linear',\n reverse: true\n }\n },\n};\n","import {Element} from 'chart.js';\nimport {isObject, addRoundedRectPath, toTRBLCorners} from 'chart.js/helpers';\n\n/**\n * Helper function to get the bounds of the rect\n * @param {MatrixElement} rect the rect\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the rect\n * @private\n */\nfunction getBounds(rect, useFinalPosition) {\n const {x, y, width, height} = rect.getProps(['x', 'y', 'width', 'height'], useFinalPosition);\n return {left: x, top: y, right: x + width, bottom: y + height};\n}\n\nfunction limit(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}\n\nfunction parseBorderWidth(rect, maxW, maxH) {\n const value = rect.options.borderWidth;\n let t, r, b, l;\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 t: limit(t, 0, maxH),\n r: limit(r, 0, maxW),\n b: limit(b, 0, maxH),\n l: limit(l, 0, maxW)\n };\n}\n\nfunction boundingRects(rect) {\n const bounds = getBounds(rect);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(rect, width / 2, height / 2);\n\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b\n }\n };\n}\n\nfunction inRange(rect, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const bounds = !rect || (skipX && skipY) ? false : getBounds(rect, useFinalPosition);\n\n return bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nexport default class MatrixElement extends Element {\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.width = undefined;\n this.height = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n draw(ctx) {\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, {x: outer.x, y: outer.y, w: outer.w, h: outer.h, radius});\n addRoundedRectPath(ctx, {x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius});\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, {x: inner.x, y: inner.y, w: inner.w, h: inner.h, radius});\n ctx.fillStyle = options.backgroundColor;\n ctx.fill();\n }\n\n ctx.restore();\n }\n\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition) {\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 tooltipPosition() {\n return this.getCenterPoint();\n }\n\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nMatrixElement.id = 'matrix';\nMatrixElement.defaults = {\n backgroundColor: undefined,\n borderColor: undefined,\n borderWidth: undefined,\n borderRadius: 0,\n anchorX: 'center',\n anchorY: 'center',\n width: 20,\n height: 20\n};\n","import Chart from 'chart.js';\nimport MatrixController from './controller';\nimport MatrixElement from './element';\n\nChart.register(MatrixController, MatrixElement);\n"],"names":["MatrixController","DatasetController","initialize","this","enableOptionSharing","super","update","mode","meta","_cachedMeta","updateElements","data","length","rects","start","count","me","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","getMeta","ilen","_ctx","getBounds","rect","useFinalPosition","getProps","left","top","right","bottom","limit","value","min","max","Math","boundingRects","bounds","border","maxW","maxH","borderWidth","t","r","b","l","isObject","parseBorderWidth","outer","w","h","inner","inRange","skipX","skipY","id","version","defaults","dataElementType","animations","numbers","type","overrides","interaction","intersect","scales","offset","reverse","MatrixElement","Element","constructor","cfg","undefined","Object","assign","ctx","radius","toTRBLCorners","borderRadius","save","beginPath","addRoundedRectPath","fillStyle","backgroundColor","fill","borderColor","restore","mouseX","mouseY","inXRange","inYRange","getCenterPoint","tooltipPosition","getRange","axis","Chart","register"],"mappings":";;;;;;wTAGe,MAAMA,UAAyBC,EAAAA,kBAC5CC,aACEC,KAAKC,qBAAsB,EAC3BC,MAAMH,YACP,CAEDI,OAAOC,GACL,MACMC,EADKL,KACKM,YADLN,KAGRO,eAAeF,EAAKG,KAAM,EAAGH,EAAKG,KAAKC,OAAQL,EACnD,CAEDG,eAAeG,EAAOC,EAAOC,EAAOR,GAClC,MAAMS,EAAKb,KACLc,EAAiB,UAATV,GACRW,OAACA,EAAMC,OAAEA,GAAUH,EAAGP,YACtBW,EAAYJ,EAAGK,0BAA0BP,EAAOP,GAChDe,EAAgBN,EAAGO,iBAAiBhB,EAAMM,EAAMC,GAAQM,GAE9D,IAAK,IAAII,EAAIV,EAAOU,EAAIV,EAAQC,EAAOS,IAAK,CAC1C,MAAMC,GAAUR,GAASD,EAAGU,UAAUF,GAChCG,EAAIV,EAAQC,EAAOU,eAAiBV,EAAOW,iBAAiBJ,EAAOE,GACnEG,EAAIb,EAAQE,EAAOS,eAAiBT,EAAOU,iBAAiBJ,EAAOK,GACnEC,EAAUf,EAAGK,0BAA0BG,EAAGjB,IAC1CyB,MAACA,EAAKC,OAAEA,EAAMC,QAAEA,EAAOC,QAAEA,GAAWJ,EACpCK,EAAa,CACjBT,EAAGU,EAASH,EAASP,EAAGK,GACxBF,EAAGQ,EAASH,EAASL,EAAGG,GACxBD,QACAC,SACAF,WAEFf,EAAGuB,cAAc1B,EAAMW,GAAIA,EAAGY,EAAY7B,EAC3C,CAEDS,EAAGwB,oBAAoBlB,EAAef,EACvC,CAEDkC,OACE,MAAMzB,EAAKb,KACLQ,EAAOK,EAAG0B,UAAU/B,MAAQ,GAClC,IAAIa,EAAGmB,EAEP,IAAKnB,EAAI,EAAGmB,EAAOhC,EAAKC,OAAQY,EAAImB,IAAQnB,EAC1Cb,EAAKa,GAAGiB,KAAKzB,EAAG4B,KAEnB,EAGH,SAASP,EAASH,EAASP,EAAGK,GAC5B,MAAgB,SAAZE,GAAkC,UAAZA,EACjBP,EAEO,UAAZO,GAAmC,QAAZA,EAClBP,EAAIK,EAENL,EAAIK,EAAQ,CACrB,CAEA,SAASM,EAASH,EAASL,EAAGG,GAC5B,MAAgB,QAAZE,GAAiC,UAAZA,EAChBL,EAEO,WAAZK,GAAoC,QAAZA,EACnBL,EAAIG,EAENH,EAAIG,EAAS,CACtB,CC7DA,SAASY,EAAUC,EAAMC,GACvB,MAAMpB,EAACA,EAACG,EAAEA,EAACE,MAAEA,EAAKC,OAAEA,GAAUa,EAAKE,SAAS,CAAC,IAAK,IAAK,QAAS,UAAWD,GAC3E,MAAO,CAACE,KAAMtB,EAAGuB,IAAKpB,EAAGqB,MAAOxB,EAAIK,EAAOoB,OAAQtB,EAAIG,EACzD,CAEA,SAASoB,EAAMC,EAAOC,EAAKC,GACzB,OAAOC,KAAKD,IAAIC,KAAKF,IAAID,EAAOE,GAAMD,EACxC,CAuBA,SAASG,EAAcZ,GACrB,MAAMa,EAASd,EAAUC,GACnBd,EAAQ2B,EAAOR,MAAQQ,EAAOV,KAC9BhB,EAAS0B,EAAOP,OAASO,EAAOT,IAChCU,EAzBR,SAA0Bd,EAAMe,EAAMC,GACpC,MAAMR,EAAQR,EAAKf,QAAQgC,YAC3B,IAAIC,EAAGC,EAAGC,EAAGC,EAWb,OATIC,EAAAA,SAASd,IACXU,GAAKV,EAAMJ,KAAO,EAClBe,GAAKX,EAAMH,OAAS,EACpBe,GAAKZ,EAAMF,QAAU,EACrBe,GAAKb,EAAML,MAAQ,GAEnBe,EAAIC,EAAIC,EAAIC,GAAKb,GAAS,EAGrB,CACLU,EAAGX,EAAMW,EAAG,EAAGF,GACfG,EAAGZ,EAAMY,EAAG,EAAGJ,GACfK,EAAGb,EAAMa,EAAG,EAAGJ,GACfK,EAAGd,EAAMc,EAAG,EAAGN,GAEnB,CAMiBQ,CAAiBvB,EAAMd,EAAQ,EAAGC,EAAS,GAE1D,MAAO,CACLqC,MAAO,CACL3C,EAAGgC,EAAOV,KACVnB,EAAG6B,EAAOT,IACVqB,EAAGvC,EACHwC,EAAGvC,GAELwC,MAAO,CACL9C,EAAGgC,EAAOV,KAAOW,EAAOO,EACxBrC,EAAG6B,EAAOT,IAAMU,EAAOI,EACvBO,EAAGvC,EAAQ4B,EAAOO,EAAIP,EAAOK,EAC7BO,EAAGvC,EAAS2B,EAAOI,EAAIJ,EAAOM,GAGpC,CAEA,SAASQ,EAAQ5B,EAAMnB,EAAGG,EAAGiB,GAC3B,MAAM4B,EAAc,OAANhD,EACRiD,EAAc,OAAN9C,EACR6B,KAAUb,GAAS6B,GAASC,IAAiB/B,EAAUC,EAAMC,GAEnE,OAAOY,IACHgB,GAAShD,GAAKgC,EAAOV,MAAQtB,GAAKgC,EAAOR,SACzCyB,GAAS9C,GAAK6B,EAAOT,KAAOpB,GAAK6B,EAAOP,OAC9C,CDGApD,EAAiB6E,GAAK,SAEtB7E,EAAiB8E,gBAEjB9E,EAAiB+E,SAAW,CAC1BC,gBAAiB,SAEjBC,WAAY,CACVC,QAAS,CACPC,KAAM,SACN/C,WAAY,CAAC,IAAK,IAAK,QAAS,aAKtCpC,EAAiBoF,UAAY,CAC3BC,YAAa,CACX9E,KAAM,UACN+E,WAAW,GAGbC,OAAQ,CACN5D,EAAG,CACDwD,KAAM,SACNK,QAAQ,GAEV1D,EAAG,CACDqD,KAAM,SACNM,SAAS,KC7BA,MAAMC,UAAsBC,EAAAA,QACzCC,YAAYC,GACVxF,QAEAF,KAAK4B,aAAU+D,EACf3F,KAAK6B,WAAQ8D,EACb3F,KAAK8B,YAAS6D,EAEVD,GACFE,OAAOC,OAAO7F,KAAM0F,EAEvB,CAEDpD,KAAKwD,GACH,MAAMlE,EAAU5B,KAAK4B,SACf0C,MAACA,EAAKH,MAAEA,GAASZ,EAAcvD,MAC/B+F,EAASC,EAAAA,cAAcpE,EAAQqE,cAErCH,EAAII,OAEA/B,EAAMC,IAAME,EAAMF,GAAKD,EAAME,IAAMC,EAAMD,GAC3CyB,EAAIK,YACJC,EAAkBA,mBAACN,EAAK,CAACtE,EAAG2C,EAAM3C,EAAGG,EAAGwC,EAAMxC,EAAGyC,EAAGD,EAAMC,EAAGC,EAAGF,EAAME,EAAG0B,WACzEK,EAAkBA,mBAACN,EAAK,CAACtE,EAAG8C,EAAM9C,EAAGG,EAAG2C,EAAM3C,EAAGyC,EAAGE,EAAMF,EAAGC,EAAGC,EAAMD,EAAG0B,WACzED,EAAIO,UAAYzE,EAAQ0E,gBACxBR,EAAIS,OACJT,EAAIO,UAAYzE,EAAQ4E,YACxBV,EAAIS,KAAK,aAETT,EAAIK,YACJC,EAAkBA,mBAACN,EAAK,CAACtE,EAAG8C,EAAM9C,EAAGG,EAAG2C,EAAM3C,EAAGyC,EAAGE,EAAMF,EAAGC,EAAGC,EAAMD,EAAG0B,WACzED,EAAIO,UAAYzE,EAAQ0E,gBACxBR,EAAIS,QAGNT,EAAIW,SACL,CAEDlC,QAAQmC,EAAQC,EAAQ/D,GACtB,OAAO2B,EAAQvE,KAAM0G,EAAQC,EAAQ/D,EACtC,CAEDgE,SAASF,EAAQ9D,GACf,OAAO2B,EAAQvE,KAAM0G,EAAQ,KAAM9D,EACpC,CAEDiE,SAASF,EAAQ/D,GACf,OAAO2B,EAAQvE,KAAM,KAAM2G,EAAQ/D,EACpC,CAEDkE,eAAelE,GACb,MAAMpB,EAACA,EAACG,EAAEA,EAACE,MAAEA,EAAKC,OAAEA,GAAU9B,KAAK6C,SAAS,CAAC,IAAK,IAAK,QAAS,UAAWD,GAC3E,MAAO,CACLpB,EAAGA,EAAIK,EAAQ,EACfF,EAAGA,EAAIG,EAAS,EAEnB,CAEDiF,kBACE,OAAO/G,KAAK8G,gBACb,CAEDE,SAASC,GACP,MAAgB,MAATA,EAAejH,KAAK6B,MAAQ,EAAI7B,KAAK8B,OAAS,CACtD,EAGHyD,EAAcb,GAAK,SACnBa,EAAcX,SAAW,CACvB0B,qBAAiBX,EACjBa,iBAAab,EACb/B,iBAAa+B,EACbM,aAAc,EACdlE,QAAS,SACTC,QAAS,SACTH,MAAO,GACPC,OAAQ,IChJVoF,EAAMC,SAAStH,EAAkB0F"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chartjs-chart-matrix",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Chart.js module for creating matrix charts",
|
|
5
5
|
"main": "dist/chartjs-chart-matrix.js",
|
|
6
6
|
"module": "dist/chartjs-chart-matrix.esm.js",
|
|
@@ -39,14 +39,18 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://chartjs-chart-matrix.pages.dev/",
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@rollup/plugin-
|
|
42
|
+
"@babel/core": "^7.20.2",
|
|
43
|
+
"@babel/preset-env": "^7.20.2",
|
|
44
|
+
"@rollup/plugin-commonjs": "^23.0.2",
|
|
45
|
+
"@rollup/plugin-json": "^5.0.1",
|
|
46
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
47
|
+
"@rollup/plugin-terser": "^0.1.0",
|
|
45
48
|
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
|
46
49
|
"@typescript-eslint/parser": "^5.6.0",
|
|
47
|
-
"
|
|
50
|
+
"babel-loader": "^8.3.0",
|
|
51
|
+
"chart.js": "^4.0.1",
|
|
48
52
|
"chartjs-adapter-date-fns": "^2.0.0",
|
|
49
|
-
"chartjs-test-utils": "^0.
|
|
53
|
+
"chartjs-test-utils": "^0.5.0",
|
|
50
54
|
"concurrently": "^7.4.0",
|
|
51
55
|
"cross-env": "^7.0.3",
|
|
52
56
|
"date-fns": "^2.19.0",
|
|
@@ -60,22 +64,22 @@
|
|
|
60
64
|
"karma-chrome-launcher": "^3.1.0",
|
|
61
65
|
"karma-coverage": "^2.0.3",
|
|
62
66
|
"karma-firefox-launcher": "^2.1.0",
|
|
63
|
-
"karma-jasmine": "^
|
|
64
|
-
"karma-jasmine-html-reporter": "^
|
|
67
|
+
"karma-jasmine": "^5.1.0",
|
|
68
|
+
"karma-jasmine-html-reporter": "^2.0.0",
|
|
65
69
|
"karma-rollup-preprocessor": "7.0.7",
|
|
66
|
-
"karma-spec-reporter": "0.0.
|
|
70
|
+
"karma-spec-reporter": "^0.0.34",
|
|
67
71
|
"pixelmatch": "^5.2.1",
|
|
68
|
-
"rollup": "^
|
|
72
|
+
"rollup": "^3.3.0",
|
|
69
73
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
70
|
-
"rollup-plugin-istanbul": "^
|
|
71
|
-
"rollup-plugin-terser": "^7.0.2",
|
|
74
|
+
"rollup-plugin-istanbul": "^4.0.0",
|
|
72
75
|
"typescript": "^4.5.2",
|
|
73
|
-
"vuepress": "^1.
|
|
76
|
+
"vuepress": "^1.9.7",
|
|
74
77
|
"vuepress-plugin-flexsearch": "^0.3.0",
|
|
75
78
|
"vuepress-plugin-redirect": "^1.2.5",
|
|
76
|
-
"vuepress-theme-chartjs": "^0.2.0"
|
|
79
|
+
"vuepress-theme-chartjs": "^0.2.0",
|
|
80
|
+
"webpack": "^4.46.0"
|
|
77
81
|
},
|
|
78
82
|
"peerDependencies": {
|
|
79
|
-
"chart.js": "
|
|
83
|
+
"chart.js": ">=3.0.0"
|
|
80
84
|
}
|
|
81
85
|
}
|
package/types/index.esm.d.ts
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BorderRadius,
|
|
3
|
+
CartesianScaleTypeRegistry,
|
|
3
4
|
Chart,
|
|
4
|
-
ChartType,
|
|
5
5
|
ChartComponent,
|
|
6
|
+
ChartType,
|
|
6
7
|
CommonElementOptions,
|
|
7
8
|
CommonHoverOptions,
|
|
8
9
|
ControllerDatasetOptions,
|
|
10
|
+
CoreChartOptions,
|
|
9
11
|
DatasetController,
|
|
10
12
|
Element,
|
|
11
13
|
ScriptableAndArrayOptions,
|
|
12
14
|
ScriptableContext,
|
|
13
15
|
VisualElement
|
|
14
16
|
} from 'chart.js';
|
|
15
|
-
|
|
17
|
+
|
|
18
|
+
type AnyObject = Record<string, unknown>;
|
|
16
19
|
|
|
17
20
|
export interface MatrixControllerDatasetOptions<TType extends ChartType>
|
|
18
21
|
extends ControllerDatasetOptions,
|