diff --git a/package.json b/package.json index 9375d1b..0d18762 100644 --- a/package.json +++ b/package.json @@ -37,12 +37,12 @@ "last 2 Firefox versions" ], "peerDependencies": { - "@sgratzl/chartjs-esm-facade": "^3.0.0-alpha.2", + "@sgratzl/chartjs-esm-facade": "^3.0.0-alpha.20", "chart.js": "^3.0.0-alpha.2" }, "devDependencies": { "@rollup/plugin-commonjs": "^14.0.0", - "@sgratzl/chartjs-esm-facade": "^3.0.0-alpha.2", + "@sgratzl/chartjs-esm-facade": "^3.0.0-alpha.20", "@types/d3-selection": "^1.4.2", "@types/jest": "^26.0.5", "@types/jest-image-snapshot": "^3.1.0", @@ -50,6 +50,7 @@ "@typescript-eslint/eslint-plugin": "^3.6.1", "@typescript-eslint/parser": "^3.6.1", "@yarnpkg/pnpify": "^2.1.0", + "canvas": "^2.6.1", "chart.js": "^3.0.0-alpha.2", "eslint": "^7.5.0", "eslint-config-prettier": "^6.11.0", @@ -60,6 +61,7 @@ "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-react": "^7.20.3", "eslint-plugin-react-hooks": "^4.0.8", + "jest-environment-jsdom-sixteen": "^1.0.3", "jest-image-snapshot": "^4.0.2", "prettier": "^2.0.5", "release-it": "^13.6.5", diff --git a/src/controllers/EulerDiagramController.ts b/src/controllers/EulerDiagramController.ts index bbcead8..41460da 100644 --- a/src/controllers/EulerDiagramController.ts +++ b/src/controllers/EulerDiagramController.ts @@ -1,6 +1,6 @@ -import { Chart, ChartConfiguration, ContextType } from '@sgratzl/chartjs-esm-facade'; +import { Chart, IChartDataset, IChartConfiguration, ChartItem } from '@sgratzl/chartjs-esm-facade'; import { IVennDiagramLayout } from '../model/layout'; -import { VennDiagramController } from './VennDiagramController'; +import { VennDiagramController, IVennDiagramControllerDatasetOptions } from './VennDiagramController'; import euler from '../model/euler'; import { IBoundingBox } from '../model/interfaces'; import patchController from './patchController'; @@ -16,10 +16,21 @@ export class EulerDiagramController extends VennDiagramController { } } -export class EulerDiagramChart extends Chart { +export type IEulerDiagramControllerDatasetOptions = IVennDiagramControllerDatasetOptions; + +export type IEulerDiagramControllerDataset = IChartDataset; + +export type IEulerDiagramControllerConfiguration = IChartConfiguration< + 'euler', + T, + L, + IEulerDiagramControllerDataset +>; + +export class EulerDiagramChart extends Chart> { static readonly id = EulerDiagramController.id; - constructor(item: ContextType, config: Omit) { - super(item, patchController(config, EulerDiagramController, ArcSlice)); + constructor(item: ChartItem, config: Omit, 'type'>) { + super(item, patchController('euler', config, EulerDiagramController, ArcSlice)); } } diff --git a/src/controllers/VennDiagramController.ts b/src/controllers/VennDiagramController.ts index e4c2fa6..8834753 100644 --- a/src/controllers/VennDiagramController.ts +++ b/src/controllers/VennDiagramController.ts @@ -4,8 +4,12 @@ import { BarController, ITooltipItem, UpdateMode, - ContextType, - ChartConfiguration, + ChartItem, + ScriptableAndArrayOptions, + IControllerDatasetOptions, + ICommonHoverOptions, + IChartDataset, + IChartConfiguration, } from '@sgratzl/chartjs-esm-facade'; import { ArcSlice, IArcSliceOptions } from '../elements'; import layout, { IVennDiagramLayout } from '../model/layout'; @@ -128,10 +132,24 @@ export class VennDiagramController extends DatasetController { } } -export class VennDiagramChart extends Chart { +export interface IVennDiagramControllerDatasetOptions + extends IControllerDatasetOptions, + ScriptableAndArrayOptions, + ScriptableAndArrayOptions {} + +export type IVennDiagramControllerDataset = IChartDataset; + +export type IVennDiagramControllerConfiguration = IChartConfiguration< + 'venn', + T, + L, + IVennDiagramControllerDataset +>; + +export class VennDiagramChart extends Chart> { static readonly id = VennDiagramController.id; - constructor(item: ContextType, config: Omit) { - super(item, patchController(config, VennDiagramController, ArcSlice)); + constructor(item: ChartItem, config: Omit, 'type'>) { + super(item, patchController('venn', config, VennDiagramController, ArcSlice)); } } diff --git a/src/controllers/patchController.ts b/src/controllers/patchController.ts index 8142423..b9c00b4 100644 --- a/src/controllers/patchController.ts +++ b/src/controllers/patchController.ts @@ -1,15 +1,16 @@ -import { IRegistryElement, registry, ChartConfiguration } from '@sgratzl/chartjs-esm-facade'; +import { IChartComponentLike, registry, IDatasetControllerChartComponent } from '@sgratzl/chartjs-esm-facade'; -export default function patchController( - config: Omit, - controller: IRegistryElement, - elements: IRegistryElement | IRegistryElement[] = [], - scales: IRegistryElement | IRegistryElement[] = [] -): ChartConfiguration { +export default function patchController( + type: TYPE, + config: T, + controller: IDatasetControllerChartComponent, + elements: IChartComponentLike = [], + scales: IChartComponentLike = [] +): T & { type: TYPE } { registry.addControllers(controller); registry.addControllers(elements); registry.addScales(scales); - const r = config as ChartConfiguration; - r.type = controller.id; - return r; + const c = config as any; + c.type = type; + return c; } diff --git a/src/elements/ArcSlice.ts b/src/elements/ArcSlice.ts index ffaa104..4d696c8 100644 --- a/src/elements/ArcSlice.ts +++ b/src/elements/ArcSlice.ts @@ -1,16 +1,11 @@ -import { Element, Rectangle, IVisualElement } from '@sgratzl/chartjs-esm-facade'; +import { Element, Rectangle, IVisualElement, ICommonOptions } from '@sgratzl/chartjs-esm-facade'; import { ITextArcSlice, ICircle, IEllipse, isEllipse } from '../model/interfaces'; import { generateArcSlicePath } from '../model/generate'; import { dist, DEG2RAD } from '../model/math'; -export interface IArcSliceOptions { - backgroundColor: string; - borderColor: string; - borderWidth: number; -} +export interface IArcSliceOptions extends ICommonOptions {} export interface IArcSliceProps extends ITextArcSlice { - options?: IArcSliceOptions; refs: (ICircle | IEllipse)[]; } @@ -104,16 +99,43 @@ export class ArcSlice extends Element implemen const props = this.getProps(['x1', 'y1', 'arcs', 'refs']); ctx.beginPath(); - const path = new Path2D(generateArcSlicePath(props, props.refs)); + let path: Path2D | undefined = undefined; + if (window.Path2D) { + path = new Path2D(generateArcSlicePath(props, props.refs)); + } else { + // try old school + // M ${s.x1 - p},${s.y1 - p} ${s.arcs + // .map((arc) => { + // return `A ${rx - p} ${ry - p} ${rot} ${arc.large ? 1 : 0} ${arc.sweep ? 1 : 0} ${arc.x2 - p} ${arc.y2 - p}`; + // } + ctx.beginPath(); + ctx.moveTo(props.x1, props.y1); + for (const arc of props.arcs) { + const ref = props.refs[arc.ref]; + const rx = isEllipse(ref) ? ref.rx : ref.r; + const ry = isEllipse(ref) ? ref.ry : ref.r; + const rot = isEllipse(ref) ? ref.rotation : 0; + // TODO angles + ctx.ellipse(ref.cx, ref.cy, rx, ry, rot, 0, Math.PI * 2, !arc.sweep); + } + } if (options.backgroundColor) { ctx.fillStyle = options.backgroundColor; - ctx.fill(path); + if (path) { + ctx.fill(path); + } else { + ctx.fill(); + } } if (options.borderColor) { ctx.strokeStyle = options.borderColor; ctx.lineWidth = options.borderWidth; - ctx.stroke(path); + if (path) { + ctx.stroke(path); + } else { + ctx.stroke(); + } } ctx.restore(); diff --git a/yarn.lock b/yarn.lock index 9527fc6..a590a71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1287,6 +1287,19 @@ __metadata: languageName: node linkType: hard +"@jest/fake-timers@npm:^25.1.0": + version: 25.5.0 + resolution: "@jest/fake-timers@npm:25.5.0" + dependencies: + "@jest/types": ^25.5.0 + jest-message-util: ^25.5.0 + jest-mock: ^25.5.0 + jest-util: ^25.5.0 + lolex: ^5.0.0 + checksum: 135e26534750f947d816d2537f235f0715564a2987c170c7ff5b79be30ba1c8277bf72a8e2d6b12be602305bc8fba9696238642b5498a2f3cc8c42f7e8130c12 + languageName: node + linkType: hard + "@jest/reporters@npm:^24.9.0": version: 24.9.0 resolution: "@jest/reporters@npm:24.9.0" @@ -1661,17 +1674,15 @@ __metadata: languageName: node linkType: hard -"@sgratzl/chartjs-esm-facade@npm:^3.0.0-alpha.2": - version: 3.0.0-alpha.2 - resolution: "@sgratzl/chartjs-esm-facade@npm:3.0.0-alpha.2" - dependencies: - "@types/chart.js": ^2.9.23 +"@sgratzl/chartjs-esm-facade@npm:^3.0.0-alpha.20": + version: 3.0.0-alpha.20 + resolution: "@sgratzl/chartjs-esm-facade@npm:3.0.0-alpha.20" peerDependencies: chart.js: ^3.0.0-alpha.2 dependenciesMeta: chart.js: unplugged: true - checksum: c6dc456567c914f2a45ad2480ea8c6386edbbcec10bb86bd294dd96ee0147a93c8e26c3c328299e5af0d5d061feb0192f5f9a426e7677db2fa804856f7bc98dd + checksum: cdfaeb27f65ebecf7cfa3c1de7429f2b05277311ce7ac94326109c5074233cb1da12599c9acf9197d6004f166928e980e41afb14d8ae111763f3db25178ae492 languageName: node linkType: hard @@ -1696,6 +1707,15 @@ __metadata: languageName: node linkType: hard +"@sinonjs/commons@npm:^1.7.0": + version: 1.8.1 + resolution: "@sinonjs/commons@npm:1.8.1" + dependencies: + type-detect: 4.0.8 + checksum: adbf84a27bc895ca7bbe8ea9f53df9b5625a3d4fd54bc9390c88fa86a75b9d6d56722032336ab294c184862a09640932d794c347a4ed265c9ea126d966d0bf23 + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^1.1.2": version: 1.1.2 resolution: "@szmarczak/http-timer@npm:1.1.2" @@ -1767,15 +1787,6 @@ __metadata: languageName: node linkType: hard -"@types/chart.js@npm:^2.9.23": - version: 2.9.23 - resolution: "@types/chart.js@npm:2.9.23" - dependencies: - moment: ^2.10.2 - checksum: 6ba0c6fc96be0cf762ef9c11a227b50933b34dc681d04cb463ee7130cb72116670cc53c180dc38c6307398aea83a439ec599f82c9ae4a1d78e5cd5c15a6d36c9 - languageName: node - linkType: hard - "@types/color-name@npm:^1.1.1": version: 1.1.1 resolution: "@types/color-name@npm:1.1.1" @@ -2325,7 +2336,7 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.0": +"abab@npm:^2.0.0, abab@npm:^2.0.3": version: 2.0.3 resolution: "abab@npm:2.0.3" checksum: 07bd561e87dba729824956cdcd02b19f31e2ed91385e3b808ae9d9abae9b3a4394530d87453103da4bd36053dd456f9630e15c0b77b95a0f19449183d44a8ee9 @@ -2349,6 +2360,16 @@ __metadata: languageName: node linkType: hard +"acorn-globals@npm:^6.0.0": + version: 6.0.0 + resolution: "acorn-globals@npm:6.0.0" + dependencies: + acorn: ^7.1.1 + acorn-walk: ^7.1.1 + checksum: 078ed9bc354e95a30893efd260e2dc566dfc34d8e1d24a54b9ad59984bea53ff93cb1986a85b2b5e2b8e573cb00d34ad8767371b852941a1947f81c37c1be759 + languageName: node + linkType: hard + "acorn-jsx@npm:^5.2.0": version: 5.2.0 resolution: "acorn-jsx@npm:5.2.0" @@ -2365,6 +2386,13 @@ __metadata: languageName: node linkType: hard +"acorn-walk@npm:^7.1.1": + version: 7.2.0 + resolution: "acorn-walk@npm:7.2.0" + checksum: 7b52d5d6397f2d395ca878bdb0f56e583e69bc875521876d05fe2b6e293c21aca918b288c01bd18ac99b46b55a0f00a8d0e30fbdfb53c8e36e78ad1a65f73a4a + languageName: node + linkType: hard + "acorn@npm:^5.5.3": version: 5.7.4 resolution: "acorn@npm:5.7.4" @@ -3287,6 +3315,18 @@ __metadata: languageName: node linkType: hard +"canvas@npm:^2.6.1": + version: 2.6.1 + resolution: "canvas@npm:2.6.1" + dependencies: + nan: ^2.14.0 + node-gyp: latest + node-pre-gyp: ^0.11.0 + simple-get: ^3.0.3 + checksum: 11104bac95dc23f54fb7a83387b3dd78c8e57bc768d0aa582374dd515dfa82ffaca12fd3562aec6b7e02721c043c1cd4f051f9b4fc7fcf021b5bf7ee788130df + languageName: node + linkType: hard + "capture-exit@npm:^2.0.0": version: 2.0.0 resolution: "capture-exit@npm:2.0.0" @@ -3383,7 +3423,7 @@ __metadata: resolution: "chartjs-chart-venn@workspace:." dependencies: "@rollup/plugin-commonjs": ^14.0.0 - "@sgratzl/chartjs-esm-facade": ^3.0.0-alpha.2 + "@sgratzl/chartjs-esm-facade": ^3.0.0-alpha.20 "@types/d3-selection": ^1.4.2 "@types/jest": ^26.0.5 "@types/jest-image-snapshot": ^3.1.0 @@ -3392,6 +3432,7 @@ __metadata: "@typescript-eslint/parser": ^3.6.1 "@upsetjs/venn.js": ^1.3.0 "@yarnpkg/pnpify": ^2.1.0 + canvas: ^2.6.1 chart.js: ^3.0.0-alpha.2 eslint: ^7.5.0 eslint-config-prettier: ^6.11.0 @@ -3402,6 +3443,7 @@ __metadata: eslint-plugin-prettier: ^3.1.4 eslint-plugin-react: ^7.20.3 eslint-plugin-react-hooks: ^4.0.8 + jest-environment-jsdom-sixteen: ^1.0.3 jest-image-snapshot: ^4.0.2 prettier: ^2.0.5 release-it: ^13.6.5 @@ -3415,7 +3457,7 @@ __metadata: typedoc: ^0.17.8 typescript: ^3.9.7 peerDependencies: - "@sgratzl/chartjs-esm-facade": ^3.0.0-alpha.2 + "@sgratzl/chartjs-esm-facade": ^3.0.0-alpha.20 chart.js: ^3.0.0-alpha.2 languageName: unknown linkType: soft @@ -3789,13 +3831,20 @@ __metadata: languageName: node linkType: hard -"cssom@npm:0.3.x, cssom@npm:>= 0.3.2 < 0.4.0": +"cssom@npm:0.3.x, cssom@npm:>= 0.3.2 < 0.4.0, cssom@npm:~0.3.6": version: 0.3.8 resolution: "cssom@npm:0.3.8" checksum: b7fb8b13aa2014a6c168c7644baa2f4d447a28b624544c87c8ef905bbec64ef247b3d167270f87e043acc6df30ea0f80e0da545a45187ff4006eb2c24988dfae languageName: node linkType: hard +"cssom@npm:^0.4.4": + version: 0.4.4 + resolution: "cssom@npm:0.4.4" + checksum: db81cac44219b20d76b06f51d2614cead098478d1323b2df5e4b5d25bdc3f16d8474c3d45ae28f594a0933691c774fc2102837df66ccf375e280b0728ad53c5f + languageName: node + linkType: hard + "cssstyle@npm:^1.0.0": version: 1.4.0 resolution: "cssstyle@npm:1.4.0" @@ -3805,6 +3854,15 @@ __metadata: languageName: node linkType: hard +"cssstyle@npm:^2.2.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: a778180d2f5eef44742b7083997a0ad6e59eee016724ceac4d6229e48842d3c5ebbb55dc02c555f793bdc486254f6eef8d2049c1815e8fc74514e3eb827d49ec + languageName: node + linkType: hard + "d3-color@npm:1": version: 1.4.1 resolution: "d3-color@npm:1.4.1" @@ -3890,6 +3948,17 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^2.0.0": + version: 2.0.0 + resolution: "data-urls@npm:2.0.0" + dependencies: + abab: ^2.0.3 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.0.0 + checksum: 42239927c6a202e2d02b7f41c94ca53e3cea036898b97b8bf6120ed1b25e0dd11c48ec7aa5c84cf807c2cb9f3a637df9fb50f3ca25a52863186a4ac46254726b + languageName: node + linkType: hard + "debug@npm:4.1.1": version: 4.1.1 resolution: "debug@npm:4.1.1" @@ -3908,6 +3977,15 @@ __metadata: languageName: node linkType: hard +"debug@npm:^3.2.6": + version: 3.2.6 + resolution: "debug@npm:3.2.6" + dependencies: + ms: ^2.1.1 + checksum: 619feb53b115f1a8341365b8aa58a8757e6632738587d4b61b25627b74891211cb20e31fdbea37fec766e575a60cf456f7a02d6f9eddfdcef80caa6a4b0fc042 + languageName: node + linkType: hard + "debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1": version: 4.2.0 resolution: "debug@npm:4.2.0" @@ -3929,6 +4007,13 @@ __metadata: languageName: node linkType: hard +"decimal.js@npm:^10.2.0": + version: 10.2.0 + resolution: "decimal.js@npm:10.2.0" + checksum: f60df1cce54e4b717cf9b865cbacf667ee67747563a4e84a2ebe8fd65fd57814a3ba6eba0870345fe37aea574ecbb84b3642a6e4e7a9089d3c7fbff8247e3c7f + languageName: node + linkType: hard + "decode-uri-component@npm:^0.2.0": version: 0.2.0 resolution: "decode-uri-component@npm:0.2.0" @@ -3945,6 +4030,15 @@ __metadata: languageName: node linkType: hard +"decompress-response@npm:^4.2.0": + version: 4.2.1 + resolution: "decompress-response@npm:4.2.1" + dependencies: + mimic-response: ^2.0.0 + checksum: d854171a100833d66171ffba0990fc581133cfb62befc18edd2365edc40e8a48f9f96b6156465f1a74802112b9c241c792d865f5ee27e285c2e4417a17ac6c66 + languageName: node + linkType: hard + "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -4080,6 +4174,15 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.2": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: 6cec442139459ec2e8517076974b0eba42079885938683eca013c2e0b5db02ef048870725ce68e7ac8e4cf17e482f67d7322f45bbc5f203b7332817bc7833b39 + languageName: node + linkType: hard + "detect-newline@npm:^2.1.0": version: 2.1.0 resolution: "detect-newline@npm:2.1.0" @@ -4166,6 +4269,15 @@ __metadata: languageName: node linkType: hard +"domexception@npm:^2.0.1": + version: 2.0.1 + resolution: "domexception@npm:2.0.1" + dependencies: + webidl-conversions: ^5.0.0 + checksum: bde9f50cb568a29b0c24ab50500ff23e9a2160394f04ae5fd9db91c4303a4f892fd9a42b07a0d52cdae11d8a348b4e907dd4343176c6f5a74f8be6ffde60bd95 + languageName: node + linkType: hard + "dot-prop@npm:^5.2.0": version: 5.2.0 resolution: "dot-prop@npm:5.2.0" @@ -4309,6 +4421,25 @@ __metadata: languageName: node linkType: hard +"escodegen@npm:^1.14.1": + version: 1.14.3 + resolution: "escodegen@npm:1.14.3" + dependencies: + esprima: ^4.0.1 + estraverse: ^4.2.0 + esutils: ^2.0.2 + optionator: ^0.8.1 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 548c5a83a81a51122f1006309a392e1412bb00657f15aca60f01f9d4553851bdaf0519d898fd3ee2bb46f116e03ee48757f4d9a28a7b58bc8c096fd4b33f6cbc + languageName: node + linkType: hard + "escodegen@npm:^1.9.1": version: 1.14.2 resolution: "escodegen@npm:1.14.2" @@ -5730,6 +5861,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"html-encoding-sniffer@npm:^2.0.1": + version: 2.0.1 + resolution: "html-encoding-sniffer@npm:2.0.1" + dependencies: + whatwg-encoding: ^1.0.5 + checksum: 6f49e83a2e9225ba92c4586701cd21c0cf26c4c1f1a5f330a911c90a792649cc47b5bb3e67e78ba23dfa6b5b9c70af34231f44729b173d52b4ba305467b39042 + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -5789,7 +5929,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:^0.4.4": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -5798,6 +5938,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"ignore-walk@npm:^3.0.1": + version: 3.0.3 + resolution: "ignore-walk@npm:3.0.3" + dependencies: + minimatch: ^3.0.4 + checksum: 08394ce8c47dc086d44ef65a1e1d30352ff3d6605bdec90f59e985b710cc660aafa7975cb30312891d21d826d10b3a8b3210c5d68251678e2dcd366362865170 + languageName: node + linkType: hard + "ignore@npm:^4.0.6": version: 4.0.6 resolution: "ignore@npm:4.0.6" @@ -5959,6 +6108,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"ip-regex@npm:^2.1.0": + version: 2.1.0 + resolution: "ip-regex@npm:2.1.0" + checksum: 2fd2190ada81b55a8a6f913bcb5a6fd6ff9da127905b4c01521f09a1d391e86d415dfe8c131ed2989d536949bb2f9654a71b9fa6f7ae2ac3ae6111b2026cc902 + languageName: node + linkType: hard + "is-accessor-descriptor@npm:^0.1.6": version: 0.1.6 resolution: "is-accessor-descriptor@npm:0.1.6" @@ -6211,6 +6367,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-potential-custom-element-name@npm:^1.0.0": + version: 1.0.0 + resolution: "is-potential-custom-element-name@npm:1.0.0" + checksum: 55b1ae44cf9241ea5b08414318d12a4d2eb157cb5722908fc7ef268c6d175894cb59d298092a87f9ed54af5b60fc572fa7f6b34b8633120dbe6edaa6c5169d0b + languageName: node + linkType: hard + "is-reference@npm:^1.1.2": version: 1.2.0 resolution: "is-reference@npm:1.2.0" @@ -6542,6 +6705,18 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-environment-jsdom-sixteen@npm:^1.0.3": + version: 1.0.3 + resolution: "jest-environment-jsdom-sixteen@npm:1.0.3" + dependencies: + "@jest/fake-timers": ^25.1.0 + jest-mock: ^25.1.0 + jest-util: ^25.1.0 + jsdom: ^16.2.1 + checksum: 5b2a20f1db1bc80d0de1944d2544ea4917bc05199557cb8842f9db878efeab8760501d684ed99ee20af18f482ca53652f4953af0462b38b36e8ce297b2d1917b + languageName: node + linkType: hard + "jest-environment-jsdom@npm:^24.9.0": version: 24.9.0 resolution: "jest-environment-jsdom@npm:24.9.0" @@ -6710,6 +6885,22 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-message-util@npm:^25.5.0": + version: 25.5.0 + resolution: "jest-message-util@npm:25.5.0" + dependencies: + "@babel/code-frame": ^7.0.0 + "@jest/types": ^25.5.0 + "@types/stack-utils": ^1.0.1 + chalk: ^3.0.0 + graceful-fs: ^4.2.4 + micromatch: ^4.0.2 + slash: ^3.0.0 + stack-utils: ^1.0.1 + checksum: b60d49c713e22028e7a64359ca976cf5e0e4a05d4b85c0a47cab67bb1ff7aecbd4bf846c67864b93d098f45d9ae28bb9648fef40f97ccb1938df4c88760ba178 + languageName: node + linkType: hard + "jest-mock@npm:^24.9.0": version: 24.9.0 resolution: "jest-mock@npm:24.9.0" @@ -6719,6 +6910,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-mock@npm:^25.1.0, jest-mock@npm:^25.5.0": + version: 25.5.0 + resolution: "jest-mock@npm:25.5.0" + dependencies: + "@jest/types": ^25.5.0 + checksum: f1be998f456247ad2e3a151f600162682771cce874df85a2768bd4dc1a69841140b1f76e6bb73fa7c31bf62885f9c47327acab5f5721dd599e39501cb8324c79 + languageName: node + linkType: hard + "jest-pnp-resolver@npm:^1.2.1": version: 1.2.1 resolution: "jest-pnp-resolver@npm:1.2.1" @@ -6886,7 +7086,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-util@npm:^25.5.0": +"jest-util@npm:^25.1.0, jest-util@npm:^25.5.0": version: 25.5.0 resolution: "jest-util@npm:25.5.0" dependencies: @@ -7060,6 +7260,45 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jsdom@npm:^16.2.1": + version: 16.3.0 + resolution: "jsdom@npm:16.3.0" + dependencies: + abab: ^2.0.3 + acorn: ^7.1.1 + acorn-globals: ^6.0.0 + cssom: ^0.4.4 + cssstyle: ^2.2.0 + data-urls: ^2.0.0 + decimal.js: ^10.2.0 + domexception: ^2.0.1 + escodegen: ^1.14.1 + html-encoding-sniffer: ^2.0.1 + is-potential-custom-element-name: ^1.0.0 + nwsapi: ^2.2.0 + parse5: 5.1.1 + request: ^2.88.2 + request-promise-native: ^1.0.8 + saxes: ^5.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^3.0.1 + w3c-hr-time: ^1.0.2 + w3c-xmlserializer: ^2.0.0 + webidl-conversions: ^6.1.0 + whatwg-encoding: ^1.0.5 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.0.0 + ws: ^7.2.3 + xml-name-validator: ^3.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 8136e06866a1e59610054d219110fb015650f9e1187443a5b21aa30f845368ddd16495c935f3967a9e0005af62059ec069cd929d5a201005a67f4909d048e3ea + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -7479,6 +7718,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"lolex@npm:^5.0.0": + version: 5.1.2 + resolution: "lolex@npm:5.1.2" + dependencies: + "@sinonjs/commons": ^1.7.0 + checksum: 129eb19d11bd1557fdee931f064e7ea0f1a23e9b33eaea37179f32074718b496e2b5855461d3364a65ddd113dc92a065957b957281bb5fe9caf3291a9f4db02e + languageName: node + linkType: hard + "longest@npm:^1.0.1": version: 1.0.1 resolution: "longest@npm:1.0.1" @@ -7683,6 +7931,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"mimic-response@npm:^2.0.0": + version: 2.1.0 + resolution: "mimic-response@npm:2.1.0" + checksum: 9c206f3aebdc8de306550394301de8ce593e7757f3f9be43b5f99728e38ae787d17e6b72b96eb1b7a998d041da0ee465c48d29c927be4ff6ac3319453285d075 + languageName: node + linkType: hard + "mimic-response@npm:^3.1.0": version: 3.1.0 resolution: "mimic-response@npm:3.1.0" @@ -7774,13 +8029,6 @@ fsevents@^1.2.7: languageName: node linkType: hard -"moment@npm:^2.10.2": - version: 2.27.0 - resolution: "moment@npm:2.27.0" - checksum: 72d9a7d8dba59e3d538440cdc0b59fa895b123361e370be231896478aaf157a484355ce32bd8daf6f731d6d1636d3a67ecb67531e536e093ca18b43e0cbae194 - languageName: node - linkType: hard - "mri@npm:^1.1.0": version: 1.1.5 resolution: "mri@npm:1.1.5" @@ -7809,7 +8057,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"nan@npm:^2.12.1": +"nan@npm:^2.12.1, nan@npm:^2.14.0": version: 2.14.1 resolution: "nan@npm:2.14.1" dependencies: @@ -7844,6 +8092,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"needle@npm:^2.2.1": + version: 2.5.0 + resolution: "needle@npm:2.5.0" + dependencies: + debug: ^3.2.6 + iconv-lite: ^0.4.4 + sax: ^1.2.4 + bin: + needle: bin/needle + checksum: b50cef343e8f1037ddc727949d9e3243a9e175a2e935d5ac8f7f1434a47c6433c869c8accf270942196014a9f65ea1911a3d032455a380c9e27b66c74b7c6889 + languageName: node + linkType: hard + "neo-async@npm:^2.6.0": version: 2.6.1 resolution: "neo-async@npm:2.6.1" @@ -7921,6 +8182,26 @@ fsevents@^1.2.7: languageName: node linkType: hard +"node-pre-gyp@npm:^0.11.0": + version: 0.11.0 + resolution: "node-pre-gyp@npm:0.11.0" + dependencies: + detect-libc: ^1.0.2 + mkdirp: ^0.5.1 + needle: ^2.2.1 + nopt: ^4.0.1 + npm-packlist: ^1.1.6 + npmlog: ^4.0.2 + rc: ^1.2.7 + rimraf: ^2.6.1 + semver: ^5.3.0 + tar: ^4 + bin: + node-pre-gyp: ./bin/node-pre-gyp + checksum: c166a62588f1f72f2098449add3c6400d31d2127dd059df0064f53d2089bbffc7d0e22e5ae4890518974df6e7c09a536e9e23d5a9831762d777e8f186a3d970c + languageName: node + linkType: hard + "node-releases@npm:^1.1.53": version: 1.1.58 resolution: "node-releases@npm:1.1.58" @@ -7938,7 +8219,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"nopt@npm:^4.0.3": +"nopt@npm:^4.0.1, nopt@npm:^4.0.3": version: 4.0.3 resolution: "nopt@npm:4.0.3" dependencies: @@ -7992,6 +8273,33 @@ fsevents@^1.2.7: languageName: node linkType: hard +"npm-bundled@npm:^1.0.1": + version: 1.1.1 + resolution: "npm-bundled@npm:1.1.1" + dependencies: + npm-normalize-package-bin: ^1.0.1 + checksum: f51ddba86970fc568a40449f51348de535ac71d93a2ce31195e978d0189899a0da696b3e51a5eb6e77a88890482ac873767c58c81763dda3dab410c9c1e99ca5 + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^1.0.1": + version: 1.0.1 + resolution: "npm-normalize-package-bin@npm:1.0.1" + checksum: 495fae761551a765064f6937ed578a1d749c110355b63f5bbf6df9f0237862639de184a5c13fb9982d2a7745b2bd983e427bf16893ad98f20e53a32ad0254fc9 + languageName: node + linkType: hard + +"npm-packlist@npm:^1.1.6": + version: 1.4.8 + resolution: "npm-packlist@npm:1.4.8" + dependencies: + ignore-walk: ^3.0.1 + npm-bundled: ^1.0.1 + npm-normalize-package-bin: ^1.0.1 + checksum: 34c4bbd47daccd64e5e432b435ec37339bd472900dccd2a8f003d5004b4fff67b8561aadbbedaa5a5effd1dab9126b89fb28355fef1f3e85ff60ecf6b21433d9 + languageName: node + linkType: hard + "npm-run-path@npm:^2.0.0": version: 2.0.2 resolution: "npm-run-path@npm:2.0.2" @@ -8010,7 +8318,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"npmlog@npm:^4.1.2": +"npmlog@npm:^4.0.2, npmlog@npm:^4.1.2": version: 4.1.2 resolution: "npmlog@npm:4.1.2" dependencies: @@ -8029,7 +8337,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"nwsapi@npm:^2.0.7": +"nwsapi@npm:^2.0.7, nwsapi@npm:^2.2.0": version: 2.2.0 resolution: "nwsapi@npm:2.2.0" checksum: fb0f05113a829296f964688503d991b136d02d153769288d12226a4d52e17b50c073eceeee0ff1e8377ca8e86c244e1f9b849c9eed7fca97a03aa8a59f074c06 @@ -8472,6 +8780,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"parse5@npm:5.1.1": + version: 5.1.1 + resolution: "parse5@npm:5.1.1" + checksum: fad72ff5010ee8a6f0a38b83fc886b71a54d746d5c4ff5aad74d6ba1fe87b9606585bf32aa200b015ce329e0906f50f2851f29876abeacd5c13567c7a0455362 + languageName: node + linkType: hard + "pascal-case@npm:^2.0.1": version: 2.0.1 resolution: "pascal-case@npm:2.0.1" @@ -8904,7 +9219,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"rc@npm:^1.2.8": +"rc@npm:^1.2.7, rc@npm:^1.2.8": version: 1.2.8 resolution: "rc@npm:1.2.8" dependencies: @@ -9204,6 +9519,17 @@ fsevents@^1.2.7: languageName: node linkType: hard +"request-promise-core@npm:1.1.4": + version: 1.1.4 + resolution: "request-promise-core@npm:1.1.4" + dependencies: + lodash: ^4.17.19 + peerDependencies: + request: ^2.34 + checksum: 7c9c90bf00158f6669e7167425cd113edadaca44b5aebc7c6a7969d9f50d93bfae8275038bdf6389b4e94f1cacacca7e5830d28701692818bdfba353eeb2ddfd + languageName: node + linkType: hard + "request-promise-native@npm:^1.0.5": version: 1.0.8 resolution: "request-promise-native@npm:1.0.8" @@ -9217,6 +9543,19 @@ fsevents@^1.2.7: languageName: node linkType: hard +"request-promise-native@npm:^1.0.8": + version: 1.0.9 + resolution: "request-promise-native@npm:1.0.9" + dependencies: + request-promise-core: 1.1.4 + stealthy-require: ^1.1.1 + tough-cookie: ^2.3.3 + peerDependencies: + request: ^2.34 + checksum: 532570f00559f826ad372d36a152c3cf1aa184d0876b04ed7c18a9fa391fa2108978eca837ae1fb681d2dab63bd6c74c6660022b82ecdb2682d77859314d0b6e + languageName: node + linkType: hard + "request@npm:^2.87.0, request@npm:^2.88.2": version: 2.88.2 resolution: "request@npm:2.88.2" @@ -9441,7 +9780,7 @@ resolve@1.15.1: languageName: node linkType: hard -"rimraf@npm:^2.5.4, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": +"rimraf@npm:^2.5.4, rimraf@npm:^2.6.1, rimraf@npm:^2.6.2, rimraf@npm:^2.6.3": version: 2.7.1 resolution: "rimraf@npm:2.7.1" dependencies: @@ -9706,6 +10045,15 @@ resolve@1.15.1: languageName: node linkType: hard +"saxes@npm:^5.0.0": + version: 5.0.1 + resolution: "saxes@npm:5.0.1" + dependencies: + xmlchars: ^2.2.0 + checksum: 6ad14be68da9b84af0fa3de346fd78bd3a8e8a73a462e2852279a1fff1e2619988919294001abe3ecef3783f9498962a0619d960ccca4ec2ca914526fde1acc2 + languageName: node + linkType: hard + "semver-diff@npm:^3.1.1": version: 3.1.1 resolution: "semver-diff@npm:3.1.1" @@ -9715,7 +10063,7 @@ resolve@1.15.1: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.4.1, semver@npm:^5.5, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -9846,6 +10194,24 @@ resolve@1.15.1: languageName: node linkType: hard +"simple-concat@npm:^1.0.0": + version: 1.0.1 + resolution: "simple-concat@npm:1.0.1" + checksum: 4623960448a49731b5abeedc5430f8158c5caa05f10a685b405b13ed8532c80b5d99e6ef5d53f76a695e66f551cdbcca22c1363ceef8f8b246cda1e21b9ef871 + languageName: node + linkType: hard + +"simple-get@npm:^3.0.3": + version: 3.1.0 + resolution: "simple-get@npm:3.1.0" + dependencies: + decompress-response: ^4.2.0 + once: ^1.3.1 + simple-concat: ^1.0.0 + checksum: f56f08765eafde034b379d38d3dd1eb9b9ffb41d090d8216e71dce6ea3936499ee34b20942773a2605b08e8abce940691bd06e110ac12d08f83917493078831e + languageName: node + linkType: hard + "sisteransi@npm:^1.0.4": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -10363,7 +10729,7 @@ resolve@1.15.1: languageName: node linkType: hard -"symbol-tree@npm:^3.2.2": +"symbol-tree@npm:^3.2.2, symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" checksum: 0b9af4e5f005f9f0b9c916d91a1b654422ffa49ef09c5c4b6efa7a778f63976be9f410e57db1e9ea7576eea0631a34b69a5622674aa92a60a896ccf2afca87a7 @@ -10407,7 +10773,7 @@ resolve@1.15.1: languageName: node linkType: hard -"tar@npm:^4.4.6": +"tar@npm:^4, tar@npm:^4.4.6": version: 4.4.13 resolution: "tar@npm:4.4.13" dependencies: @@ -10597,6 +10963,17 @@ resolve@1.15.1: languageName: node linkType: hard +"tough-cookie@npm:^3.0.1": + version: 3.0.1 + resolution: "tough-cookie@npm:3.0.1" + dependencies: + ip-regex: ^2.1.0 + psl: ^1.1.28 + punycode: ^2.1.1 + checksum: dc1eee69c61a6d5598144ff41c9b5e758207130d92d2b89facad075140a99c10d674a6278764b9edfe8e074cb7840c15e7b786b93d0672875026c2ce5172d774 + languageName: node + linkType: hard + "tr46@npm:^1.0.1": version: 1.0.1 resolution: "tr46@npm:1.0.1" @@ -10606,6 +10983,15 @@ resolve@1.15.1: languageName: node linkType: hard +"tr46@npm:^2.0.2": + version: 2.0.2 + resolution: "tr46@npm:2.0.2" + dependencies: + punycode: ^2.1.1 + checksum: c8c221907944e8b577c4fff14d180a213c21a29b54a12a031aa6986cbb711a5d470588b556a7be9c7844f09142e12deef6b76fe10f6bd4d274b54f1a7e0aac9e + languageName: node + linkType: hard + "ts-jest@npm:^24.0.2": version: 24.3.0 resolution: "ts-jest@npm:24.3.0" @@ -10784,6 +11170,13 @@ resolve@1.15.1: languageName: node linkType: hard +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: e01dc6ac9098192a7859fb86c7b4073709a4e13a5cc02c54d54412378bb099563fda7a7a85640f33e3a7c2e8189182eb1511f263e67f402b2d63fe81afdde785 + languageName: node + linkType: hard + "type-fest@npm:^0.11.0": version: 0.11.0 resolution: "type-fest@npm:0.11.0" @@ -11138,7 +11531,7 @@ typescript@^3.9.7: languageName: node linkType: hard -"w3c-hr-time@npm:^1.0.1": +"w3c-hr-time@npm:^1.0.1, w3c-hr-time@npm:^1.0.2": version: 1.0.2 resolution: "w3c-hr-time@npm:1.0.2" dependencies: @@ -11147,6 +11540,15 @@ typescript@^3.9.7: languageName: node linkType: hard +"w3c-xmlserializer@npm:^2.0.0": + version: 2.0.0 + resolution: "w3c-xmlserializer@npm:2.0.0" + dependencies: + xml-name-validator: ^3.0.0 + checksum: 2327c8a6c7302ed4b685125c193f4b4b859ee12cd6e1938407a02dda9cfcfff7f0c103de387b268444c4b61d7892d5260b5c684eb7519886fb3a07798bd565ba + languageName: node + linkType: hard + "walker@npm:^1.0.7, walker@npm:~1.0.5": version: 1.0.7 resolution: "walker@npm:1.0.7" @@ -11172,7 +11574,21 @@ typescript@^3.9.7: languageName: node linkType: hard -"whatwg-encoding@npm:^1.0.1, whatwg-encoding@npm:^1.0.3": +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: af4e465fb3111f45930e48f8e4206d6ae41675f03f35d6dfa10b2d7186430236ef1b406d8c3e57f75c8a60e424ca715c9fe6b6b2316a1b999ecffe8280414dff + languageName: node + linkType: hard + +"webidl-conversions@npm:^6.1.0": + version: 6.1.0 + resolution: "webidl-conversions@npm:6.1.0" + checksum: 0ded175044ec0a06f41014b9ffc36a67eb22bff53b9cb43fa1e9d05eaded43a100d993a8179d3a9f0f820ff1e5b812107a97c8643b600a6ab5bef1e11fcae66b + languageName: node + linkType: hard + +"whatwg-encoding@npm:^1.0.1, whatwg-encoding@npm:^1.0.3, whatwg-encoding@npm:^1.0.5": version: 1.0.5 resolution: "whatwg-encoding@npm:1.0.5" dependencies: @@ -11181,7 +11597,7 @@ typescript@^3.9.7: languageName: node linkType: hard -"whatwg-mimetype@npm:^2.1.0, whatwg-mimetype@npm:^2.2.0": +"whatwg-mimetype@npm:^2.1.0, whatwg-mimetype@npm:^2.2.0, whatwg-mimetype@npm:^2.3.0": version: 2.3.0 resolution: "whatwg-mimetype@npm:2.3.0" checksum: 926e6ef8c7e53d158e501ce5e3c0e491d343c3c97e71b3d30451ffe4b1d6f81844c336b46a446a0b4f3fe4f327d76e3451d53ee8055344a0f5f2f35b84518011 @@ -11210,6 +11626,17 @@ typescript@^3.9.7: languageName: node linkType: hard +"whatwg-url@npm:^8.0.0": + version: 8.1.0 + resolution: "whatwg-url@npm:8.1.0" + dependencies: + lodash.sortby: ^4.7.0 + tr46: ^2.0.2 + webidl-conversions: ^5.0.0 + checksum: 1cc612b2733d71bd9db47537836440aac8ce016e57d33d4f1e5f5cfb6952fccca9085507812f4374920a6835f09125ee359e41ce550b7ca83b9f560a544c14b8 + languageName: node + linkType: hard + "which-module@npm:^2.0.0": version: 2.0.0 resolution: "which-module@npm:2.0.0" @@ -11375,6 +11802,21 @@ typescript@^3.9.7: languageName: node linkType: hard +"ws@npm:^7.2.3": + version: 7.3.1 + resolution: "ws@npm:7.3.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 9302f1f6658c5f3ecd6d35d1c5a38ad708d8e5404cba66ad884ead072ef7a4c948f54d728649a2cb3af1865ca0e15f903e0e2ac9df30c1a0d4dd00d00e6e0d4a + languageName: node + linkType: hard + "xdg-basedir@npm:^4.0.0": version: 4.0.0 resolution: "xdg-basedir@npm:4.0.0" @@ -11389,6 +11831,13 @@ typescript@^3.9.7: languageName: node linkType: hard +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 69bbb61e8d939873c8aa7d006d082944de2eb6f12f55e53fdfc670d544e677736b59e498ece303f264bd1dc39b77557eef1c1c9bfb09eb5e1e30ac552420d81e + languageName: node + linkType: hard + "xregexp@npm:^4.3.0": version: 4.3.0 resolution: "xregexp@npm:4.3.0"